MySQL 乱码问题

2 篇文章 0 订阅
2 篇文章 0 订阅

我们使用JDBC 连接MySQL数据库服务器是经常会出现乱码
在我们初学的时候第一想法就是客户端解决问题, 会在连接url 后面添加参数

jdbc:mysql://localhost:3306/testdb?useUnicode=true&characterEncoding=UTF-8

 

出来上班后我也使用了同样的办法, 但是技术经理一看到我这个办法就说我们这个不行, 我也不知道为什么, 他说出现问题要从数据库的服务端去解决, 能服务端解决的就服务端解决。


在没有对my.ini 做修改的时候使用`show variables like ‘%char%’;` 查询是这样的:

Variable_name Value
character_set_client gbk
character_set_connection gbk
character_set_database latin1
character_set_filesystem binary
character_set_results gbk
character_set_server latin1
character_set_system utf8
character_sets_dir D:\tools\mysql\mysql-5.5.57-winx64\share\charsets\

 

网上查了发现有这样的的解决方法:
分别在[mysqld]和 [client] 下面添加  default-character-set = utf8

[mysqld]
#设置字符集为utf8
default-character-set = utf8

[client]
#设置客户端字符集
default-character-set = utf8

启动的时候发现报了错, 起不起来, 发现有错误日志
[ERROR] MySQL: unknown variable ‘default-character-set=utf8’

继续网上查, 原来是我使用的是 5.5.57 这个版本, 这个版本不支持直接在my.ini 中直接配置`default-character-set = utf8`, 修改为 `loose-default-character-set = utf8` 这样就好了

[mysqld]
#设置字符集为utf8
loose-default-character-set = utf8

[client]
#设置客户端字符集
loose-default-character-set = utf8

现在不报错了, 现在看看编码

Variable_name Value
character_set_client utf8
character_set_connection utf8
character_set_database latin1
character_set_filesystem binary
character_set_results utf8
character_set_server latin1
character_set_system utf8
character_sets_dir D:\tools\mysql\mysql-5.5.57-winx64\share\charsets\

现在都改过来了, 使用JDBC 连接也没有问题了,但是`character_set_server` 这个编码还是`latin1`
老规矩, 查
发现 :
在[mysqld]配置选项下添加character-set-server = utf8,重启服务进入mysql再次查看:

Variable_name Value
character_set_client utf8
character_set_connection utf8
character_set_database utf8
character_set_filesystem binary
character_set_results utf8
character_set_server utf8
character_set_system utf8
character_sets_dir D:\tools\mysql\mysql-5.5.57-winx64\share\charsets\

 

都改过来了
大功告成!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值