mysql乱码问题

本文详细介绍了如何通过调整MySQL数据库的字符集配置来解决乱码问题。包括检查数据库及表的字符类型,并提供了针对Windows和Linux系统的具体配置方法。

在检查了JSP页面、servlet、action以及web服务器之后,发现所有的配置均不会造成乱码的可能了。于是去找数据库的问题,本篇文章只针对mysql。

 

其实很简单,首先确认

1、数据库的字符类型

2、确认表的字符类型

3、使用以下语句查看数据库字符类型:

SHOW VARIABLES LIKE 'character%';
SHOW VARIABLES LIKE 'collation_database%';

 

以所需字符集为UTF8为例,在确认前两点后,这两条语句应该能查出不是UTF8的配置。

印象当中是character_set_server 和collation_database不是UTF8。于是查出了

一种解决办法,如下语句:
      mysql> SET character_set_client = utf8 ;
  mysql> SET character_set_connection = utf8 ;
  mysql> SET character_set_database = utf8 ;
  mysql> SET character_set_results = utf8 ;
  mysql> SET character_set_server = utf8 ;
  mysql> SET collation_connection = utf8 ;
  mysql> SET collation_database=utf8 ;
  mysql> SET collation_server=utf8 ;

虽然设置成功了,但是仍然乱码,而且数据库重新启动后编码格式又变为set以前的字符集。所以用set语句行不通。

最后想到了刚学mysql时的办法,修改配置文件。

 

windows系统下:修改my.ini

[mysql]下加入:

default-character-set=utf8

[mysqld]下加入

default-character-set=utf8

 

linux系统下:

[client]下加入:

default-character-set=utf8(此处之所以和windows下不同,我认为是不同系统下mysql版本问题,不对的话大家指正啊!)

[mysqld]下加入

default-character-set=utf8

 

这样的话数据库重新启动,字符集也不再变动了,乱码问题解决。比较麻烦的办法也有,就是在使用启动命令

之后直接加上 default-character-set=utf8,这样也可以,只是每次启动时麻烦一点而已。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值