修改mysql字符集
很多DBA都会遇见这种情况,数据库使用一段时间,字符集变了。比如以前默认使用的是lain1,现在为了兼容UTF8,只有把以前的编码也改成UTF8的情况。
那么怎么样才能算比较完美的转换呢。下面是的操作步骤
1、到处表结构,没有数据的。
mysqldump -uroot -p --default-character-set=latin1 -d LOGIN_DB > LOGIN_DB.sql
2、修改LOGIN_DB.sql中定义字符集的位置为自己的需要的字符集
省略.........
) ENGINE=MyISAM AUTO_INCREMENT=148 DEFAULT CHARSET=utf8;
省略.........
) ENGINE=MyISAM AUTO_INCREMENT=148 DEFAULT CHARSET=utf8;
3、锁定表或者停止数据库后,导出数据
mysqldump -uroot -p --quick --no-create-info --extended-insert --default-character-set=latin1 LOGIN_DB > LOGIN_DB_DATA.sql
4、打开LOGIN_DB_DATA.sql,在最前面添加
SET NAMES UTF8;
SET NAMES UTF8;
5、创建新字符集的数据库
create database databasesname default charset utf8;
6、创建表,执行如下语句
mysql -uroot -p databasesname < LOGIN_DB.sql
mysql -uroot -p databasesname < LOGIN_DB.sql
7、导入数据
mysql -uroot -p databasesname < LOGIN_DB_DATA.sql
8、如果想在远程终端上看机数据库显示中文,还需要注意一下几点
1、linux系统支持中文
2、LANG=en_US.UTF-8
3、登录软件,比如putty、secureCRT等,回话编码一定要是UTF8
4、mysql客户端一定要是default-character-set=utf8
1、linux系统支持中文
2、LANG=en_US.UTF-8
3、登录软件,比如putty、secureCRT等,回话编码一定要是UTF8
4、mysql客户端一定要是default-character-set=utf8
本文转自 fenghao.cn 51CTO博客,原文链接:http://blog.51cto.com/linuxguest/302274,如需转载请自行联系原作者