Home > Database > Mysql Tutorial > MySQL导入导出数据出现乱码的解决办法

MySQL导入导出数据出现乱码的解决办法

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Release: 2016-06-07 16:22:03
Original
3067 people have browsed it

在mysql导入导出数据时经常出现中文乱码的问题,大多是因类导入导出时编码设置不一致所引起的。本文介绍了不同平台下的编码转换方法,供大家参考。 在linux系统中默认的是utf8编码,而windows是gbk编码,如果在这二个系统间导入未经指定编码的数据,就会出现

   在mysql导入导出数据时经常出现中文乱码的问题,大多是因类导入导出时编码设置不一致所引起的。本文介绍了不同平台下的编码转换方法,供大家参考。

  在linux系统中默认的是utf8编码,而windows是gbk编码,如果在这二个系统间导入未经指定编码的数据,就会出现乱码。

  首先,确定导出数据的编码格式,使用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

  统一编码后,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

  重新启动服务,重新导入数据,如果还乱码,只要把导入与导出编码统一即可解决问题。

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Issues
MySQL stops process
From 1970-01-01 08:00:00
0
0
0
Error when installing mysql on linux
From 1970-01-01 08:00:00
0
0
0
phpstudy cannot start mysql?
From 1970-01-01 08:00:00
0
0
0
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template