MySQL中文乱码问题总结

一、方案一

MySQL使用过程中最大的问题可能就是乱码问题了,以前以为只要按如下方案就能解决中文乱码问题。

1.数据库在建立时设置utf8字符集,utf8_general_ci排序规则。保证每张表存储的数据都是utf8格式的。

2.Java连接数据库时,url后边加上?useUnicode=true&characterEncoding=utf-8,例如:url = " jdbc:mysql://localhost:3306/spring_db?useUnicode=true&characterEncoding=utf-8 ";

        按照以前的理解,只要JSP以及HTML页面每个页面用UTF8编码,Servlet接收和传输值都用UTF8编码,跟数据库的编码对应就一定能解决中文乱码问题了。然而,昨天在向数据库插入繁体中文时出现了乱码,查找了很多资料,最终尝试解决的方案二。

二、方案二

       首先,确保程序编码没问题,数据确实是以utf8编码传输的,数据库编码也是对应的utf8。cmd进入数据库,使用命令:mysql> show variables like 'character%';查询所有编码。

       此图,是最终修改后的完全与程序对应的。修改方法为set names  utf8,但此种方法只能当前有效,为了确保一劳永逸,可以修改MySQL安装目录下的my.ini配置文件,免安装办的MySQL此文件名字初始可能为my-default.ini,需修改为my.ini配置生效。

       在配置文件中添加如下配置:

[client]

default-character-set=utf8
 port=3306

[mysql]

default-character-set=utf8

[mysqld]

character-set-server=utf8

character_set_filesystem=utf8

修改完后重启MySQL服务就可以了。本人在重启服务时因为my.ini配置文件有一个地方写错了,导致启动失败,错误提示如下:

本地计算机 上的mysql服务启动后停止。某些服务在未由其他服务或程序使用时将自动停止。

出现此错误一般在MySQL第一次安装配置后,配置不当引起的,并且在.err的log中没有任何提示。运行mysqld --initialize执行初始化,可以看到如下提示:


因为配置文件中的server_id项不识别,将my.ini中此项删除或注释掉,如下所示:

最后重启MySQL服务即可。

已经成功进入MySQL服务。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值