mysql如何更改數(shù)據(jù)庫(kù)字符編碼?借助客戶端工具很容易就可以更改了,下面來(lái)看一下。
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛(ài)。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶,將通過(guò)不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名與空間、網(wǎng)頁(yè)空間、營(yíng)銷軟件、網(wǎng)站建設(shè)、渾南網(wǎng)站維護(hù)、網(wǎng)站推廣。
打開(kāi)navicat客戶端工具,在左邊找到要更改的數(shù)據(jù)庫(kù)。
右鍵點(diǎn)擊這個(gè)數(shù)據(jù)庫(kù),在菜單上點(diǎn)擊數(shù)據(jù)庫(kù)屬性選項(xiàng)。
在彈出的屬性窗口上,點(diǎn)擊默認(rèn)字符集下的下拉框。
在彈出的下拉選項(xiàng)里,點(diǎn)擊選中要使用的字符集就行了,比如選擇常用的utf8字符集,點(diǎn)擊ok按鈕就行了。
修改mysql的默認(rèn)字符集是通過(guò)修改它的配置文件來(lái)實(shí)現(xiàn)的。一般分兩種情況:
Windows平臺(tái)
windows下的mysql配置文件是my.ini,一般在c:windowsmy.ini或者c:winntmy.ini可以直接在這個(gè)文件里面加上
default-character-set=gbk #或gb2312,big5,utf8
然后重新啟動(dòng)mysql
service mysql restart或/etc/init.d/mysql restart
或用其他方法重新啟動(dòng),就生效了。
Unix平臺(tái)
linux下的mysql配置文件是my.cnf,一般是/etc/my.cnf,如果找不到可以用find命令找一下:
find / -iname my.cnf
在這個(gè)文件里面加上
default-character-set=gbk #或gb2312,big5,utf8
然后重新啟動(dòng)mysql
net stop mysql
首先,MySQL的字符集問(wèn)題主要是兩個(gè)概念,一個(gè)是Character Sets,一個(gè)是Collations,前者是字符內(nèi)容
及編碼,后者是對(duì)前者進(jìn)行比較操作的一些規(guī)則。這兩個(gè)參數(shù)集可以在數(shù)據(jù)庫(kù)實(shí)例、單個(gè)數(shù)據(jù)庫(kù)、表、列等四個(gè)級(jí)
別指定。
對(duì)于使用者來(lái)說(shuō),一般推薦使用utf8編碼來(lái)存儲(chǔ)數(shù)據(jù)。而要解決亂碼問(wèn)題,不單單是MySQL數(shù)據(jù)的存儲(chǔ)問(wèn)題,還
和用戶的程序文件的編碼方式、用戶程序和MySQL數(shù)據(jù)庫(kù)的連接方式都有關(guān)系。
首先,MySQL有默認(rèn)的字符集,這個(gè)是安裝的時(shí)候確定的,在編譯MySQL的時(shí)候可以通過(guò)DEFAULT_CHARSET=
utf8和DEFAULT_COLLATION=utf8_general_ci這兩個(gè)參數(shù)(MySQL5.5版本,5.1版本用--with-charset=
utf8 --with-collation=utf8_general_ci)來(lái)指定默認(rèn)的字符集為utf8,這也是最一勞永逸的辦法,這樣指定后,
客戶端連接到數(shù)據(jù)庫(kù)的編碼方式也默認(rèn)是utf8了,應(yīng)用程序不需要任何處理。
但是遺憾的是,很多人編譯安裝MySQL的時(shí)候沒(méi)有指定這兩個(gè)參數(shù),大多數(shù)人更是通過(guò)二進(jìn)制程序的方式安裝,那
么這時(shí)候MySQL的默認(rèn)字符集是latin1。而這時(shí)候我們?nèi)匀豢梢灾付∕ySQL的默認(rèn)字符集,通過(guò)my.cnf文件增加
兩個(gè)參數(shù):
1.在[mysqld]下添加
default-character-set=utf8(mysql 5.5 版本添加character-set-server=utf8)
2.在[client]下添加
default-character-set=utf8
這樣我們建數(shù)據(jù)庫(kù)建表的時(shí)候就不用特別指定utf8的字符集了。配置文件里的這種寫法解決了數(shù)據(jù)存儲(chǔ)和比較的問(wèn)題
,但是對(duì)客戶端的連接是沒(méi)有作用的,客戶端這時(shí)候一般需要指定utf8方式連接才能避免亂碼。也就是傳說(shuō)總的set
names命令。事實(shí)上,set names utf8命令對(duì)應(yīng)的是服務(wù)器端以下幾個(gè)命令:
SET character_set_client = utf8;
SET character_set_results = utf8;
SET character_set_connection = xutf8;
但這三個(gè)參數(shù)是不能寫在配置文件my.cnf里的。只能通過(guò)set命令來(lái)動(dòng)態(tài)修改。我們需要的是在配置文件里寫好一勞
永逸的辦法。那么這時(shí)候,是否有在服務(wù)端解決問(wèn)題的辦法呢,可行的思路是在init_connect里設(shè)置。這個(gè)命令在每
個(gè)普通用戶連接上來(lái)的時(shí)候都會(huì)觸發(fā)執(zhí)行,可以在[mysqld]部分增加以下一行設(shè)置連接字符集:
在[mysqld]下添加:
init_connect = 'SET NAMES utf8'
總結(jié):
1、首選在編譯安裝MySQL的時(shí)候指定兩個(gè)參數(shù)使用utf8編碼。
2、次選在配置文件my.cnf或my.ini設(shè)定兩個(gè)參數(shù),同時(shí)設(shè)置init_connect參數(shù)。
3、第三在配置文件my.cnf或my.ini設(shè)定兩個(gè)參數(shù),同時(shí)客戶端的連接指定set names命令。
4、在配置文件my.cnf里的client和server處加入default-character-set參數(shù)方便管理。
1) 最簡(jiǎn)單的修改方法,就是修改mysql的my.ini文件中的字符集鍵值,
如 default-character-set = utf8
character_set_server = utf8
修改完后,重啟mysql的服務(wù),service mysql restart
(2) 還有一種修改mysql默認(rèn)字符集的方法,就是使用mysql的命令
SET?NAMES?'utf8';