Linux 下Mysql 5.0.22中文问题解决心得

特别是找不到my.cnf的情况更要认真看了

作者:樊冠群

在经过几天玩命的百度和不停的实验后终于将Mysql 5.0.22中文问题解决了。网上文章要不就是长篇大论不切重点,要不就是大讲Windows而Linux则一句带过。下面我就以步骤带讲解的方式来谈一谈自己的心得:

一,环境:
//其实是其他环境的也是一样可以解决的
红旗Linux5.0 , java1.5.0-beta2, mysql 5.0.22, hibernate2.1

二,表现症状
1,程序中的数据存入数据库时中文变成了问号。
2,从数据库读出数据时中文依然是一堆问好。

三,解决步骤
如果(/etc目录中存在my.cnf){
打开my.cnf文件,找到[mysqld]字样。
//解释:default-character-set=gb2312是设置数据库的默认字符集
//等号后面也可以是别的字符击名字如utf-8
//如此文件中不写这行,则数据库的默认字符集为litan
//引起中文乱码的原因就是这个
在其下面加入一行default-character-set=gb2312
保存my.cnf文件
}否则如果(/etc目录中不存在my.cnf){
//解释:
//mysql的安装目录就是如果你是用rpm安装的话就在/usr/share/mysql
//如果你的是解压缩免安装的那就在解压缩后的文件夹里
在mysql的安装目录中找到名为my-small.cnf,my-medium.cnf
,my-large.cnf等类似命名的文件安自己需求任取一个;
//解释:我只是个人用mysql只要一个小型化的默认配置就可以了
我取my-small.cnf
打开my-small.cnf文件,找到[mysqld]字样。
在其下面加入一行default-character-set=gb2312
另存为my.cnf文件
将my.cnf复制到/etc目录中

重启计算机,(我想重启mysql也可以吧我没实验过大家可以试一试)。

比如你程序中用到的数据库为testdb,那就要删除testdb并重建testdb及其中的所有表。

到此mysql就可以支持中文了,而不必在去修改代码写法或其他的设置了。要注意的是一定要删除test库并重建test及其中的所有表,要不然还是会有乱码。