檢視相關字符集的命令
檢視資料庫支援的所有字符集(兩種命令一樣):
show character set;
show char set;
檢視字符集對應的collate
show collation;
檢視系統字符集設定,包括所有的字符集設定:
show variables like '%char%';
mysql> show variables like '%char%';
| variable_name | value |
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | c:\program files\mysql\mysql server 5.7\share\charsets\ |
8 rows in set, 1 warning (0.01 sec)
其中的含義如下:
client:為客戶端使用的字符集
connection:為連線資料庫的字符集設定型別,如果成行沒有指明連線資料庫使用的字
符集型別則按照伺服器端預設的字符集設定。
database: 為資料庫伺服器中表和字段預設使用的字符集設定,
如果表和字段沒有設定字符集,預設使用此字符集。
results: 為資料庫給客戶端返回時使用的字符集設定,如果沒有指明,使用伺服器預設的字符集。
server:為伺服器安裝時指定的預設字符集設定。 建立資料庫時的預設字符集
system:為資料庫系統使用的字符集設定
character_set_connection、character_set_client、
character_set_results
三個字符集什麼時候用到。從實際上可以看到,當客戶端連線伺服器的時候,
它會將自己想要的字符集名稱發給mysql伺服器,然後伺服器就會使用這個字符集去設定
character_set_connection、character_set_client、
character_set_results這三個值。
檢視表中的字段設定的字符集:
show full columns from t_class;
檢視表設定的字符集
show create table t_class\g;
檢視資料庫設定的字符集
show create database cms;
建立時指定字符集
伺服器級:
在安裝mysql時可以設定伺服器的預設編碼格式,也可對my.ini做修改,
修改[mysqld]裡面的character_set_server=utf8,
則可設定character_set_server的值。
資料庫級:
create database db_name default character set utf8;
如果不指定預設的字符集,則系統會根據character_set_server的值進行設定
表級:create table db_name.tb_name (id varchar(20) not null,name varchar(20) ) engine=innodb default charset=utf8;
如果不指定預設的字符集,則系統會根據database的值進行設定
列級:create table db_name.tb_name ( id varchar(20) not null, name varchar(20) character set utf8 );
如果不指定預設的字符集,則系統會根據database的值進行設定
修改字符集命令
修改character_set_connection、character_set_client、
character_set_results三值:
語法:set names 'charset_name' [collate 'collation_name']
set names utf8等同於下面三個:
set character_set_client = utf8;
set character_set_results = utf8;
set character_set_connection = utf8;
修改資料庫字符集
alter database 資料庫名 character set utf8;
修改表的字符集
alter table 表名 default character set utf8 collate utf8_general_ci;
alter table 表名 default character set gbk collate gbk_chinese_ci;
修改列的字符集
alter table t1 change name name varchar(100) character set utf8 collate utf8_general_ci;
alter table t1 change name name varchar(100) character set gbk collate gbk_chinese_ci;
設定 my.ini中的字符集
[mysqld]
character-set-server = utf8
這個引數 控制character-set-server和character_set_database的值
控制資料庫,表,字段預設的字符集
set names utf8
控制當前session的character_set_connection、character_set_client、
character_set_results的字符集
控制客戶端檢視資料庫時的亂碼問題
mysql 集群字符集 Mysql 字符集
字符集與字元比較 字符集字符集是某種字元的集合,比如最常見的ascii碼,由127個字元組成,只需要乙個位元組就能表示 我們常說的字符集還是gbk iso utf8 mysql 我們使用得最多的字符集就是gbk 和 utf8了 他們都是變長字符集,如果字元在ascii範圍內就使用乙個位元組表示,其他...
mysql字符集 MySQL字符集選擇
一 怎樣選擇合適的字符集 對mysql資料庫來說,字符集很重要,因為資料庫儲存的資料大部分都是各種文字,字符集對資料庫的儲存,處理效能都會有所影響。主要考慮一下幾方面的因素 1.滿足應用支援語言的需求,應用處理各種各樣的文字,發布到使用不同語言的國家或地區,可以選擇unicode字符集,mysql的...
mysql字符集修改 MySql字符集修改
問題分析 普通的字串或者表情都是佔位3個位元組,所以utf8足夠用了,但是移動端的表情符號佔位是4個位元組,普通的utf8就不夠用了,為了應對無線網際網路的機遇和挑戰 避免 emoji 表情符號帶來的問題 涉及無線相關的 mysql 資料庫建議都提前採用 utf8mb4 字符集,這必須要作為移動網際...