开发者社区> 科技小能手> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

mysqldump 导出中文乱码

简介:
+关注继续查看

mysqldump 导出中文乱码


能检查的也都正常

1、通过navicat上做导出都是正常的 

2、接着去检查数据库里编码,看也都是正常

show variables like 'char%';

+--------------------------+----------------------------+

| Variable_name            | Value                      |

+--------------------------+----------------------------+

| character_set_client     | utf8                       |

| character_set_connection | utf8                       |

| character_set_database   | utf8mb4                    |

| character_set_filesystem | binary                     |

| character_set_results    | utf8                       |

| character_set_server     | utf8                       |

| character_set_system     | utf8                       |

| character_sets_dir       | /usr/share/mysql/charsets/ |


3、进入mysql数据库里通过命令去查询语句也是能正常显示中文;


4、查看导出后的文件格式却是latin1的编码(

在Vim 中可以直接查看文件编码Shell代码

  1. :set fileencoding  



简直神奇了????



不正常的是 通过命令mysqldump命令行去导出都是乱码,不管用--default-character-set=utf8,依旧乱码

mysqldump -h10.10.10.10 -uroot --default-character-set=utf8 -p  test > /tmp/test.sql


 

在仔细分析一下表结构,原来有blob类型。这下乱码就不奇怪了。

在原命令的基础上加上--hex-blob,搞定。
这个参数的含义是用16进制的方式导出BINARY, VARBINARY, BLOB类型的数据。
--hex-blob Dump binary strings (BINARY, VARBINARY, BLOB) in hexadecimal format.

mysqldump -h10.10.10.10 -uroot --default-character-set=utf8 --hex-blob  -p  test > /tmp/test.sql


其实在我们的备份脚本中早已经把这个参数加进去了,只是我们没有引起足够的重视罢了。


本文转自 holy2009 51CTO博客,原文链接:http://blog.51cto.com/holy2010/1950813


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Navicat如何导入和导出sql文件
Navicat如何导入和导出sql文件
0 0
mysql导入sql文件,乱码,一个例子
服务器centos,其他数据库都是utf8都正常能用 网页正常显示 这次导入一个utf8格式数据库文件 结果网页上乱码 在导出的sql文件中,注释部分有些语句也是被mysql考虑的。导出的sql文件,在服务器上导入后,文件本身是utf8但是还是乱码,此时检查sql文件首部是否有: /!40101 S...
728 0
命令导出mysql文件
在终端中使用mysqlump命令可以导出mysql数据库.sql文件。 mysqldump -uroot -p Student > Documents/student.sql 之后会提示输入管理员密码。
289 0
加快mydumper与myloader导出导入
    mydumper与myloader是一个优秀的第三方mysql数据库逻辑备份恢复工具,使用多线程的导出与导入。弥补了mysqldump单线程的不足。
757 0
使用mysqldump导出数据库
    mysqldump是mysql用于转存储数据库的客户端程序。它主要产生一系列的SQL语句,可以封装到文件,该文件包含有所有重建您的数据库所需要的SQL命令如CREATE DATABASE,CREATE TABLE,INSERT等等。
975 0
mysqldump的编码问题
       mysqldump命令是MySQL数据提供的一个很方便的数据库备份工具,具体用法可以参见:http://dev.mysql.com/doc/refman/5.0/en/mysqldump.html。
490 0
文章
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载