docker中mysql容器修改编码


遇到的问题

在mybatis plus的FastAutoGenerator代码生成的时候遇到表说明中文乱码

分析,几种解决无果

//方案一、jdbc 链接加上
useUnicode=true&characterEncoding=utf-8

//方案二、查看数据库字符串是utf-8
通过乱码恢复网站得到原编码是windows-1252 即 latin1,于是再次查看数据库编码
show variables like 'character%';
//同过修改命令,发现无果…
set @@character_set_server='utf8';

既然问题是出在数据库上,同个docker修改 mysql.cnf 文件

  • 步骤一、拷贝出mysql.cnf
docker cp mysql容器:/etc/mysql/conf.d/mysql.cnf /home/mysql.cnf
  • 步骤二、修改mysql.cnf(:q! 不保存退出 :wq 保存退出)
vim /home/mysql.cnf

文件写入内容

[client]
default-character-set=utf8

[mysql]
default-character-set=utf8

[mysqld]
init_connect='SET collation_connection = utf8_general_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_general_ci
skip-character-set-client-handshake
  • 步骤三、拷贝回去
docker cp /home/mysql.cnf mysql容器:/etc/mysql/conf.d/mysql.cnf
  • 步骤四、重启mysql容器
docker restart  mysql容器