之前数据库都是默认的‘latin1 ’,由于业务需求,需要把数据集修改为utf-8
(1)创建一个新的数据库,并设置默认的格式为utf-8
CREATE DATABASE IF NOT EXISTS yourdbname DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
(2) 将这个yourdbname 数据库的权限赋值给我们期待的用户
grant select, insert, update, delete on testdb.* to common_user@'%'
(3) 将原有数据导出并修改相应的编码格式
mysqldump --opt -hlocalhost -uroot -p*** --default-character-set=lantin1 dbname > /usr/local/dbname.sql
(4)dbname.sql文件中的create table语句的CHARSET=latin1改为CHARSET=utf8
(5) 在dbname.sql文件中的insert语句之前加一条'set names utf8;'
(6)将dbname.sql转码为utf-8格式,建议使用UltraEditor,可以直接使用该编辑器的'转换->ASCII到UTF-8(Unicode编辑)',或者将文件另存为UTF-8(无BOM)格式
(7)
命令行执行:mysql -hlocalhost -uroot -p*** --default-character-set=utf8 new_dbname < /usr/local/dbname.sql
(8) 查看是否成功
mysql> use xxx
Database changed
mysql> show variables like 'character_set_database';
+------------------------+-------+
| Variable_name | Value |
+------------------------+-------+
| character_set_database | utf8 |
+------------------------+-------+