mysql导入导出数据中文乱码解决方法小结

 更新时间:2012年10月23日 11:05:23   作者:   我要评论
本文章总结了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%';


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

复制代码 代码如下:

[mysql]
default-character-set=gbk

[mysqld]
character-set-server=utf8


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

最后得出经验时只要把导入与导出编码统一一下就没问题了。

相关文章

  • 详解如何利用amoeba(变形虫)实现mysql数据库读写分离

    详解如何利用amoeba(变形虫)实现mysql数据库读写分离

    这篇文章主要介绍了详解如何利用amoeba(变形虫)实现mysql数据库读写分离,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-05-05
  • MySQL多实例配置方案

    MySQL多实例配置方案

    MySQL多实例就是,在一台机器上开启多个不同的服务端口(如:3306,3307,3308...),运行多个MySQL服务进程,这些服务进程通过不同的socket监听不同的端口提供服务。
    2018-04-04
  • MySQL嵌套事务所遇到的问题

    MySQL嵌套事务所遇到的问题

    这篇文章主要介绍了MySQL嵌套事务所遇到的问题的相关资料,需要的朋友可以参考下
    2017-02-02
  • 如何把ACCESS的数据导入到Mysql中

    如何把ACCESS的数据导入到Mysql中

    如何把ACCESS的数据导入到Mysql中...
    2006-12-12
  • 安装Mysql时出现错误及解决办法

    安装Mysql时出现错误及解决办法

    因为一时手痒痒更新了一下驱动,结果导致无线网卡出了问题,本文给大家分享安装mysql时出现错误及解决办法,对安装mysql时出现错误相关知识感兴趣的朋友一起学习吧
    2015-12-12
  • mysql触发器(Trigger)简明总结和使用实例

    mysql触发器(Trigger)简明总结和使用实例

    这篇文章主要介绍了mysql触发器(Trigger)简明总结和使用实例,需要的朋友可以参考下
    2014-04-04
  • Linux中更改转移mysql数据库目录的步骤

    Linux中更改转移mysql数据库目录的步骤

    前几天发现由于MySQL的数据库太大,默认安装的/var盘已经再也无法容纳新增加的数据,只能想办法转移数据的目录。网上有很多相关的文章写到转移数据库目录的文章,但转载的过程中还会有一些错误,因为大部分人根本就没测试过,这篇文章是本文测试过整理好后分享给大家。
    2016-11-11
  • MSSQL根据ID进行分页实现方法

    MSSQL根据ID进行分页实现方法

    本文将详细介绍MSSQL根据ID进行分页实现方法,需要的朋友可以参考下
    2012-11-11
  • Mysql inner join on的用法实例(必看)

    Mysql inner join on的用法实例(必看)

    下面小编就为大家带来一篇Mysql inner join on的用法实例(必看)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-03-03
  • 基于MYSQL中优化的一些方法

    基于MYSQL中优化的一些方法

    本篇文章是对MYSQL中优化的一些方法进行了详细的介绍,需要的朋友参考下
    2013-05-05

最新评论