標籤:mysql
最近在開發過程中,使用到MySQL的資料庫,而在將中文資料插入到資料庫的時候出現了資料亂碼的問題,在網上找了很多方法,問了很多人,試了很久才發現網上有的方法是不行的,因此在此記錄下,以便他人尋找。
查看字元編碼
首先,將中文插入到資料庫亂碼是因為沒有將資料庫編碼設定為支援中文的編碼,mysql的預設編碼是Latin1,不支援中文,應該設定為utf8查看自己的資料庫編碼是否已設定好,進入資料庫,輸入:show variables like "char%",如果出現下面的結果
650) this.width=650;" src="http://img.blog.csdn.net/20131125080446265?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveWlwaWFua29uZ2JhaQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" style="border:none;" />
說明你的資料庫編碼正確,無需修改,應該是頁面或者其他編碼的問題。如果跟上面的結果不同,說明需要修改資料庫的編碼。
在windows系統下
1、在mysql的安裝目錄下找到my.ini檔案(如果沒有的話就把my-medium.ini複製,然後重新命名為my.ini即可)
2、在my.ini檔案中找到[client]和[mysqld]欄位,在下面均加上default-character-set=utf8,儲存並關閉
3、重啟mysql服務
在Linux系統下
1、開啟設定檔,我使用的linux版本是ubuntu,設定檔在/etc/mysql/my.cnf
2、在[client]和[mysqld]欄位下面均添加default-character-set=utf8,儲存並關閉
3、重啟mysql服務
注意:
如果重啟成功,並查看資料庫編碼,如果結果如下
650) this.width=650;" src="http://img.blog.csdn.net/20131125080446265?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveWlwaWFua29uZ2JhaQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" style="border:none;" />
恭喜你,說明你已經修改成功了
如果在linux下重啟mysql服務的時候出現Job failed to start,在window下重啟失敗,這是因為你安裝了高版本的mysql(mysql5.5以上),在高版本對字元編碼方式修改的辦法中,在[mysqld]下的修改發生了變化,正確方式如下:
[mysqld]下添加的應該為:
character-set-server=utf8
collation-server=utf8_general_ci
重啟mysql,現在再次查看字元編碼,如果跟下面一致,說明成功了
650) this.width=650;" src="http://img.blog.csdn.net/20131125080446265?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveWlwaWFua29uZ2JhaQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" style="border:none;font-size:18px;" />
好吧,以上就是mysql字元亂碼問題的解決,自己想記錄下來,方便自己以後再次用到或者為別人需要是查閱,如果有錯誤的地方,請指出,謝謝。
mysql中文亂碼問題