异常描述
mysql:8
系统:Linux
命令:
mysqldump -uroot -p**** -P3306 -h127.0.0.1 test >/home/backup/backup.sql
Linux备份数据库,打开后乱码。文件内用命令
set fileencoding
查看,fileencoding=latin1
增加参数–default-character-set=utf8mb4 无用
异常解决
方法一(推荐)
在命令加上–hex-blob,搞定。
–hex-blob Dump binary strings (BINARY, VARBINARY, BLOB) in hexadecimal format.
这个参数的含义是用16进制的方式导出BINARY, VARBINARY, BLOB类型的数据。
mysqldump -uroot -pnreal123 -P3307 -h127.0.0.1 --default-character-set=utf8mb4 --hex-blob test >/home/cwang/backup/backup.sql
方法二
/etc/vimrc或者/etc/virc 中第一行会设置编码.
if v:lang =~ "utf8$" || v:lang =~ "UTF-8$"
set fileencodings=ucs-bom,utf-8,latin1
endif
但是在文件编码识别成了 latin1 ,改为
if v:lang =~ "utf8$" || v:lang =~ "UTF-8$"
set fileencodings=utf-8
endif

当使用mysqldump在Linux系统中备份数据库时,如果打开备份文件出现乱码,可能是因为文件编码为latin1而非utf8mb4。解决方法包括在命令行添加--hex-blob参数,或者修改Vim配置文件的fileencodings选项。通过--hex-blob参数可以确保BINARY, VARBINARY, BLOB类型的数据以16进制方式导出,避免编码问题。

3万+

被折叠的 条评论
为什么被折叠?



