springboot项目中文保存mysql数据库乱码

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

背景: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

入库后,中文可正常展示,如下:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值