完美解决Ubuntu16.04下Java向MySQL5.x添加数据时产生的乱码问题


1.问题

Ubuntu16.04下搭建了Java开发环境和MySQL数据库。点击这儿学习搭建

在做项目时,通过JDBC插入到数据库中的中文数据显示乱码,具体方式是???的形式。经过排查,排除代码问题,考虑MySQL数据库本身问题。

2.排查MySQL编码

登录MySQL,查看编码:

show variables like 'char%' ;

这里写图片描述
其中,红色箭头所指的两个地方并不是utf8编码,所以要修改。

3.解决办法-百度的误区

在百度搜了一下,千篇一律的解决办法是:需要在/etc/mysql/my.cnf 里面的[mysqld]字段下添加character_set_server=utf8,但是打开这个文件,如下图所示,除了两句话之外,什么都没有,更不用说字段。
这里写图片描述
于是,自己在这里面手动写入了字段:

[mysqld]
character_set_server=utf8

结果直接导致MySQL启动失败,于是果断放弃了这种方法。

4.真正的解决办法

在谷歌搜了一些找到了正确的解决办法:需要在/etc/mysql/mysql.conf.d/mysqld.cnf文件里找到[mysqld]字段,然后添加character_set_server=utf8

提醒: 在修改mysqld.cnf文件前,需要关闭mysql服务:sudo service mysql stop或者sudo /etc/init.d/mysql stop

修改完成后,启动MySQL。登录MySQL,查看编码:
这里写图片描述
完成了编码的修改。 接着用JDBC进行测试,发现中文乱码问题不复存在。


很简单的东西啰里啰嗦了半天,就是希望提醒大家,谷歌确实好用!

猜你喜欢

转载自blog.csdn.net/g425680992/article/details/80097708
今日推荐