问题:查看mysql数据中文显示乱码
解决办法:进入容器后查看数据库编码格式后发现默认编码格式为瑞典latin1 , 修改配置文件将其改为utf-8即可;
步骤:
1:执行命令进入容器:
docker exec -it 【容器id或名称】 sh
2:登录数据库:
mysql -u【账号】 -p【密码】
3:查看外部连接层编码:
SHOW VARIABLES LIKE 'collation_%';
4:查看数据库字符集:
SHOW VARIABLES LIKE 'character_set_%';
发现了客户端与连接默认都是latin1;
5:先解决外部访问乱码问题:
SET NAMES 'utf8';
他实际上这一句话是设置了三个值:
SET character_set_client = utf8;
SET character_set_results = utf8;
SET character_set_connection = utf8;
当我们执行完以后步骤后还不够 , 我们还需要修改一个mysql的配置文件:
6:我们重新进入容器内部 ,但不登陆数据库,也就是到这一步:
从上图可以看到, 我们的容器内部有bin , boot , dev的文件夹;
7.我们cd到etc/mysql/mysql.conf.d下
我们可以看到有一个叫做mysqld.cnf的文件,使用vim命令修改它 , 但可能有人需要在容器内安装vim命令,所以先试一下有没有安装vim,如果有跳过第8步, 如果没有(vim时提示vim: command not found)的话需要执行第8步;
8:执行:
apt-get update
更新完毕后执行:
apt-get install vim
9:安装完成后
vim mysqld.cnf
进入文件:
我的文件刚进去的时候只有
[mysqld]
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
datadir = /var/lib/mysql
需要改为
[mysqld]
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
datadir = /var/lib/mysql
default-character-set = utf8[mysql.server]
default-character-set = utf8
[mysqld_safe]
default-character-set = utf8
[client]
default-character-set = utf8
直接复制即可,改完后esc + :wq 保存并退出
执行登陆命令进入mysql中查看编码:
查看数据:
解决完毕.