阿里云RDS需要將數(shù)據(jù)庫從GBK轉(zhuǎn)換成UTF8,請問怎么操作?
我來答

阿里云RDS需要將數(shù)據(jù)庫從GBK轉(zhuǎn)換成UTF8,請問怎么操作?

陳宥維 2021-02-02 提問
363

阿里云RDS從GBK轉(zhuǎn)換成UTF8,要怎么操作?

關(guān)閉
提交回答
2 個回答
我來答
陳依依

1、使用mysqldump導出表結(jié)構(gòu),如:

      mysqldump -d -u root -p 數(shù)據(jù)庫名 >/root/struct.sql

2、使用mysqldump以特定編碼導出數(shù)據(jù)(其中utf8為所需編碼,可按需修改),如:

      mysqldump --default-character-set=utf8 -t -u root -p 數(shù)據(jù)庫名 >/root/data.sql

3、打開表結(jié)構(gòu)轉(zhuǎn)存(/root/struct.sql),將所有CREATE TABLE中的編碼替換為所需編碼

4、導入數(shù)據(jù)到新表

回答于 2021-02-02
贊同
評論
陳廉

建議通過SQL來更改,如果庫表比較多的話,可以通過以下方式批量生成更改字符集的SQL:

1.生成轉(zhuǎn)換表的sql

select concat('alter table ', table_schema,'.',table_name,' convert to character set utf8mb4;') from information_schema.tables where table_schema in ('需要轉(zhuǎn)換的數(shù)據(jù)庫名')

2.生成轉(zhuǎn)換數(shù)據(jù)庫的sql

select concat('alter database ',SCHEMA_NAME,' CHARACTER SET = utf8mb4;') from information_schema.SCHEMATA where schema_name in ('需要轉(zhuǎn)換的數(shù)據(jù)庫名')

回答于 2021-02-02
贊同
評論