mysql导入数据乱码

linux系统中  

linux默认的是utf8编码,而windows是gbk编码,所以会出现上面的乱码问题。 

解决mysql导入导出数据乱码问题 

首先要做的是要确定你导出数据的编码格式,使用mysqldump的时候需要加上--default-character-set=utf8, 

例如下面的代码: 
复制代码代码如下:
mysqldump -uroot -p --default-character-set=utf8 dbname tablename > bak.sql



那么导入数据的时候也要使用--default-character-set=utf8: 

复制代码代码如下:
mysql -uroot -p --default-character-set=utf8 dbname < bak.sql


这样统一编码就解决了mysql数据迁移中的乱码问题了 


我使用windows作为导出数据源,并导入 freebsd环境下的mysql库 

解决方法:  

导出数据 

一、首先在windows平台下mysql用作导出数据库源。查看字符编码的系统变量: 

复制代码代码如下:

mysql> show variables like ‘%char%'; 
+————————–+—————————-+ 
| 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 | gbk | 
| character_set_system | utf8 | 
| character_sets_dir | D:mysqlsharecharsets | 

+————————–+—————————-+ 


查看character_set_database,这里是latin1,latin1是装不了多字节字符集的 

二、在windows下设置系统变量为utf8 

复制代码代码如下:
mysql>set character_set_database=utf8; ##设置默认的字符集为utf8


三、导出数据 

复制代码代码如下:
mysql> select * from table into outfile ‘c:table.txt' where +条件


这时导出了我想要的部分数据,并以txt文件存在 table.txt中。 

导入数据 

在freebsd平台下 

一、同样设置字符编码的系统变量 

复制代码代码如下:

mysql> show variables like ‘%char%'; 

+————————–+—————————-+ 
| 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 | gbk | 
| character_set_system | utf8 | 

+————————–+—————————-+ 

mysql>set character_set_database=utf8; ##设置默认的字符集为utf8 


二、转载数据  

复制代码代码如下:
mysql>load data local infile ‘/home/table.txt' into table `table`;

至此、条件数据完整导入导出,并处理了乱码的情况。 
总之,两台mysql服务器导入导出时,一定要确保两台服务器的character_set_database参数相同,这样才能防止一些 乱码的情况。当然我们还可以使用其他字符集,如gbk来进行调整。视情况操作了 


解决方法三  

乱码解决方法 
导入数据后,在命令行查看发现中文乱码 
使用以下命令查看系统字符集 

复制代码代码如下:
show variables like 'char%';

http://www.jb51.net/article/31615.htm
如果不是GBK或UTF8,则停止mysql服务,然后到安装目录修改my.ini文件, 
将文件中下面的变量改成如下,如果没有这个变量则增加这些变量 

复制代码代码如下:

[mysql] 
default-character-set=gbk 

[mysqld] 
character-set-server=utf8 


重新启动服务,重新导入数据,如果还乱码, 

最后得出经验时只要把导入与导出编码统一一下就没问题了。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值