linux修改mysql字符集
沃尔码 人气:0Linux上修改MySQL字符编码为UTF8
开始在linux上装好了MySQL服务,在后期的使用过程中,突然发现在插入记录时,部分字段不能为中文,报错信息如下:
mysql> insert into syudent values(1,'陶盼',21); ERROR 1366 (HY000): Incorrect string value: '\xE9\x99\xB6\xE7\x9B\xBC' for column 'name' at row 1
经过我坚持不懈的查找资料,终于解决了该问题。下面给大家分享我的解决方法:
1、数据库中查看MySQL状态:
# 查看mysql状态 mysql> status; mysql> quit;
2、修改配置文件:
#退出数据库 systemctl stop mysqld.service #编辑my.cnf配置文件 vim /etc/my.cnf [client] //如果没有[client]段,就自己添加上去 default-character-set=utf8 [mysqld] character-set-server=utf8 collation-server=utf8_general_ci
编辑好配置文件后,重启MySQL服务;
systemctl start mysqld
重启成功后,重新查询一下mysql的状态,显示如下即可:
mysql -u root -p'你的密码' mysql> status;
这时候进入数据库即可正常插入中包含文字段数据了。
3、若是还没成功,可能是创建mysql时的配置或者刚上一步MySQL没有停止服务编辑 my.cnf 配置文件。
这里我们还需对表和字段设置字符集为utf8;
#查看一下表的创建过程 mysql> use ky15; mysql> show create table syudent;
#将表的字符集设置为utf8 mysql> alter table 表名 character set utf8; #将想要插入中文的字段的字符集改为utf8 mysql> alter table 表名 change name name char(20) character set utf8; #查看表的字符集和字段的字符集 mysql> show create table syudent;
#测试,插入中文 mysql> insert into syudent values(1,'陶盼',21); mysql> insert into syudent values(2,'王旭',21); mysql> select * from syudent;
加载全部内容