檢查當(dāng)前數(shù)據(jù)庫編碼。
成都創(chuàng)新互聯(lián)服務(wù)項(xiàng)目包括聊城網(wǎng)站建設(shè)、聊城網(wǎng)站制作、聊城網(wǎng)頁制作以及聊城網(wǎng)絡(luò)營(yíng)銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,聊城網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到聊城省份的部分城市,未來相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
使用語句:
show variables like ‘%character%’;
show variables like’%collation%’;
如果不是以上情況,需要將mysql編碼設(shè)置為utf-8。具體步驟如下:
如果安裝mysql時(shí)安裝了“MySql Sever Instance Configuration Wizard”,則只需要啟動(dòng)該程序進(jìn)行相應(yīng)設(shè)置即可。如下面截圖中所描述,需要將默認(rèn)編碼設(shè)置為utf8
如果沒有該程序,需要手動(dòng)修改mysql編碼。
1、 編輯MySql的配置文件
MySql的配置文件Windows下一般在系統(tǒng)目錄下或者在MySql的安裝目錄下名字叫my.ini,可以搜索,Linux下一般是 /etc/my.cnf
--在 [mysqld] 標(biāo)簽下加上以下內(nèi)容:
default-character-set = utf8
character_set_server = utf8
注意:如果此標(biāo)簽下已經(jīng)存在“default-character-set=GBK”類似的內(nèi)容,只需修改即可。
--在 [mysql] 標(biāo)簽下加上一行
default-character-set = utf8
--在 [mysql.server]標(biāo)簽下加上一行
default-character-set = utf8
--在 [mysqld_safe]標(biāo)簽下加上一行
default-character-set = utf8
--在 [client]標(biāo)簽下加上一行
default-character-set = utf8
2、 重新啟動(dòng)MySql服務(wù)
Windows可在服務(wù)管理器中操作,也可使用命令行:
net stop mysql 回車
net start mysql 回車
服務(wù)名可能不一定為mysql,請(qǐng)按自己的設(shè)置
Linux下面可是用 service mysql restart
如果出現(xiàn)啟動(dòng)失敗,請(qǐng)檢查配置文件有沒有設(shè)置錯(cuò)誤
3、 查看設(shè)置結(jié)果
登錄MySql命令行客戶端:打開命令行
mysql –uroot –p 回車
輸入密碼
進(jìn)入mysql后 執(zhí)行 :show variables like "% character %";
另外:
建立數(shù)據(jù)庫時(shí)可以使用以下命令:
create database app_relation character set utf8;
use app_relation;
source app_relation.sql;
修改數(shù)據(jù)庫編碼的命令為:
alter database app_relation character set utf8;
通過mysql命令修改:
修改數(shù)據(jù)庫的字符集
mysqluse
mydb
mysqlalter
database
mydb
character
set
utf-8;
創(chuàng)建數(shù)據(jù)庫指定數(shù)據(jù)庫的字符集
mysqlcreate
database
mydb
character
set
utf-8;
通過配置文件修改:
修改/var/lib/mysql/mydb/db.opt
default-character-set=latin1
default-collation=latin1_swedish_ci
為
default-character-set=utf8
default-collation=utf8_general_ci
重起mysql:
1、建表時(shí)指定字符集utf-8:
CREATETABLE?表名
(?`id`TINYINT(255)UNSIGNEDNOTNULLAUTO_INCREMENTPRIMARYKEY,
`content`VARCHAR(255)NOTNULL)
DEFAULTCHARACTERSET=utf8;
2、修改表的字符集為utf-8:
altertable表名converttocharactersetutf8;
擴(kuò)展資料:
1、創(chuàng)建數(shù)據(jù)庫時(shí)設(shè)置字符集:
CREATEDATABASE?數(shù)據(jù)庫名CHARACTERSETutf8COLLATEutf8_general_ci;
注意后面三個(gè)單詞之間是有下劃線的對(duì)于每個(gè)選項(xiàng)所給定的值,前面沒有等號(hào);在第一個(gè)選項(xiàng)和第二個(gè)選項(xiàng)之間也沒有逗號(hào)。
2、修改數(shù)據(jù)庫的字符集:
alterdatabase?數(shù)據(jù)庫名charactersetutf8;
3、顯示某數(shù)據(jù)庫字符集設(shè)置:
showcreatedatabase數(shù)據(jù)庫名;
4、顯示某數(shù)據(jù)表字符集設(shè)置:
showcreatetable表名;
5、修改字段:
altertable表名modifycolumn'字段名'varchar(30)charactersetutf8notnull;
6、添加表字段:
altertable表名addcolumn'字段名'varchar(20)charactersetutf8;
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'
--?創(chuàng)建數(shù)據(jù)庫時(shí),設(shè)置數(shù)據(jù)庫的編碼方式?
--?CHARACTER?SET:指定數(shù)據(jù)庫采用的字符集,utf8不能寫成utf-8
--?COLLATE:指定數(shù)據(jù)庫字符集的排序規(guī)則,utf8的默認(rèn)排序規(guī)則為utf8_general_ci(通過show?character?set查看)
drop?database?if?EXISTS?dbtest;
create?database?dbtest?CHARACTER?SET?utf8?COLLATE?utf8_general_ci;
--?修改數(shù)據(jù)庫編碼
alter?database?dbtest?CHARACTER?SET?GBK?COLLATE?gbk_chinese_ci;
alter?database?dbtest?CHARACTER?SET?utf8?COLLATE?utf8_general_ci;
--?創(chuàng)建表時(shí),設(shè)置表、字段編碼
use?dbtest;
drop?table?if?exists?tbtest;
create?table?tbtest(
id?int(10)?auto_increment,
user_name?varchar(60)?CHARACTER?SET?GBK?COLLATE?gbk_chinese_ci,
email?varchar(60),
PRIMARY?key(id)
)CHARACTER?SET?utf8?COLLATE?utf8_general_ci;
--?修改表編碼
alter?table?tbtest?character?set?utf8?COLLATE?utf8_general_ci;
--?修改字段編碼
ALTER?TABLE?tbtest?MODIFY?email?VARCHAR(60)?CHARACTER?SET?utf8?COLLATE?utf8_general_ci;
--?查看所有的字符編碼
SHOW?CHARACTER?SET;
--?查看創(chuàng)建數(shù)據(jù)庫的指令并查看數(shù)據(jù)庫使用的編碼
show?create?database?dbtest;
--?查看數(shù)據(jù)庫編碼:
show?variables?like?'%char%';
--?設(shè)置character_set_server、set?character_set_client和set?character_set_resultsset?character_set_server?=?utf8;?--?服務(wù)器的默認(rèn)字符集。使用這個(gè)語句可以修改成功,但重啟服務(wù)后會(huì)失效。根本的辦法是修改配置MYSQL文件MY.INI,
動(dòng)態(tài)設(shè)置的方法(mysql5.5):
SET @@global.character_set_client = gbk;
SET @@global.character_set_results = gbk;
SET @@global.character_set_connection = gbk;
SET @@global.character_set_server = gbk;
SET @@session.character_set_client = gbk;
SET @@session.character_set_results = gbk;
SET @@session.character_set_connection = gbk;
靜態(tài)設(shè)置的方法:
配置文件新增或修改以下內(nèi)容
mysql5.5
character-set-server=utf8
init_connect='SET NAMES utf8'
分享標(biāo)題:mysql字符怎么設(shè)置 mysql字段設(shè)置
URL標(biāo)題:http://jinyejixie.com/article6/dochoig.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開發(fā)、關(guān)鍵詞優(yōu)化、營(yíng)銷型網(wǎng)站建設(shè)、網(wǎng)站維護(hù)、標(biāo)簽優(yōu)化、定制網(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)