RDS需要将数据库从GBK转换成UTF8,请问怎么操作?
谢谢!
建议通过SQL来更改,如果库表比较多的话,可以通过以下方式批量生成更改字符集的SQL:
1.生成转换表的sql
select concat('alter table ', table_schema,'.',table_name,' convert to character set utf8mb4;') from information_schema.tables where table_schema in ('需要转换的数据库名')
2.生成转换数据库的sql
select concat('alter database ',SCHEMA_NAME,' CHARACTER SET = utf8mb4;') from information_schema.SCHEMATA where schema_name in ('需要转换的数据库名')
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、导入数据到新表
可以用SQL来修改。
比如
ALTER DATABASE 数据库名 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;
ALTER TABLE 表名 CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
和MySQL类似:
// 使用utf-8的格式导出表
mysqldump --default-character-set=utf8 -t -u root -p $TABLE > $SAVE_PATH/save.sql
// 打开save.sql 文件,修改需要改的表结构字符集为utf-8
// 导入新表(老表备份一下,并删除)
mysql -u root -p < $SAVE_PATH/save.sql
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。