- 以 latin1 匯出資料庫
mysqldump -u root -p --default-character-set=latin1 database > database.sql - 進入 MySQL 以 utf8_general_ci 字元建立資料庫
CREATE DATABASE database_utf8 - 取代匯出資料的內容 SET NAMES latin1 --> SET NAMES utf8
sed -e 's/SET NAMES latin1/SET NAMES utf8/g' database.sql > database_1.sql - 取代匯出資料的內容 CHARSET=latin1 --> HARSET=utf8 COLLATE=utf8_general_ci
sed -e 's/CHARSET=latin1/CHARSET=utf8 COLLATE=utf8_general_ci/g' database_1.sql > database_2.sql - 取代匯出資料的內容 CHARSET=latin1 --> HARSET=utf8 COLLATE=utf8_general_ci
sed -e 's/CHARACTER SET latin1 COLLATE latin1_bin/CHARACTER SET utf8 COLLATE utf8_general_ci/g' database_2.sql > database_3.sql - 匯入資料庫
mysql -u root -p database_utf8 < database_3.sql
匯入資料時遇到錯誤, 像重覆Key值時, 假如不重要的table, 就把INSERT都刪掉.
ERROR 1062 (23000) at line 1891: Duplicate entry '?' for key 1