我將一個網站從ISO轉換爲UTF-8,因此我也需要轉換MySQL數據庫。將MySQL數據庫從拉丁文轉換爲UTF-8
在互聯網上,我讀了各種解決方案,我不知道選哪一個。
我真的需要我的VARCHAR列轉換爲二進制,然後爲UTF-8這樣的:
ALTER TABLE t MODIFY col BINARY(150);
ALTER TABLE t MODIFY col CHAR(150) CHARACTER SET utf8;
這需要很長的時間做,對於每列,每個表,每個數據庫的。
我有10個數據庫,每個數據庫有20個表格,大約有2-3個varchar列(每個列有2個查詢),這使我可以在的1000個查詢中編寫!怎麼做?
解決: 我後,我使用的代碼:
PASSWORD=""
db=$1
mysqldump --password=$PASSWORD --set-charset --skip-set-charset --add-drop-table --databases "$db" > /home/dev/backup/bdd.sql
QUERY="ALTER DATABASE \`$db\` DEFAULT CHARACTER SET utf8;"
mysql --password=$PASSWORD --database "$db" -e "$QUERY"
mysql --password=$PASSWORD --default-character-set=utf8 < /home/dev/backup/bdd.sql
見下面的答案以獲取更多信息。
是不是'--set-charset'和'--skip-設置charset'直接競爭的標誌嗎? Docs表示它們會影響'SET NAMES'的使用,但不會設置每個表通過'mysqldump'輸出的'DEFAULT CHARSET = X'參數。 (mysql 5.5) – fideloper 2014-01-28 21:19:19