По некоторой нужде понадобилост мне поднять MySQL сервер. Все было бы не плохо, но вот с русским получался облом. Не хотел нормально отображаться или сортироваться. Погуглив, нашел кучу разных советов, перепробовал многое и нашел для себя более менее удобный способ настройки.
Итак будет поднимать MySQL на FreeBSD 7.1-RELEASE-p2.
Обновляем порты и идем ставить из портов сервер. Я поднимал 5.0 ветку, находится тут :/usr/ports/databases/mysql50-server
После стандартных make install clean делаем mysql_install_db, дабы устновить стандартные базы. Затем копируем конфиг в /etc : cp /usr/local/share/mysql/my-large.cnf /etc/my.cnf
Открываем /usr/local/etc/rc.d/mysql-server в любом редакторе и меняем в строчке command_args=»—defaults-extra-file=${mysql_dbdir}/my.cnf —user=${mysql_user}….. на command_args=»—defaults-extra-file=/etc/my.cnf —user=${mysql_user}…
Тем самым мы явно указали демону каким конфигом пользоваться. Далее пишем MySQL в автозапуск: echo ‘mysql_enable=»YES»‘ >> /etc/rc.conf .
А теперь настал момент правки самого конфига для работы с киирилицей. Делается это следующим образом. открываем /etc/my.cnf и дописываем в соответсвующие разделы следующее :
[client]
default-character-set=cp1251
[mysqld]
default-character-set=cp1251
collation-server=cp1251_general_ci
skip-character-set-client-handshake
Сохраняем и вроде бы все готово.
Пробуем запустить серер:
# /usr/local/etc/rc.d/mysql-server start
Если все запустилось заходим и проверяем.
# mysql -u root -p
mysql> show variables like ‘%char%’;
если видим такое:
+—————————+———————————-+
| Variable_name | Value |
+—————————+———————————-+
| character_set_client | cp1251 |
| character_set_connection | cp1251 |
| character_set_database | cp1251 |
| character_set_filesystem | binary |
| character_set_results | cp1251 |
| character_set_server | cp1251 |
| character_set_system | utf8 |
| character_sets_dir | /usr/local/share/mysql/charsets/ |
+—————————+———————————-+
то все отлично.
Проверяем поддеживается ли кирилистический collation.
mysql> show collation like ‘cp1251%’;
Если | cp1251_general_ci | cp1251 | 51 | Yes | Yes | 1 |
то поздравляем себя с хорошей работой и тестируем 😉
P.S. : перед устновкой из портов можно порыться в Makefile ‘e там можно найти интересные пунткты сборки и указать заранее поддерживаемые кодировки и collation.
Человек_Разумный (с) 15.04.2009
No comments
RSS / trackback