最近在進行MySQL數據庫遷移的時候遇到了一個問題,就是數據庫中的中文字段出現了亂碼。經過一番研究和嘗試,總結出以下方法:
第一步,查看源數據庫中的字符集類型,可以通過以下語句查看:
SHOW VARIABLES LIKE 'character_set_database'; SHOW VARIABLES LIKE 'collation_database';
如果結果為utf8或utf8mb4,則說明字符集類型為utf8。如果結果為GBK或GB2312,則說明字符集類型為GB2312。
第二步,創建目標數據庫,確定目標數據庫的字符集類型,可以通過以下語句設置:
CREATE DATABASE `mydatabase` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
第三步,將源數據庫中的表轉換為目標數據庫使用的字符集類型,可以通過以下語句轉換:
ALTER TABLE `mytable` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
第四步,將源數據庫中的數據導出,可以通過以下語句導出:
mysqldump -u root -p --result-file=backup.sql --default-character-set=utf8 database_name
第五步,將導出的SQL文件中的字符集類型修改為目標數據庫使用的字符集類型,可以使用編輯器打開SQL文件進行修改,也可以通過以下語句修改:
sed -i 's/CHARSET=utf8mb4/CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci/g' backup.sql
第六步,將修改后的SQL文件導入到目標數據庫,可以通過以下語句導入:
mysql -u root -p mydatabase< backup.sql
通過以上方法進行遷移,可以確保數據中的中文字段不會出現亂碼。
上一篇mysql輸密碼登不上去
下一篇css3初始幀和結束幀