May 21

MySql导出到其它环境的库中乱码的解决 晴

, 08/05/21 16:33 , 技术开发 » 数据库 , 评论(0) , 引用(0) , 阅读(2889) , Via 本站原创 | |
这两天苦于数据库的移植问题。由于是不同的主机,而库中的编辑不一致(开始没有考虑到这个问题)。导致移植后在另外一个主机中,变成了乱码显示。今天客户需要急忙对应了,经过仔细分析后,几十万条数据轻松正常导入恢复,主要是编码所致。
Array
1、开始打算用代码从原服务器中,生成CSV文件,再导入到另外的库中,但发现数据量多而且复杂。没办法分割出来正常的CSV字段,以失败告终。
2、从phpMyAdmin和命令行两种方式的导出/导入,都是乱码。再次失败。

Array
1、查查源库这边用的是什么编码,然后把它全部与导入端库的统一;
2、find / -name my.inf 结果发现源服务中没有配置文件!而在导入端服务器中有,default-character-set=utf8设置着;
3、进一步调查比较:
源:
mysql> show variables like 'character%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | latin1                     |
| character_set_connection | latin1                     |
| character_set_database   | latin1                     |
| character_set_filesystem | binary                     |
| character_set_results    | latin1                     |
| character_set_server     | latin1                     |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)

导入端:
mysql> show variables like 'character%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)

经比较发现,问题所在了!果然不出所料是两端字符集不统一造成的。

Array
1、修改被导入端:
vi /etc/my.cnf

default-character-set=latin1

:wq

2、导出与导入数据:
Array

Array

OK后,数据一切搞定。
当然,最好还是数据编码统一吧,文章:latin1转utf8方法(中英文版) Array

作者:@Everyday NetLog
地址:http://log.zhoz.com/read.php?324
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!

发表评论

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [登入] [注册]