set names gbk;
站在用戶的角度思考問題,與客戶深入溝通,找到突泉網(wǎng)站設(shè)計(jì)與突泉網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作、外貿(mào)網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名注冊(cè)、虛擬主機(jī)、企業(yè)郵箱。業(yè)務(wù)覆蓋突泉地區(qū)。
該命令是會(huì)話級(jí)的,也就是關(guān)閉客戶端后失效。
想永久保存的話需要修改配置文件my.cnf。
修改my.cnf
vi /etc/my.cnf
在[client]下添加,client為控制客戶端的。
default-character-set=utf8
在[mysqld]下添加,mysqld為控制服務(wù)器端的。
default-character-set=utf8
保存后重啟mysql:
service mysqld restart,重啟。
show variables like '%char%';查看。
首先,MySQL的字符集問題主要是兩個(gè)概念,一個(gè)是Character Sets,一個(gè)是Collations,前者是字符內(nèi)容
及編碼,后者是對(duì)前者進(jìn)行比較操作的一些規(guī)則。這兩個(gè)參數(shù)集可以在數(shù)據(jù)庫實(shí)例、單個(gè)數(shù)據(jù)庫、表、列等四個(gè)級(jí)
別指定。
對(duì)于使用者來說,一般推薦使用utf8編碼來存儲(chǔ)數(shù)據(jù)。而要解決亂碼問題,不單單是MySQL數(shù)據(jù)的存儲(chǔ)問題,還
和用戶的程序文件的編碼方式、用戶程序和MySQL數(shù)據(jù)庫的連接方式都有關(guān)系。
首先,MySQL有默認(rèn)的字符集,這個(gè)是安裝的時(shí)候確定的,在編譯MySQL的時(shí)候可以通過DEFAULT_CHARSET=
utf8和DEFAULT_COLLATION=utf8_general_ci這兩個(gè)參數(shù)(MySQL5.5版本,5.1版本用--with-charset=
utf8 --with-collation=utf8_general_ci)來指定默認(rèn)的字符集為utf8,這也是最一勞永逸的辦法,這樣指定后,
客戶端連接到數(shù)據(jù)庫的編碼方式也默認(rèn)是utf8了,應(yīng)用程序不需要任何處理。
但是遺憾的是,很多人編譯安裝MySQL的時(shí)候沒有指定這兩個(gè)參數(shù),大多數(shù)人更是通過二進(jìn)制程序的方式安裝,那
么這時(shí)候MySQL的默認(rèn)字符集是latin1。而這時(shí)候我們?nèi)匀豢梢灾付∕ySQL的默認(rèn)字符集,通過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ù)庫建表的時(shí)候就不用特別指定utf8的字符集了。配置文件里的這種寫法解決了數(shù)據(jù)存儲(chǔ)和比較的問題
,但是對(duì)客戶端的連接是沒有作用的,客戶端這時(shí)候一般需要指定utf8方式連接才能避免亂碼。也就是傳說總的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里的。只能通過set命令來動(dòng)態(tài)修改。我們需要的是在配置文件里寫好一勞
永逸的辦法。那么這時(shí)候,是否有在服務(wù)端解決問題的辦法呢,可行的思路是在init_connect里設(shè)置。這個(gè)命令在每
個(gè)普通用戶連接上來的時(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:通過客戶端修改表字段的默認(rèn)字符集
打開SQLyog客戶端,連接數(shù)據(jù)庫如下圖所示,點(diǎn)擊connection 按鈕 連接數(shù)據(jù)庫
我的數(shù)據(jù)庫名稱為edu,然后我隨意找到數(shù)據(jù)庫中test2表,右鍵-----》Alter Table
如果安裝數(shù)據(jù)庫的 時(shí)候 沒有選擇字符集設(shè)置,那么mysql數(shù)據(jù)庫默認(rèn)為latin1,在箭頭部分選擇utf8字符集
方法2:用數(shù)據(jù)庫命令修改字符集
首先查看當(dāng)前數(shù)據(jù)庫字符集,在命令框中執(zhí)行如下命令:show variables like 'character_set_%';
查看字符集排序設(shè)置,執(zhí)行命令:show variables like 'collation_%';
修改服務(wù)器級(jí)別字符集,執(zhí)行命令:
1,臨時(shí)修改:SET GLOBAL character_set_server=utf8;
修改表級(jí)別,命令如下:ALTER TABLE table_name DEFAULT CHARSET utf8;
修改數(shù)據(jù)庫級(jí)別,命令如下:use edu(換成你要修改的數(shù)據(jù)庫名,在這里我的數(shù)據(jù)庫為edu),,然后執(zhí)行命令:alter database edu character set utf-8;
或者修改mysql的my.ini文件中的字符集鍵值
[mysql]
[mysqld]
重啟mysql
1、更改服務(wù)器的編碼方式,在終端輸入以下命令:
mysqld--character-set-server=gbk--collation-server=gbk_chinese_ci;
2、更改某個(gè)數(shù)據(jù)庫的編碼方式
mysql-uroot-p
alterdatabasecharactersetgbkcollategbk_chinese_ci;
3、在創(chuàng)建數(shù)據(jù)庫時(shí)指定編碼:
mysql-uroot-p?
createdatabasedb_namecharactersetgbkcollategbk_chinese_ci;
4、更改某個(gè)表的編碼方式
mysql-uroot-pdb_name
altertabletable_nameconvertto?charachtersetgbkcollategbk_chinese_ci;
5、在創(chuàng)建表時(shí)指定編碼方式
mysql-uroot-pdb_name
createtabletable_name(....)charactersetgbkcollategbk_chinese_ci;
6、更改某行的編碼方式
mysql-uroot-pdb_name
altertabletable_namemodifycolumn_namevarchar(20)charactersetgbkcollategbk_chinese_ci;
7、在創(chuàng)建列時(shí)指定編碼方式:
/preprename="code"class="sql"mysql-uroot-pdb_name
createtabletable_name(...,col1varchar(20)charactersetgbkcollategbk_chinese_ci,...)charactersetutf8collateutf8_general_ci;
網(wǎng)站標(biāo)題:mysql字符集設(shè)置怎么 mysql如何設(shè)置字符集
鏈接分享:http://aaarwkj.com/article8/dochoop.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、域名注冊(cè)、網(wǎng)站導(dǎo)航、網(wǎng)站營銷、網(wǎng)站排名、微信小程序
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)