Заставить MySQL работать с utf-8 в файле конфигурации my.cnf

У меня проблемы с попыткой изменить наборы символов в MySQL. Я пытаюсь отредактировать файл "/etc/my.cnf" с информацией, взятой из "http://stackoverflow.com/questions/3513773/change-mysql-default-character-set-to-utf8-in- мой-cnf". Проблема в том, что добавляя эту информацию в свой файл (и многие другие, взятые из интернета), сервер MySQL не запускается (при перезагрузке для реализации изменений). Я получаю это сообщение:

[root@tribals ~] # /etc/init.d/mysql restart
Shutting down MySQL.. SUCCESS!
Starting MySQL................................... ERROR!

Чтобы быть более конкретным, я также опубликую содержимое файла «my.cnf»:

[mysql]
default-character-set=utf8

[client]
default-character-set=utf8

[mysqld]
max_connections=200
query_cache_type=1
query_cache_size=2M
query_cache_limit=1M
ft_min_word_len=2
ft_max_word_len=20
ft_stopword_file=''

Я добавляю новый контент о кодировках внизу файла, сразу после последней строки. Вот код, который я добавляю:

default-character-set = utf8    
collation-server = utf8_unicode_ci
init-connect='SET NAMES utf8'
character-set-server = utf8

Спасибо!

Редактировать: Привет, вот что говорит журнал:

111111 20:18:00  mysqld started 111111 20:18:00  InnoDB: Started; log sequence number 0 72790
111111 20:18:00 [Warning] './mysql/host' had no or invalid character set, and default character set is multi-byte, so character column sizes may have changed
111111 20:18:00 [Warning] './mysql/user' had no or invalid character set, and default character set is multi-byte, so character column sizes may have changed
111111 20:18:00 [Warning] './mysql/db' had no or invalid character set, and default character set is multi-byte, so character column sizes may have changed
111111 20:18:00 [ERROR] Fatal error: mysql.user table is damaged or in unsupported 3.20 format.
111111 20:18:00  mysqld ended

PD: Извините, я новичок в этом, не смог найти, как это сделать...


person Diego    schedule 10.11.2011    source источник
comment
Забыл сказать: я использую стандарт MySQL 4.1.22. Спасибо!   -  person Diego    schedule 11.11.2011
comment
Что в вашем журнале ошибок MySQL?   -  person Joe Kiley    schedule 11.11.2011
comment
Я думаю, что MySQL 4 не поддерживает UTF8. Вы уверены, что он поддерживается?   -  person santiagobasulto    schedule 12.11.2011
comment
Версия 4.1 может: MySQL поддерживает использование наборов символов для механизмов хранения MyISAM, MEMORY и (начиная с MySQL 4.1.2) InnoDB.   -  person Diego    schedule 12.11.2011


Ответы (1)


Понятно!!! Похоже, это проблема при обновлении версий MySQL, в моем случае с 3.2 до 4.1.22. Дело в том, что таблицы привилегий тоже надо обновлять, а их почему-то нет. Итак, я зашел на сервер как root через SSH и выполнил команду:

mysql_fix_privilege_tables --password=[your_root_pass]

Вот и все! Надеюсь, это поможет другим в моей ситуации...

person Diego    schedule 12.11.2011