我把一个网站从ISO转换为UTF-8,所以我需要转换MySQL数据库。
在互联网上,我读了各种解决方案,我不知道选哪一个。
我真的需要将我的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
有关详细信息,请参阅下面的答案。