Проблем бывает несколько:
Самая безобидная и пожалуй с чего надо начинать - правильно выставить
кодировку (http://www.mysql.com/doc/en/Character_sets.html). Для этого
достаточно правильным образом настроить MySQL через файл настроек my.cnf
Вот пример этого файла, в файле остались строки, относящиеся только к
настройкам языка:
# Example mysql config file.
# Copy this file to c:my.cnf to set global options
#
# One can use all long options that the program supports.
# Run the program with --help to get a list of available options
# This will be passed to all mysql clients
[client]
default-character-set=cp1251
character-sets-dir = d:/usr/local/mysql/share/charsets
Не работает сортировка и другие функции UCASE(), LCASE(), LIKE и другие.
В этой ситуации лучшее решение это перекомпилить MySQL из исходных
текстов с использованием ключа --with-charset=cp1251.
Второй вариант использовать BINARY, но тут не все будет работать. Не
будет работать UCASE() и другие. Не будет работать LIKE без учета регистра.
Неверно возвращаются русские символы из базы данных.
В этом вопросе надо понять главное, MySQL никогда не будет
перекодировать ваши данные перед сохранением, за исключением случаев
использования CHARACTER SET cp1251_koi8 соответственно для
перекодирования cp1251 из/в koi8. Все остальные варианты, как правило,
связаны с несоответствием настроек языка веб сервера и базы данных.
Односторонняя репликация.
Для организации резервного копирования БД нам будет необходимо
запустить второй MySQL сервер.
Заводим на основном сервере нового пользователя, для организации
репликации:
#mysql
mysql> GRANT FILE ON *.* TO repl@"%" IDENTIFIED BY '';
Делаем на основном сервере дамп тех БД которые необходимо бэкапить:
После внесения всех изменений в конфигурации серверов, перезагружаем
сначала основной MySQL, а затем резервный.
Для проверки соединения, смотрим файл /var/lib/mysql/master.info
1280 Прочтений • [MySQL - проблемы с русским языком и их решение (rus mysql database language codepage charset sort replication)] [08.05.2012] [Комментариев: 0]