重装系统后,要装个mysql服务器,发现添加数据时,一直错误,查其原因,原来时编码问题。Google了一下,可都不太一样,可能时数据库版本问题吧。
查看数据库版本:
select version();
显示:'5.7.15-0ubuntu0.16.04.1'
官方文档:Mysql Document
1、查看数据库编码
show variables like 'character%';
显示结果:
character_set_client |
utf8 |
character_set_connection | utf8 |
character_set_database | latin1 |
character_set_filesystem | binary |
character_set_results | utf8 |
character_set_server | latin1 |
character_set_system | utf8 |
character_sets_dir | /usr/share/mysql/charsets/ |
character_set_client为客户端编码方式;
character_set_connection为建立连接使用的编码;
character_set_database数据库的编码;
character_set_results结果集的编码;
character_set_server数据库服务器的编码;
只要保证以上四个采用的编码方式一样,就不会出现乱码问题。
2、设置数据库编码
分为两部分:设置数据库服务器编码和设置数据库编码
设置数据库编码比较简单,在创建数据库时,可以指定编码;
设置服务器编码的话,需要修改配置文件。配置文件路径为:/etc/mysql/mysql.conf.d
找到[mysqld],在后面添加如下代码后,重启服务器即可。
character-set-server=utf8 collation-server=utf8_general_ci
3、重启数据库
service mysql restart