локализация mysql

для того чтобы mysql сервер начал нормально работать с utf8 необходимо в файл /etc/mysql/my.cnf с секции [mysqld] добавить переменные

set-variable    = default-character-set=utf8
default-character-set=utf8
collation_server=utf8_unicode_ci

а для локализации сообщений сервера необходимо указать путь к переводам этих сообщений

language    = /usr/share/mysql/russian

проблема в том, что файл /usr/share/mysql/russian/errmsg.sys содержит закодированные  утилитой comp_err тексты в кодировке koi8-r, простое перекодирование с помощью iconv -fkoi8-r приведёт к остановке сервера, по этому нужно сначало получить оригинальные переводы в utf8, а затем сгенериовать файл переведов для mysql

Делает это вот так, нужно быть root

mkdir -p sql/share # создаём директории проекта перевода документации
cd sql/
wget http://gpo.kcup.tusur.ru/oss1/export/3/mysql_sharding/mysql-5.5.16/sql/share/errmsg-utf8.txt -O share/errmsg.txt # скачиваем файл переводов
comp_err errmsg.txt errmsg.sys # на основе скачанного файла генерируем кучу переводов
cp share/russian/errmsg.sys /usr/share/mysql/russian/errmsg.sys # заменяем русский перевод в koi8-r текстом в utf8
/etc/init.d/mysql restart # перезапускаем мускуль
cd ..
rm -fR sql/ # подчищаем место

вроде всё:

mysql.sh ensa_gaspiko1
ERROR 1049 (42000): Неизвестная база данных 'ensa_gaspiko1'

 

Комментариев 0
Нужна авторизация с помощью
Об авторе
Илья Илья

меня можно найти тут