分类: Mysql/postgreSQL
2008-04-10 15:59:52
作者:樊冠群 (转贴请不要删除作者,尊重作者的劳动,谢谢!) 在经过几天玩命的百度和不停的实验后终于将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及其中的所有表,要不然还是会有乱码 |