天天看点

linux中修改mysql的默认编码(character_set_server)解决插入乱码问题

 show variables like 'character%';

如果现实-bash: show: command not found 说明没有登录mysql数据库,需要进行登录

结果如下图所示:

<a href="http://itblood.com/wp-content/uploads/2012/07/%E6%9F%A5%E8%AF%A2mysql%E5%8E%9F%E5%A7%8B%E7%BC%96%E7%A0%81.jpg" target="_blank"></a>

目录为/etc/my.cnf

如果系统中没有my.cnf文件、则需要创建此文件,具体步骤请看3,如果存在,直接跳过步骤3,直接进入步骤4

命令find / -iname *.cnf -print

结果如图:

<a href="http://itblood.com/wp-content/uploads/2012/07/%E6%9F%A5%E6%89%BEmy.cnf%E6%96%87%E4%BB%B6.jpg" target="_blank"></a>

将上面搜索结果集中/usr/share/mysql目录下任意的一个文件复制到/etc/目录下

命令:cp /usr/share/mysql/my-large.cnf   /etc/my.cnf

命令:vi /etc/my,cnf

在[client ]下面加入

default-character-set=utf8

在[ mysqld ] 下面加

character_set_server=utf8

 init_connect=’SET NAMES utf8′(或者是SET NAMES ‘utf8′)

网上说在 [ mysql ] 下面加入

我测试了下是不可以,因为mysqld不识别它,所以我改成character_set_server=utf8

service mysql restart

下文附上我自己的处理情况供参考

我的问题:只有一项未改成utf8 (character_set_server=latinl)

操作:

    1、命令:vi /etc/my.cnf

    2、配置文件中没有[client ]节点,所以就在[ mysqld ] 下面加character_set_server=utf8

    3、/etc/init.d/mysqld restart (这是我的重启方式)

  4、show variables like ‘character%’; (再查看就已经该过来了,测试发现乱码问题已解决)

本文转自 艺晨光 51CTO博客,原文链接:http://blog.51cto.com/ycgit/1783775,如需转载请自行联系原作者