docker 下MySQL数据库数据中文显示乱码问题解决

问题:查看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中查看编码:

查看数据:

解决完毕.

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值