博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mysql导入导出数据中文乱码解决方法小结
阅读量:7014 次
发布时间:2019-06-28

本文共 2189 字,大约阅读时间需要 7 分钟。

hot3.png

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%';

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

复制代码 代码如下:

[mysql]
default-character-set=gbk
[mysqld]
character-set-server=utf8

重新启动服务,重新导入数据,如果还乱码,
最后得出经验时只要把导入与导出编码统一一下就没问题了。

转载于:https://my.oschina.net/u/588516/blog/673199

你可能感兴趣的文章
Foundation框架—字符串
查看>>
数据库设计中的14个技巧
查看>>
7月份文章回顾
查看>>
25个顶级的jQuery表格插件
查看>>
memcached命令行操作详解,命令选项的详细解释
查看>>
Linux pipe函数
查看>>
java msgbox
查看>>
发布两款JQ小插件(图片查看器 + 分类选择器),开源
查看>>
linux中的namespace
查看>>
动态规划0—1背包问题
查看>>
Linux命令-权限管理命令:chgrp
查看>>
这张表的字符串 在另一张表中是否存在
查看>>
【Win10 应用开发】解决VS 2015 RC不能调试手机应用的问题
查看>>
如何学习开源项目
查看>>
读书笔记3 Socket
查看>>
SQLiteParameter不能将TableName作为参数
查看>>
百度地图API学习总结
查看>>
tomcat发布web项目,支持域名
查看>>
webstom设置和monokia配色方案
查看>>
js和Jquery获取选中select值和文本
查看>>