centos下修改mysql5.1默认编码问题.

Cycle_C 发布于 2013/12/28 15:18
阅读 1K+
收藏 4

如题,系统上只有一个mysql,修改了/etc/my.cnf,在client,mysqld,mysql字段下均添加了default_character_set=utf8,改完服务mysql51-mysqld之后:


试过用set 命令修改,但是重启完服务之后,又恢复了.

问题1:在5.0版和win版的5.1下可以修改成功的.为毛在这里就不行呢?
问题2:还有其他比较好的方法修改不?不想每次重启完服务后, 又要进去set一次..


加载中
0
Cycle_C
Cycle_C

找到解决方法了.

vi /etc/init.d/mysql51-mysqld

然后找到

$exec   --datadir="$datadir" --socket="$socketfile" \
             --pid-file="$mypidfile" \ 
             --basedir=/opt/rh/mysql51/root/usr --user=mysql >/dev/null 2>&1 &

修改成

$exec   --datadir="$datadir" --socket="$socketfile" \
             --default-character-set=utf8 \
             --pid-file="$mypidfile" \  
             --basedir=/opt/rh/mysql51/root/usr --user=mysql >/dev/null 2>&1 &

改完后保存重启服务即可.
原因:mysql字符集设定分了四级,它们依次为服务器级、数据库级、表级、列级,并且还带有继承关系,即在不指定字符集的情况下,数据库字符集将继承服务器的,而表的将继承数据库的,列的将继承表的。
具体参考:http://hi.baidu.com/11haiou/item/212707dad7395f5ffb5768d3

0
Cycle_C
雨翔河
雨翔河
嗯,已经收藏该问题了,谢谢你
0
hnynes
hnynes
为什么不尝试用配置文件呢?  就是所谓的my.ini/my.cnf
Cycle_C
Cycle_C
回复 @hnynes : 灰常感谢,也有试过这样设置,不过还是没有解决问题.
hnynes
hnynes
回复 @Cycle_C : 我有一个5.5的,配置文件里面有个配置是:character-set-server=utf8 . 你也可以加上看看.
Cycle_C
Cycle_C
回复 @hnynes : 只能找到/etc/my.cnf
hnynes
hnynes
回复 @Cycle_C : 看了上面你写的,既然mysqld的节点已经有配置utf8, 那么我想你是不是需要检查一下,你到底使用提哪个配置文件呢? /etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf 上面这些路径,你能找到几个呢??
Cycle_C
Cycle_C
修改过/etc/my.cnf了,改完重启服务后还是不行..
0
码不停蹄
码不停蹄
配置文件写好,重启。
码不停蹄
码不停蹄
@Cycle_C 这要看你mysql启动时候有没有制定配置文件了
Cycle_C
Cycle_C
回复 @码不停蹄 : 具体路径是?/etc/my.cnf吗?这个已经改过了。
码不停蹄
码不停蹄
@Cycle_C my.cnf
Cycle_C
Cycle_C
还可以改其他的配置文件??
返回顶部
顶部