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

如何在MySQL批处理(.bat)文件中捕获mysqldump错误并跳转处理

实现方法

批处理可以通过判断命令执行后的退出码%errorlevel%捕获mysqldump的执行错误,有两种常用写法都可以满足需求:

写法1:简洁的||跳转写法

直接在mysqldump命令后加|| goto error即可,命令执行失败时会自动跳转到错误分支:

@echo off
set sql_bin_path=%MY_SQL%
cd /d %sql_bin_path%
:: 也可以给cd加错误判断,避免路径不存在时后续命令执行异常
if %errorlevel% neq 0 goto error

mysqldump -u root -p --no-data test > test.sql || goto error

pause
goto :eof

:error
echo Something went wrong
pause

写法2:显式判断退出码

如果需要在命令执行后、判断错误前做额外处理,可以显式读取%errorlevel%判断:

@echo off
set sql_bin_path=%MY_SQL%
cd /d %sql_bin_path%
if %errorlevel% neq 0 goto error

mysqldump -u root -p --no-data test > test.sql
:: 退出码非0即代表执行出错
if %errorlevel% neq 0 goto error

pause
goto :eof

:error
echo Something went wrong
pause

补充说明

  • mysqldump遇到数据库不存在、连接失败、权限不足、参数错误等所有异常场景时,都会返回非0的退出码,上述判断逻辑可以覆盖所有常规错误场景
  • 如果需要留存错误原因排查问题,可以把标准错误流也重定向到日志文件,修改命令为:
    mysqldump -u root -p --no-data test > test.sql 2> dump_error.log || goto error
    
    出错后可以查看dump_error.log文件获取具体报错信息。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.21 15:06:05