You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何执行带UTF-8编码的mysqldump数据库备份?

如何生成带UTF-8编码的mysqldump备份命令?

其实很简单,只要在你现有的备份命令里添加几个编码相关的参数就行,我给你整理了两种实用的写法,按需选择:

方法一:直接指定连接与导出编码

这是最常用的方式,确保整个备份过程都使用完整的UTF-8编码(MySQL里用utf8mb4来指代真正的UTF-8):

mysqldump -u xxxx -p --default-character-set=utf8mb4 dbxxx > xxxx270613.sql

方法二:避免终端编码干扰(更稳妥)

如果你的终端默认编码不是UTF-8,直接用重定向>可能会导致文件编码异常,这时候可以用--result-file参数让mysqldump直接写入文件:

mysqldump -u xxxx -p --default-character-set=utf8mb4 dbxxx --result-file=xxxx270613.sql

为什么用utf8mb4而不是utf8

这里要提个MySQL的小坑:它自带的utf8其实是utf8mb3,最多只支持3字节的字符,像emoji、部分生僻汉字这类4字节的字符会被截断或报错。而utf8mb4才是真正覆盖所有Unicode字符的完整UTF-8编码,所以推荐优先用它。

额外注意事项

  • 安全小技巧:如果不想在命令行明文显示密码,把-p后面的空格去掉,写成-p,回车后会提示你输入密码,更安全。
  • 恢复时也要匹配编码:恢复备份文件时,同样加上--default-character-set=utf8mb4参数,避免出现乱码:
    mysql -u xxxx -p --default-character-set=utf8mb4 dbxxx < xxxx270613.sql
    
  • 兼容旧数据库:哪怕你的原数据库不是utf8mb4编码,导出时指定这个参数也能确保生成的SQL文件是UTF-8格式,后续恢复到其他环境时兼容性更好。

内容的提问来源于stack exchange,提问作者flik

火山引擎 最新活动