Заставить MySQL работать с utf-8 в конфигурационном файле my.cnf - PullRequest
1 голос
/ 11 ноября 2011

У меня проблемы с попыткой изменить наборы символов в MySQL.Я пытаюсь отредактировать файл "/etc/my.cnf" с информацией, взятой из "/2545061/izmenit-nabor-simvolov-mysql-po-umolchaniy-na-utf-8-v-my-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: Извините, я новичок в этом, не мог найти, как это сделать ...

1 Ответ

2 голосов
/ 12 ноября 2011

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

mysql_fix_privilege_tables --password=[your_root_pass]

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

...