解决docker容器中mysql中文乱码问题(问号???)

一、前言

部署到服务器的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 = latin1character_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

请添加图片描述

客户端的中文也显示正常了。

  • 4
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值