Ubuntu下Docker容器java服务往mysql插入中文数据乱码
一、问题描述
1、java服务部署在ubuntu下的docker容器内,但是会出现部分插入中文数据显示乱码,如图所示:
二、解决方案
1、查看mysql是否支持utf8,登录进入Mysql
输入命令:
mysql -u root -p
show variables like 'char%';
查看字符集是不是utf8,如果不是输入命令设置
cd /etc/mysql/mysql.conf.d
vim mysqld.cnf
然后插入一下命令:
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
init_connect='SET collation_connection utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve
输入命令重启mysql:或者重启docker容器
service mysql restart
然后启动jar包命令在java -jar中间添加-Dfile.encoding=UTF-8,如图所示:
重启重启测试: