背景:mysql由docker镜像部署,通过debug日志观察,sql语句正常打印中文,但是入库时变成??。
解决思路:
1、观察mysql启动配置文件中的内容。

[mysql]
default-character-set=utf8
[client]
default-character-set=utf8
[mysqld]
character-set-server=utf8
发现配置文件没有问题,于是查看mysql的启动配置。
2、通过which mysqld 查看mysqld位置
root@73b18364c541:/# which mysqld
/usr/sbin/mysqld
3、mysqld路径 --verbose --help |grep -A 1 'Default options'
root@73b18364c541:/# /usr/sbin/mysqld --verbose --help |grep -A 1 'Default options'
Default options are read from the following files in the given order:
/etc/my.cnf /etc/mysql/my.cnf ~/.my.cnf

发现启动配置文件以cnf结尾

而本机配置文件以conf结尾,于是修改配置文件名为my.cnf
修改完成后,重启mysql服务即可,docker restart mysql

入库后,中文可正常展示,如下:
![]()
当SpringBoot项目在docker中的MySQL数据库中保存中文时出现乱码问题。检查发现mysql配置文件设置正确,但实际启动配置文件为my.conf而非my.cnf。将配置文件名改为my.cnf并重启MySQL服务后,中文数据可以正常存储和显示。
1253

被折叠的 条评论
为什么被折叠?



