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;

  

posted @ 2018-05-28 13:42  Time.catcher  阅读(1117)  评论(0编辑  收藏  举报