- 字符乱码是因为数据库的客户端和服务端编码不一致:https://blog.csdn.net/liang_operations/article/details/82763529
- 今天遇到线上服务器数据库出现乱码导致接口数据返回不了。后来的解决方法是修改 /etc/mysql/mysql.conf.d/mysqld.cnf 配置文件,在[mysqld] 下增加一行character-set-server=utf8 主要是保证client编码和server编码一致。
- 解决问题的流程:
- 登录mysql, show variables like '%character%'; 来查看mysql编码是否一致,我查看本地数据库字符编码是一致的如图
然后查看线上服务器的mysql编码,发现是不一致的如图
这就是导致中文乱码的根本原因了。 - 然后就是解决,可以修改配置文件,也可以临时修改字符编码。我选择永久修改,找到配置文件mysqld.cnf 在[mysqld] 下面增加 character-set-server=utf8 ,修改完重启mysql service mysql restart OK(^o^)/~
- 登录mysql, show variables like '%character%'; 来查看mysql编码是否一致,我查看本地数据库字符编码是一致的如图