新聞中心
MySQL是一種流行的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),它具有廣泛的應(yīng)用和使用。MySQL數(shù)據(jù)庫(kù)是基于字符集進(jìn)行存儲(chǔ)和操作的,所以在操作MySQL數(shù)據(jù)庫(kù)時(shí),經(jīng)常需要查詢(xún)MySQL數(shù)據(jù)庫(kù)的字符集。本文將介紹如何查詢(xún)MySQL數(shù)據(jù)庫(kù)中的字符集。

創(chuàng)新互聯(lián)主營(yíng)巴中網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,重慶APP軟件開(kāi)發(fā),巴中h5微信小程序開(kāi)發(fā)搭建,巴中網(wǎng)站營(yíng)銷(xiāo)推廣歡迎巴中等地區(qū)企業(yè)咨詢(xún)
一、查詢(xún)MySQL數(shù)據(jù)庫(kù)的字符集
要查詢(xún)MySQL數(shù)據(jù)庫(kù)的字符集,需要連接到MySQL服務(wù)器并打開(kāi)MySQL終端。在MySQL終端中,可以通過(guò)一系列命令來(lái)查詢(xún)MySQL數(shù)據(jù)庫(kù)的字符集。根據(jù)需要,下面介紹幾種查詢(xún)方法:
1. show variables like ‘character_set_%’;
這個(gè)命令可以顯示MySQL服務(wù)器的所有字符集變量。在MySQL服務(wù)器中,所有的字符集變量都以“character_set_”開(kāi)頭,所以這個(gè)命令可以查詢(xún)所有與字符集相關(guān)的變量。通過(guò)這個(gè)命令,可以查詢(xún)MySQL服務(wù)器的默認(rèn)字符集、客戶(hù)端連接字符集、服務(wù)端字符集、數(shù)據(jù)庫(kù)字符集等信息。
在執(zhí)行這個(gè)命令時(shí),可以指定變量名或使用通配符查詢(xún)。比如,可以使用“show variables like ‘character_set_client’;”來(lái)查詢(xún)客戶(hù)端連接字符集。
2. show variables like ‘collation_%’;
這個(gè)命令可以顯示MySQL服務(wù)器的所有排序規(guī)則變量。與字符集變量類(lèi)似,所有排序規(guī)則變量都以“collation_”開(kāi)頭。通過(guò)這個(gè)命令,可以查詢(xún)MySQL服務(wù)器的默認(rèn)排序規(guī)則、客戶(hù)端連接排序規(guī)則、服務(wù)端排序規(guī)則、數(shù)據(jù)庫(kù)排序規(guī)則等信息。
在執(zhí)行這個(gè)命令時(shí),也可以指定變量名或使用通配符查詢(xún)。
3. show create database my_database;
這個(gè)命令可以顯示指定數(shù)據(jù)庫(kù)的創(chuàng)建語(yǔ)句,其中包含數(shù)據(jù)庫(kù)的默認(rèn)字符集和排序規(guī)則信息。執(zhí)行這個(gè)命令時(shí),需要將“my_database”替換為需要查詢(xún)的數(shù)據(jù)庫(kù)名。
4. show table status from my_database;
這個(gè)命令可以顯示指定數(shù)據(jù)庫(kù)中所有表的狀態(tài)信息,其中包含每個(gè)表的默認(rèn)字符集和排序規(guī)則信息。執(zhí)行這個(gè)命令時(shí),需要將“my_database”替換為需要查詢(xún)的數(shù)據(jù)庫(kù)名。
5. show full columns from my_table;
這個(gè)命令可以顯示指定表的所有列信息,其中也包含每個(gè)列的字符集和排序規(guī)則信息。執(zhí)行這個(gè)命令時(shí),需要將“my_table”替換為需要查詢(xún)的表名。
以上是常見(jiàn)的幾種查詢(xún)MySQL數(shù)據(jù)庫(kù)字符集的方法,通過(guò)這些方法可以獲取到所需的字符集信息。
二、修改MySQL數(shù)據(jù)庫(kù)的字符集
除了查詢(xún)MySQL數(shù)據(jù)庫(kù)的字符集外,有時(shí)需要修改MySQL數(shù)據(jù)庫(kù)的字符集。修改MySQL數(shù)據(jù)庫(kù)的字符集也需要使用MySQL終端進(jìn)行操作。下面介紹如何修改MySQL數(shù)據(jù)庫(kù)的字符集。
1. 修改MySQL服務(wù)器的字符集
要修改MySQL服務(wù)器的字符集,可以執(zhí)行以下命令:
set character_set_server=’new_charset’;
其中,“new_charset”為需要設(shè)置的新字符集名稱(chēng)。執(zhí)行這個(gè)命令后,MySQL服務(wù)器會(huì)使用新的字符集處理所有連接和查詢(xún)。需要注意的是,修改MySQL服務(wù)器的字符集需要重啟MySQL服務(wù)后才能生效。
2. 修改MySQL數(shù)據(jù)庫(kù)的字符集
要修改MySQL數(shù)據(jù)庫(kù)的字符集,可以執(zhí)行以下命令:
alter database my_database character set = ‘new_charset’;
其中,“my_database”為需要修改的數(shù)據(jù)庫(kù)名稱(chēng),“new_charset”為需要設(shè)置的新字符集名稱(chēng)。執(zhí)行這個(gè)命令后,指定數(shù)據(jù)庫(kù)中的所有表和列也會(huì)使用新的字符集。需要注意的是,修改MySQL數(shù)據(jù)庫(kù)的字符影響到數(shù)據(jù)庫(kù)中所有表和列的字符集,需要謹(jǐn)慎操作。
3. 修改MySQL表的字符集
要修改MySQL表的字符集,可以執(zhí)行以下命令:
alter table my_table convert to character set new_charset;
其中,“my_table”為需要修改的表名稱(chēng),“new_charset”為需要設(shè)置的新字符集名稱(chēng)。執(zhí)行這個(gè)命令后,指定表中的所有列也會(huì)使用新的字符集。需要注意的是,修改MySQL表的字符影響到表中所有列的字符集,需要謹(jǐn)慎操作。
以上是關(guān)于查詢(xún)和修改MySQL數(shù)據(jù)庫(kù)的字符集的介紹,希望能夠幫助大家更好地使用MySQL數(shù)據(jù)庫(kù)。
相關(guān)問(wèn)題拓展閱讀:
- mysql數(shù)據(jù)庫(kù)使用的是什么字符集?
- 如何查看字符編碼類(lèi)型
- 怎么樣查詢(xún)數(shù)據(jù)庫(kù)當(dāng)前所用的字符集
mysql數(shù)據(jù)庫(kù)使用的是什么字符集?
MySQL字符悄鎮(zhèn)集多種多樣,下面為您列舉了其中三種最常見(jiàn)的MySQL字符集查看方法,該方法供您參考,希望對(duì)您學(xué)習(xí)MySQL數(shù)據(jù)庫(kù)能有所啟迪。
一、查看MySQL數(shù)啟喊粗據(jù)庫(kù)服務(wù)器和數(shù)據(jù)庫(kù)MySQL字符集。
mysql> show variables like ‘%char%’; +++| Variable_name| Value |…… +++| character_set_client | utf |…… —
客戶(hù)端字符集 | character_set_connection | utf |…… | character_set_database | utf 滲森 |…… —
數(shù)據(jù)庫(kù)字符集 | character_set_filesystem | binary |…… | character_set_results | utf |…… | character_set_server | utf |…… —
服務(wù)器字符集 | character_set_system | utf |…… | character_sets_dir| D:\MySQL Server 5.0\share\charsets\ |…… +++
二、查看MySQL數(shù)據(jù)表(table)的MySQL字符集。
mysql> show table status from sqlstudy_db like ‘%countries%’; +++++——+—+| Name | Engine | Version | Row_format | Rows | Collation|…… +++++——+—+| countries | InnoDB || Compact | 11 | utf8_general_ci |…… +++++——+—+
三、查看MySQL數(shù)據(jù)列(column)的MySQL字符集。
mysql> show full columns from countries; +++—+| Field | Type| Collation| ……. +++—+| countries_id| int(11) | NULL| ……. | countries_name| varchar(64) | utf8_general_ci | ……. | countries_iso_code_2 | char(2) | utf8_general_ci | ……. | countries_iso_code_3 | char(3) | utf8_general_ci | ……. | address_format_id | int(11) | NULL| ……. +++—+
如何查看字符編碼類(lèi)型
可以通過(guò)以下方法來(lái)進(jìn)行編碼格式判斷,輸入一個(gè)字符串,悶腔陸之后返回字符串編碼類(lèi)型。
public static String getEncoding(String str) {
String encode = “GB2312”;
try {
if (str.equals(new String(str.getBytes(encode), encode))) { //判斷是不是GB2312
String s = encode;
return s; //是的話,返回圓燃“GB2312“,以下螞頃代碼同理
}
} catch (Exception exception) {
}
encode = “ISO”;
try {
if (str.equals(new String(str.getBytes(encode), encode))) { //判斷是不是ISO
String s1 = encode;
return s1;
}
} catch (Exception exception1) {
}
encode = “UTF-8”;
try {
if (str.equals(new String(str.getBytes(encode), encode))) { //判斷是不是UTF-8
String s2 = encode;
return s2;
}
} catch (Exception exception2) {
}
encode = “GBK”;
try {
if (str.equals(new String(str.getBytes(encode), encode))) { //判斷是不是GBK
String s3 = encode;
return s3;
}
} catch (Exception exception3) {
}
return “”;//如果都不是,說(shuō)明輸入的內(nèi)容不屬于常見(jiàn)的編碼格式。
分不同的類(lèi)型,可按以下三種方式查詢(xún):
一、查看MySQL數(shù)塌廳據(jù)庫(kù)服務(wù)器和數(shù)據(jù)庫(kù)MySQL字符集。
命令:
mysql> show variables like ‘%char%’;
二、查看MySQL數(shù)瞎肢據(jù)表(table)的MySQL字磨衫世符集。
命令:
mysql> show table status from sqlstudy_db like ‘%countries%’;
三、查看MySQL數(shù)據(jù)列(column)的MySQL字符集。
命令:
mysql> show full columns from countries;
怎么樣查詢(xún)數(shù)據(jù)庫(kù)當(dāng)前所用的字符集
基本上現(xiàn)在的字符集 MySQL 都差棗友支持,查看 MySQL 支持的字符集列表, 有兩種方法:
1. SQL 語(yǔ)句
2. 查看元數(shù)據(jù)字典表
查詢(xún)結(jié)果:
1)之一列代表虛槐字符集名字;
2)第二列表示字符集排序規(guī)則;
3)第三巖森列表示字符集描述;
4)第四列表示字符集編碼的更大字節(jié)數(shù)。
Oracle數(shù)據(jù)庫(kù)查看和修改服務(wù)器端的字符集的方法是本文主要要介紹的內(nèi)容,接下來(lái)救讓我們一起來(lái)了解一下這部分內(nèi)容。
A、oracle server 端字符集查詢(xún)
select userenv(’language’) from dual
其中NLS_CHARACTERSET 為server端字符集
NLS_LANGUAGE 為 server端字符顯示形式
B、查詢(xún)oracle client端的字符集
$echo $NLS_LANG
如果發(fā)現(xiàn)你select 出來(lái)的數(shù)據(jù)是亂碼,請(qǐng)把client端的字符集配置成與linux操作系統(tǒng)相同的字符集。如果還是有亂碼,則伏檔有可能是數(shù)據(jù)庫(kù)中的數(shù)據(jù)存在問(wèn)題,或者是oracle服務(wù)端的配置存在問(wèn)題。
C、server端字符集修改
將數(shù)茄早據(jù)庫(kù)啟動(dòng)到顫廳雀RESTRICTED模式下做字符集更改:
SQL> conn /as sysdba Connected.
SQL> shutdown immediate;
Database closed.
Database diounted.
ORACLE instance shut down.
SQL> startup mount ORACLE instance started.
Total System Global Areabytes
Fixed Sizebytes
Variable Sizebytes
Database Buffers54432 bytes
Redo Bufferytes
Database mounted.
SQL> ALTER SYSTEM ENABLE RESTRICTED SESSION;
System altered.
SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
System altered.
SQL> ALTER SYSTEM SET AQ_TM_PROCESSES=0;
System altered.
SQL> alter database open;
Database altered.
SQL> ALTER DATABASE CHARACTER SET ZHS16GBK;
ALTER DATABASE CHARACTER SET ZHS16GBK ERROR at line 1:
ORA-12712: new character set must be a superset of old character set
提示我們的字符集:新字符集必須為舊字符集的超集,這時(shí)我們可以跳過(guò)超集的檢查做更改:
SQL> ALTER DATABASE character set INTERNAL_USE ZHS16GBK;
Database altered.
SQL> select * from v$nls_parameters;
略
rows selected.
重啟檢查是否更改完成:
SQL> shutdown immediate;
Database closed.
Database diounted.
ORACLE instance shut down.
SQL> startup ORACLE instance started.
Total System Global Areabytes
Fixed Sizebytes
Variable Sizebytes
Database Buffers54432 bytes
Redo Bufferytes
Database mounted.
Database opened.
SQL> select * from v$nls_parameters;
略
rows selected.
我們看到這個(gè)過(guò)程和之前ALTER DATABASE CHARACTER SET操作的內(nèi)部過(guò)程是完全相同的,也就是說(shuō)INTERNAL_USE提供的幫助就是使Oracle數(shù)據(jù)庫(kù)繞過(guò)了子集與超集的校驗(yàn)。
這一方法在某些方面是有用處的,比如測(cè)試;應(yīng)用于產(chǎn)品環(huán)境大家應(yīng)該格外小心,除了你以外,沒(méi)有人會(huì)為此帶來(lái)的后果負(fù)責(zé)。
結(jié)語(yǔ)(我們不妨再說(shuō)一次):
對(duì)于DBA來(lái)說(shuō),有一個(gè)很重要的原則就是:不要把你的數(shù)據(jù)庫(kù)置于危險(xiǎn)的境地!
這就要求我們,在進(jìn)行任何可能對(duì)數(shù)據(jù)庫(kù)結(jié)構(gòu)發(fā)生改變的操作之前,先做有效的備份,很多DBA沒(méi)有備份的操作中得到了慘痛的教訓(xùn)。
D、client端字符集修改
在 /home/oracle與 /root用戶(hù)目錄下的。bash_profile中
添加或修改 export NLS_LANG=”AMERICAN_AMERICA.UTF8″ 語(yǔ)句
什么數(shù)據(jù)庫(kù),不同的數(shù)據(jù)庫(kù)的查詢(xún)方法不同
mysql查詢(xún)數(shù)據(jù)庫(kù)字符集的介紹就聊到這里吧,感謝你花時(shí)間閱讀本站內(nèi)容,更多關(guān)于mysql查詢(xún)數(shù)據(jù)庫(kù)字符集,如何查詢(xún)MySQL數(shù)據(jù)庫(kù)中的字符集?,mysql數(shù)據(jù)庫(kù)使用的是什么字符集?,如何查看字符編碼類(lèi)型,怎么樣查詢(xún)數(shù)據(jù)庫(kù)當(dāng)前所用的字符集的信息別忘了在本站進(jìn)行查找喔。
成都創(chuàng)新互聯(lián)建站主營(yíng):成都網(wǎng)站建設(shè)、網(wǎng)站維護(hù)、網(wǎng)站改版的網(wǎng)站建設(shè)公司,提供成都網(wǎng)站制作、成都網(wǎng)站建設(shè)、成都網(wǎng)站推廣、成都網(wǎng)站優(yōu)化seo、響應(yīng)式移動(dòng)網(wǎng)站開(kāi)發(fā)制作等網(wǎng)站服務(wù)。
新聞名稱(chēng):如何查詢(xún)MySQL數(shù)據(jù)庫(kù)中的字符集?(mysql查詢(xún)數(shù)據(jù)庫(kù)字符集)
文章分享:http://m.5511xx.com/article/cdcdjeh.html


咨詢(xún)
建站咨詢(xún)
