萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 程式設計 >  >> 資料庫 >> MySQL 教學

MySQL 遷移報錯 "Unknown character set: utf8mb4" 秒級修復指南

問題現象

從 MySQL 5.1 遷移至 5.5+,用 phpMyAdmin 導入 SQL 文件報錯:

#1115 - Unknown character set: 'utf8mb4'

原因:utf8mb4 是 MySQL 5.5.3 引入的真正 UTF-8(4 字節支援 Emoji),舊版本不識別。

秒級修復方案

  1. 用編輯器打開導出的 .sql 文件
  2. 全局替換:utf8mb4 → utf8
  3. 同步替換排序規則:utf8mb4_unicode_ci / utf8mb4_general_ci → utf8_general_ci
  4. 保存並重新導入

深度理解:utf8 vs utf8mb4

特性utf8 (utf8mb3)utf8mb4
最大字節3 字節4 字節
Emoji 支援❌✅
生僻字支援部分缺失完整 Unicode BMP+補充平面
索引長度限制767 字節(InnoDB)767 字節(5.7-)
3072 字節(5.7+ innodb_large_prefix)
引入版本MySQL 4.1MySQL 5.5.3

遷移最佳實踐

  • 新建庫表:直接指定 CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
  • 舊庫升級:ALTER TABLE t CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
  • 連接字符集:應用層設置 SET NAMES utf8mb4 或連接參數 characterEncoding=utf8mb4
  • mysqldump 導出:加參數 --default-character-set=utf8mb4 確保導出正確

總結

utf8mb4 是現代 MySQL 必選字符集。遷移舊版本導出文件時,文本編輯器全局替換 utf8mb4→utf8 即可快速落地;長期項目請規劃升級至 5.7+/8.0 並全面切換 utf8mb4,擁抱完整 Unicode 世界。

copyright © 萬盛學電腦網 all rights reserved