zoukankan      html  css  js  c++  java
  • mysql导入导出数据中文乱码解决方法小结

    导入mysql数据时遇到乱码问题,以下是网上搜集到的解决方案,最后一项,修改my.ini增加字符集设置,生效。
     
     
    本文章总结了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


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

    最后得出经验时只要把导入与导出编码统一一下就没问题了。 
  • 相关阅读:
    如何不传入对象就获得某对象的方法---ThreadLocal类
    Linux系统主目录被更改,怎么修改回去?
    tree命令的安装
    Linux命令学习man
    当重载函数的参数是Object和Object数组的时候会发生什么情况!!!
    Linux学习(二)之内核、系统调用、库
    使用puttygen转换OpenSSH SSH2私钥为RSA PEM格式
    docker-compose使用详解
    svn迁移到gitlab
    linux快速启动http端口
  • 原文地址:https://www.cnblogs.com/Sabre/p/6731561.html
Copyright © 2011-2022 走看看