在迁移数据库的时候,新建了一个5.7的docker镜像,但是发现插入带中文的字符串的时候,会发生乱码。通过网上的文章,找到了解决方案,就行修改mysql的配置文件。
docker exec进入容器
sudo docker exec -it 588340b778f6 bash
执行以下命令,将 character-set-server=utf8 写入mysql配置文件
echo "character-set-server=utf8" >> /etc/mysql/mysql.conf.d/mysqld.cnf
重启mysql 容器使以上修改生效
sudo docker restart 588340b778f6
来源:https://www.cnblogs.com/mymelody/p/11133990.html
找到的文章试了一下,果然不乱码了。
但运行一段时间后,还是会发生插入数据错误的问题,从错误日志看,应该是utf8编码国产,虽然数据库和数据表,已经设置为utf8mb4,但是结合上面的设置,修改为下面的设置就好了。
character-set-server=utf8mb4
特此记录。