我的当前数据库的字符集是latin1的,但是现在我想把它换成utf8的,呵呵,搞一搞
库名:shanks
1、导出表结构
mysqldump -uroot -p –default-character-set=utf8 -d shanks > create_shanks.sql
–default-character-set=utf8:我将要用utf8连接、-d不要数据,只要结构
2、手动修改create_shanks.sql中表结构中关于定义字符集的信息
3、确保不再有新数据录入,可以锁表什么的,然后导出数据
mysqldomp -uroot -p -q –no-create-info –extended-insert –default-character-set=latin1 shanks > shanks-data.sql
-q:(–quick)用于转存储大表,强制mysqldump从服务器一次一行而不是一次检索所有行的导出。
–extended-insert :使用包括几个values列表的多行insert的语法,说白了,就是快
–no-create-info :不写重新创建每个转储表的create table语句
–default-character-set=latin1 按照原有字符集导出
4、打开shanks-data.sql,将所有SET NAMES latin1改成SET NAMES utf8
5、重建库
create database shanks default charset utf8;
6、创建表
mysql -u root -p shanks < create_shanks.sql
7、导入数据
mysql -u root -p shanks < shanks-data.sql