MySQL數據庫修改字符集,介紹一下修改的方法
1)系統工具iconv
#file filename
#mysqldump --default-character-set=utf8 >20180523xxx.sql
#file 20180523xxx.sql
#iconv -t utf8mb4 -c 20180523xxx.sql>20180523xxxutf8mb4.sql
#file 20180523xxxutf8mb4.sql測試 mysqldump 支持where條件 先用小的文件先測試一下
#mysqldump --where=”1=1 limit 10000”
#轉碼之前要看是什么編碼,只有中文才需要轉碼
2)導出導入sed
二)導出導入---sed
1.導出表結構修改字符集設置
#mysqldump --default-character-set=utf8 -d databasename > #createtab20180523.sql
#sed -i s/CHARSET=utf8/CHARSET=utf8mb4/g createtab20180523.sql
2.導出表的數據修改字符集
#mysqldump --no-create-info databasename > data20180523.sql
#sed -i s/CHARSET=utf8/CHARSET=utf8mb4/g data20180523.sql
3.create database newdatabase default charset utf8mb4
#mysql newdatabase < createtab20180523.sql
#mysql newdatabase < data20180523.sql
3)alter table的方式
CREATE TABLE t1 (col1 CHAR(10) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,col2 CHAR(10) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL
) CHARACTER SET utf8;#要修改字符集需要注意字段長度,及索引長度,alter table會鎖表
ALTER TABLE t1DEFAULT CHARACTER SET utf8mb4,MODIFY col1 CHAR(10)CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,MODIFY col2 CHAR(10)CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL;