Mysq版本:5.7.21
操作系统:Linux(Ubuntu)
整个操作的基本思路如下(包括问题的解决思路,想要直接解决问题的可以先看最后的命令总结)
检查mysql编码
找到Mysql的配置文件
修改配置文件
重启Mysql服务
1.检查mysql编码
在mysql控制台输入:show variables like 'character_set_%'; 如果不是如下图显示,那就需要修改Mysql的编码了
2.找到Mysql配置文件
Ubuntu下Mysql的配置文件是 /etc/mysql/my.cnf
其实Linux可以用下面这句命令找到配置文件
find / -iname *.cnf -print
但是我们发现这里面只有两句话
!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/
这和我们想得不太一样啊,我想估计是5.7版本把配置文件做了拆分,把不同职责的配置分别存放(不知道理解的对不对)
所以我们把这里写的两个配置文件夹下的文件分别打开,我们发现
/etc/mysql/mysql.conf.d/mysqld.cnf里的配置内容最多,貌似是我们需要找的。
3.修改配置文件
因为mysql5.7版本有点新,所以网上的一些配置还是有点不太可信的,但是我们可以在mysql的官网的文档中找到答案
官网文档:https://dev.mysql.com/doc/refman/5.7/en/
我们可以看到这里有一堆关于字符集的文档,其中有个 configuring application character set and collaion 的标题,我想着应该是我们需要的
其中有这么一句话,我想我们应该把这个配置写到我们的配置文件中。
4 重启mysql服务
service mysql restart
重新进入mysql查看,你会发现你的mysql编码已经配置好了
命令总结:
1 查看字符集:show variables like 'character_set_%'
2 修改配置:sudo gedit /etc/mysql/mysql.conf.d/mysqld.cnf
3 在[mysqld]下添加:
character-set-server=utf8
collation-server=utf8_general_ci
4 重启mysql:service mysql restart