本文共 1328 字,大约阅读时间需要 4 分钟。
查看MySQL支持的字符集
mysql> show character set;查看mysql当前字符集
mysql> show variables like ‘character_set%’;character_set_client:客户端的字符集
character_set_results:结果字符集 character_set_connection:连接字符集临时更改方法
在插入数据前可以指定字符集 mysql> set names utf8;永久更改方法
修改my.cnf [client] default-character-set=utf8[mysqld]
default-character-set=utf8 适合5.1及之前版本 character-set-server=utf8 适合5.5及之后版本 提示:client无需重启服务,退出mysql服务重新登录即可.mysqld修改需要重启服务更改MySQL数据库已有数据字符集
更改库 alter database 库名 character set utf8; 更改表 alter table 表名 character set utf8; 这两种方法不会改变已有记录的字符集,而只对新创建的表或记录生效已有记录的字符集调整,必须先将数据导出,经过修改字符集后重新导入(将原有lating1字符集改为utf8)
1 导出表结构 mysqldump –uroot –p --default-character-set=latin1 -d 数据库名称 >alltable.sql –default-character-set=latin1 表示已latin1字符集进行连接 -d 只导表结构 2 编辑alltable.sql将latin1改为utf8 /*!40101 SET NAMES latin1 */; 3 确保数据库不在更新,导出所有数据 mysqldump –uroot –p --quick --no-create-info --extended-insert --default-character-set=lating1 数据库名称 >alldata.sql 参数说明 –quick 用于转储大的表,强制mysqldump从服务器一次一行的检索数据而不是检索所有行并输出cache到内存中 –no-create-info 不创建create table语句 –extended-insert 使用包括几个values列表的多行insert语法,这样文件更小IO也小 –default-character-set 按照原有字符集导出数据,这样导出的文件不会报错成乱码 4 打开alldate.sql将set names latin1修改为 set names utf8 5 建库 carte database 数据库名 default charset utf8; 6 创建表执行alltable.sql mysql –uroot –p111111 <alltable.sql 7 导入数据 mysql –uroot –p111111 <alldata.sql转载地址:http://qkrpb.baihongyu.com/