linux上的mysql插入中文报错问题解决

报错现象:[SQL] insert into fr_sys_config values (null,'NODEAL','未处理',1,'OrderState','',NOW(),'Y');
[Err] 1366 - Incorrect string value: '\xE6\x9C\xAA\xE5\xA4\x84...' for column 'value' at row 1

1、登录mysql,查看mysql默认的编码格式

show variables like “character%”;
如果现实-bash: show: command not found 说明没有登录mysql数据库,需要进行登录
结果如下图所示:

2、修改my.cnf 文件

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

3、查找.cnf结尾的文件

命令find / -iname *.cnf -print
结果如图:

将上面搜索结果集中/usr/share/mysql目录下任意的一个文件复制到/etc/目录下
命令:cp /usr/share/mysql/my-large.cnf   /etc/my.cnf

4、编辑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 ] 下面加入
default-character-set=utf8
我测试了下是不可以,因为mysqld不识别它,所以我改成character_set_server=utf8

5、重启mysql

service mysql restart

6、还要drop掉database,create新的database 

猜你喜欢

转载自blog.csdn.net/sunmingf/article/details/52562660