You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ddev import-db/ddev pull导入数据库报错:Unknown command '\-'等问题求助

解决DDEV导入新版MariaDB备份文件的错误问题

问题原因

你遇到的两个错误都源于新版本mariadb-backup/mysqldump生成的压缩SQL备份文件格式特性:

  1. ERROR at line 1: Unknown command '\-':直接传递.gz压缩文件给ddev import-db时,工具未正确解压就交给MySQL,导致MySQL误把压缩二进制内容当成SQL命令解析。
  2. ERROR: ASCII '\0' appeared in the statement:用管道直接导入压缩文件时,二进制压缩包中的null字符被MySQL读取,而默认模式下MySQL不允许这类字符。

解决方案

方法1:先解压再导入

手动解压压缩文件后再执行导入命令:

# 解压.gz文件
gunzip database.sql.gz
# 导入解压后的SQL文件
ddev import-db --file=database.sql

方法2:管道解压+启用二进制模式导入

通过管道实时解压,并给MySQL添加--binary-mode=1参数来兼容备份中的特殊字符:

gunzip < database.sql.gz | ddev exec mysql -u db -pdb --binary-mode=1 db

处理ddev pull platform的问题

由于ddev pull platform内部使用相同的导入逻辑,你可以:

  • 拉取备份后,找到下载的压缩备份文件(通常在.ddev/.downloads目录下),用上述方法1或2手动导入;
  • 自定义ddev pull的钩子,在导入前自动解压并添加二进制模式参数。例如在.ddev/config.yaml中添加:
    hooks:
      post-pull:
        - exec: "gunzip < .ddev/.downloads/platform.sql.gz | mysql -u db -pdb --binary-mode=1 db"
    

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 15:03:14