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

时间:2024-01-19 17:47:45 

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



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

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

标签:mysql,导入导出数据,中文乱码
0
投稿

猜你喜欢

  • Python采集王者皮肤图片实战示例

    2021-08-02 12:09:23
  • SQL 合并多行记录的方法总汇

    2024-01-18 23:38:24
  • 对python中Json与object转化的方法详解

    2022-11-13 23:42:35
  • asp什么情况下用响应缓冲会提高运行速度?

    2010-07-14 21:02:00
  • MySQL和Python交互的示例

    2024-01-18 07:02:11
  • keras实现多种分类网络的方式

    2023-07-10 13:37:49
  • Go语言题解LeetCode463岛屿的周长示例详解

    2024-04-25 15:09:59
  • Linux下如何实现Mysql定时任务

    2024-01-19 09:41:50
  • 分享13款非常有用的jQuery插件

    2011-05-16 19:07:00
  • Django基础之Model操作步骤(介绍)

    2022-04-12 12:17:50
  • PDO::getAttribute讲解

    2023-06-06 02:58:22
  • python numpy 按行归一化的实例

    2023-04-29 09:14:53
  • python中使用ctypes调用so传参设置遇到的问题及解决方法

    2021-06-02 00:38:39
  • 安装MySQL 5后无法启动(不能Start service)解决方法小结

    2024-01-23 07:29:29
  • 适合所有表的添加、删除、修改的函数

    2008-04-15 15:29:00
  • Python cookbook(数据结构与算法)找出序列中出现次数最多的元素算法示例

    2021-04-16 10:50:05
  • 使用pandas中的DataFrame数据绘制柱状图的方法

    2023-08-10 20:59:40
  • SQLServer存储过程中事务的使用方法

    2024-01-29 06:56:03
  • python一秒搭建FTP服务器

    2021-03-04 01:44:30
  • keras回调函数的使用

    2022-08-22 11:42:41
  • asp之家 网络编程 m.aspxhome.com