MySQL修改字符集
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 t1 DEFAULT 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;