特別是找不到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及其中的所有表,要不然還是會有亂碼。