解决mysqldump 导出中文乱码的问题

发布时间 2023-05-26 18:15:46作者: 厚礼蝎

导数据库

mysqldump -uroot -p111111 -P3306 -h 127.0.0.1 test > /data/test.sql

导出后的数据库打开是乱码,如下:

开始以为打开的方式不对,就用记事本打开后,用utf-8的编码格式另保存下

结果打开后,仍然是乱码。

这时候,猜测是不是数据库的字符集的编码有问题,然后进入数据库,

输入命令:

show variables like 'character%';

很显然,编码是没有问题的。

用命令:

mysqldump -uroot -p111111 -P3306 -h 127.0.0.1 test --default-character-set=utf8 > c1.sql 

重新导出数据库,结果仍然是乱码

新建一个测试数据库,将导出有乱码问题的数据库导入,结果linux下查看,也无中文乱码问题

接下来只导出test数据库的表结构,命令:

mysqldump -uroot -p111111 -P3306 -h 127.0.0.1 -d test  > c1.sql

打开来看,显示正常,无乱码

后来搜查资料才发现,是因为表中Blob类型

在命令上加上参数 --hex-blob

然后导出

mysqldump -uroot -p111111 -P3306 -h 127.0.0.1  --hex-blob test > /data/test.sql

然后就可以正常导出了