gpt4 book ai didi

mysql - 需要确保 mysqldump 不会在计划的备份计划中创建空转储文件

转载 作者:行者123 更新时间:2023-11-29 23:21:20 24 4
gpt4 key购买 nike

我正在使用 mysqldump 将数据库备份到与 google 驱动器直接链接的文件夹中。

我的批处理文件代码是

ECHO OFF

for /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value') do set "dt=%%a"
set "YY=%dt:~2,2%" & set "YYYY=%dt:~0,4%" & set "MM=%dt:~4,2%" & set "DD=%dt:~6,2%"
set "HH=%dt:~8,2%" & set "Min=%dt:~10,2%" & set "Sec=%dt:~12,2%"

set "datestamp=%YYYY%%MM%%DD%" & set "timestamp=%HH%%Min%%Sec%"
set "fullstamp=%YYYY%-%MM%-%DD%_%HH%-%Min%-%Sec%"
echo datestamp: "%datestamp%"
echo timestamp: "%timestamp%"
echo fullstamp: "%fullstamp%"

C:\"Program Files (x86)"\MySQL\"MySQL Workbench 6.0 CE"\mysqldump.exe --user=**** --password=**** --max_allowed_packet=1G --host=196.167.3.111 --port=3307 --default-character-set=utf8 --single-transaction=TRUE "test_sales_manager" > C:/Users/user/"Google Drive"/dumps/%fullstamp%.sql

我每天在任务计划程序上运行这个 backup.bat 文件两次来备份我的数据库。现在我想每小时运行一次,也许删除时间戳并让文件被覆盖,但我需要确保不会创建空转储文件。目前,如果连接或数据库服务器关闭,则会创建一个空转储文件。我该如何避免这种情况?

最佳答案

从mysqldump检查退出代码,可以按如下方式执行

...
C:/..../mysqldump .... %TEMP%/%fullstamp%.sql
IF %ERRORLEVEL% GEQ 1 GOTO EXIT

COPY %TEMP/%fullstamp%.sql C:/Users/user/"Google Drive"/dumps/%fullstamp%.sql
...

:EXIT
REM DO NOTHING - Something Went Wrong!

作为引用,预计出现以下错误代码(来自 client/mysqldump.c):

/* Exit codes */

#define EX_USAGE 1
#define EX_MYSQLERR 2
#define EX_CONSCHECK 3
#define EX_EOM 4
#define EX_EOF 5 /* ferror for output file was got */
#define EX_ILLEGAL_TABLE 6

关于mysql - 需要确保 mysqldump 不会在计划的备份计划中创建空转储文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27262893/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com