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

MySQL 修改數據庫與表字符集為 UTF8/UTF8MB4 完整操作指南

     編輯:MySQL 綜合教學

MySQL 修改數據庫、表、欄位字符集完整指南

一、查看當前字符集

SHOW VARIABLES LIKE 'character%';
-- 關鍵項:character_set_server、character_set_database、character_set_client、character_set_connection、character_set_results

二、修改庫級預設字符集(僅影響後續新建表)

ALTER DATABASE db_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;

三、修改表級字符集(含歷史數據轉換)

-- 僅修改表預設字符集(不轉換現有數據)
ALTER TABLE tbl_name DEFAULT CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;

-- **完整轉換**:表預設 + 所有字符欄位 + 現有數據
ALTER TABLE tbl_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
關鍵區別: DEFAULT CHARACTER SET 只改元數據;CONVERT TO 會重建表、轉換所有 CHAR/VARCHAR/TEXT 欄位數據,**必須備份後操作**。

四、修改單欄位字符集

ALTER TABLE tbl_name MODIFY col_name VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

五、配置文件 my.cnf / my.ini 固化設置

[client]
default-character-set = utf8mb4

[mysql]
default-character-set = utf8mb4

[mysqld]
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
init_connect = 'SET NAMES utf8mb4'
skip-character-set-client-handshake  # 強制忽略客戶端字符集請求

六、驗證修改結果

SHOW CREATE TABLE tbl_name;
SHOW FULL COLUMNS FROM tbl_name;
SELECT * FROM information_schema.COLUMNS WHERE TABLE_SCHEMA='db' AND TABLE_NAME='tbl';

七、utf8 vs utf8mb4 選型建議

字符集最大字節支援 Emoji建議
utf8 (utf8mb3)3 字節❌舊系統兼容
utf8mb44 字節✅新項目首選
MySQL 5.5.3+ 完整支援 utf8mb4;InnoDB 行長度限制約 65535 字節,VARCHAR(255) utf8mb4 佔 768 字節,遠未達上限,放心使用。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved