我在尝试更改 MySQL 中的字符集时遇到了麻烦。我正在尝试使用从“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:抱歉,我是新手,找不到如何操作...
最佳答案
知道了!!!看起来这是更新 MySQL 版本时的一个问题,在我的例子中,从 3.2 到 4.1.22。问题是特权表也必须更新,但不知何故它们没有更新。因此,我通过 SSH 以 root 身份登录服务器并执行命令:
mysql_fix_privilege_tables --password=[your_root_pass]
就是这样!希望它能帮助其他人在我的情况下......
关于mysql - 在 my.cnf 配置文件中使 MySQL 使用 utf-8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8086444/