2011-11-10 73 views
1

我在尝试更改MySQL中的字符集时遇到了麻烦。我试图编辑文件“/etc/my.cnf”与从“http://stackoverflow.com/questions/3513773/change-mysql-default-character-set-to-utf8-in-我-CNF”。问题是,将这些信息添加到我的文件(以及其他很多来自互联网的文件),MySQL服务器无法启动(在重新启动以实现更改时)。我得到这个消息:在my.cnf配置文件中使MySQL与utf-8一起工作

[[email protected] ~] # /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:对不起,我是新来这个,怎么也找不到做...

+0

忘了说:我正在使用MySQL 4.1.22标准。谢谢! – Diego

+0

你的mysql错误日志里有什么? –

+0

我认为MySQL 4不支持UTF8。你确定它支持吗? – santiagobasulto

回答

2

明白了! !看起来这是更新MySQL版本时出现的问题,在我的情况下,从3.2到4.1.22。问题是特权表也必须更新,但不知何故他们不是。所以,我通过SSH以root身份登录到服务器并执行命令:

mysql_fix_privilege_tables --password=[your_root_pass] 

就是这样!希望它可以帮助别人在我的情况...

相关问题