首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 4.1 字元集遷移指南:舊資料 (GB2312) 轉 UTF-8 完整流程與應用層配合調整

     編輯:MySQL 資料庫相關知識

遷移核心步驟

  1. 匯出舊資料 (預設 GB2312):
    mysqldump -u root -p dbname --add-drop-table --extended-insert > dump.sql
    • --add-drop-table:含 DROP TABLE IF EXISTS,避免重建衝突
    • --extended-insert:多列合併 INSERT,防止單一 SQL 過大
  2. 轉碼 SQL 檔案:
    iconv -f gb2312 -t utf-8 dump.sql > dump_utf8.sql
    • 移除 BOM (UTF-8 Signature),否則 mysql 客戶端報 1064 語法錯誤
    • 全域取代:gbk_bin → utf8_general_ci、gbk → utf8
    • 檔案最前加入:SET NAMES utf8;
  3. 建立新資料庫並匯入:
    mysqladmin -u root -p create dbname_utf8
    mysql -u root -p dbname_utf8 < dump_utf8.sql
  4. 處理大封包錯誤 (錯誤 1153):
    [mysqld]
    max_allowed_packet = 10M  # 10485760
    重啟服務

應用層配合調整三大類

類型調整方式代表系統
連線後設定字元集mysql_query("SET NAMES 'utf8'")Brim、Discuz! 早期版
模板/語言檔轉碼iconv -f gb2312 -t utf-8 file.php > file_utf8.phpPHPWind、Mantis
HTML meta charset 修改<meta charset="utf-8">純靜態頁、舊版 CMS

驗證清單

  • 資料庫/表/欄位 CHARSET 均為 utf8
  • 前台顯示無亂碼、搜尋/排序正常
  • 備份還原測試通過
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved