最近在開發(fā)過程中,使用到mysql的數(shù)據(jù)庫,而在將中文數(shù)據(jù)插入到數(shù)據(jù)庫的時(shí)候出現(xiàn)了數(shù)據(jù)亂碼的問題,在網(wǎng)上找了很多方法,問了很多人,試了很久才發(fā)現(xiàn)網(wǎng)上有的方法是不行的,因此在此記錄下,以便他人查找。
查看字符編碼
首先,將中文插入到數(shù)據(jù)庫亂碼是因?yàn)闆]有將數(shù)據(jù)庫編碼設(shè)置為支持中文的編碼,mysql的默認(rèn)編碼是Latin1,不支持中文,應(yīng)該設(shè)置為utf8查看自己的數(shù)據(jù)庫編碼是否已設(shè)置好,進(jìn)入數(shù)據(jù)庫,輸入:show variables like 'char%',如果出現(xiàn)下面的結(jié)果
說明你的數(shù)據(jù)庫編碼正確,無需修改,應(yīng)該是頁面或者其他編碼的問題。如果跟上面的結(jié)果不同,說明需要修改數(shù)據(jù)庫的編碼。
在windows系統(tǒng)下
1、在mysql的安裝目錄下找到my.ini文件(如果沒有的話就把my-medium.ini復(fù)制,然后重命名為my.ini即可)
2、在my.ini文件中找到[client]和[mysqld]字段,在下面均加上default-character-set=utf8,保存并關(guān)閉
3、重啟mysql服務(wù)
在linux系統(tǒng)下
1、打開配置文件,我使用的linux版本是ubuntu,配置文件在/etc/mysql/my.cnf
2、在[client]和[mysqld]字段下面均添加default-character-set=utf8,保存并關(guān)閉
3、重啟mysql服務(wù)
注意:
如果重啟成功,并查看數(shù)據(jù)庫編碼,如果結(jié)果如下
恭喜你,說明你已經(jīng)修改成功了
如果在linux下重啟mysql服務(wù)的時(shí)候出現(xiàn)Job failed to start,在window下重啟失敗,這是因?yàn)槟惆惭b了高版本的mysql(mysql5.5以上),在高版本對字符編碼方式修改的辦法中,在[mysqld]下的修改發(fā)生了變化,正確方式如下:
[client]
default-character-set=utf8
[mysqld]下添加的應(yīng)該為:
character-set-server=utf8
collation-server=utf8_general_ci
重啟mysql,現(xiàn)在再次查看字符編碼,如果跟下面一致,說明成功了
好吧,以上就是mysql字符亂碼問題的解決,自己想記錄下來,方便自己以后再次用到或者為別人需要是查閱,如果有錯(cuò)誤的地方,請指出,謝謝。
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請
點(diǎn)擊舉報(bào)。