首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL 字元集查詢與設定全指南:伺服器/資料庫/資料表/欄位/連線五層級

     編輯:MySQL 綜合教學

一、查看當前字元集設定

SHOW VARIABLES LIKE 'character_set%';
SHOW VARIABLES LIKE 'collation%';

關鍵變數:

  • character_set_server:伺服器預設
  • character_set_database:當前資料庫
  • character_set_client/connection/results:連線三要素
  • character_set_system:系統識別符 (固定 utf8)

二、查看資料表字元集

SHOW TABLE STATUS FROM `db_name` LIKE 'tbl_name';

關注 Collation 欄位 (如 utf8mb4_unicode_ci)。

三、查看欄位字元集

SHOW FULL COLUMNS FROM `tbl_name`;

Collation 欄顯示各欄位實際編碼,NULL 表非字串型別。

四、查看支援的字元集清單

SHOW CHARACTER SET;
-- 或
SHOW CHARSET;

輸出欄位:Charset、Description、Default collation、Maxlen (最大字節數)。

五、五層級設定優先序 (高 → 低)

  1. 伺服器級:my.cnf character-set-server
  2. 資料庫級:CREATE DATABASE ... CHARSET=utf8mb4 / ALTER DATABASE
  3. 資料表級:CREATE TABLE ... CHARSET=utf8mb4 / ALTER TABLE ... CHARSET=... (僅影響新增欄位)
  4. 欄位級:col VARCHAR(32) CHARSET=utf8mb4 / MODIFY col ... CHARSET=...
  5. 連線級:SET NAMES utf8mb4 / JDBC characterEncoding

六、生產環境標準 my.cnf

[mysqld]
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci

[client]
default-character-set = utf8mb4

[mysql]
default-character-set = utf8mb4

七、常見編碼對照

CharsetMaxlen支援範圍備註
utf8mb44完整 Unicode (含 Emoji)推薦
utf83BMP 平面 (無 Emoji)舊稱 utf8mb3
gbk2中文常用字舊系統相容
latin11西歐字元MySQL 預設 (舊版)
binary1二進位位元組不做字元檢查

八、Windows 客戶端亂碼快速修正

-- 連線後立即執行 (僅限舊系統 latin1/gbk 混用場景)
SET NAMES gbk;
-- 新專案請全鏈路 utf8mb4,勿用此法
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved