一、前言
部署到服务器的Mysql数据库,中文数据返回到前端都是问号乱码。需要通过修改mysql配置文件,将编码格式改成utf8来解决这个问题。mysql是安装在docker容器中的,操作如下:
二、查看mysql编码
1、查看当前所有的容器
sudo docker ps -a
2、找到docker中的mysql容器ID
根据第一步,找到postgresql的容器idCONTAINER ID
,比方是a3a3a3a3
3、进入容器
sudo docker exec -it a3a3a3a3 bash
4、进入mysql,查看编码
登录mysql,mysql -u用户名 -p密码
查看mysql的编码:
show variables like '%char%';
可以看到character_set_database = latin1
和character_set_server = latin1
,需要将这个改成utf8
。
输入exit
退出mysql。
三、修改mysql配置文件mysql.cnf
将mysql.cnf文件拷贝到服务器某个文件夹下:
sudo docker cp a3a3a3a3:/etc/mysql/mysql.cnf /apps/omp/
进入文件夹后,编辑文件:
sudo vi mysql.cnf
添加以下内容到配置文件:
[mysql]
default-character-set=utf8
[mysqld]
collation-server = utf8_unicode_ci
init-connect='SET NAMES utf8'
character-set-server = utf8
[client]
default-character-set=utf8
将文件覆盖回去:
sudo docker cp /apps/omp/mysql.cnf a3a3a3a3:/etc/mysql/
四、重启容器
重启容器:
sudo docker restart a3a3a3a3
再次查看mysql编码,已修改成utf8
客户端的中文也显示正常了。