MySQL数据库从GBK转换到UTF-8最简单解决方案(也适用于其它编码转换)
1、使用mysqldump导出表结构,如:
mysqldump -d -u root -p 数据库名 >/root/struct.sql
2、使用mysqldump以特定编码导出数据(其中utf8为所需编码,可按需修改),如:
mysqldump --default-character-set=utf8 -t -u root -p 数据库名 >/root/data.sql
3、打开表结构转存(/root/struct.sql),将所有CREATE TABLE中的编码替换为所需编码;
4、进入mysql控制台,执行:
source /root/struct.sql
source /root/data.sql
即可完成。
导出表时,如果出现1044错误,添加 --skip-lock-tables 可以解决:
mysqldump -d -u root -p 数据库名 --skip-lock-tables >/root/struct.sql
mysqldump --default-character-set=utf8 -t -u root -p 数据库名 --skip-lock-tables >/root/data.sql