gpt4 book ai didi

mysql - 在使用批处理文件排除某些数据库的同时备份 MySql,我遇到了问题

转载 作者:可可西里 更新时间:2023-11-01 08:45:51 25 4
gpt4 key购买 nike

我正在尝试通过批处理文件在 Windows 2012 上备份我的 MySql 数据库。

这是我的:

    %mysql% -u %USER% -p%PASSWORD% -B -s -e"show databases" > %backupdir%\mysqldblist.tmp

FOR /F %%D IN (%backupdir%\mysqldblist.tmp) DO (
set DONTBACKUP=NOTHING
ECHO Creating backup for database ''%%D''
if [%%D]==[information_schema] set DONTBACKUP=TRUE
if [%%D]==[mysql] set DONTBACKUP=TRUE
if [%%D]==[performance_schema] set DONTBACKUP=TRUE
if [%%D]==[test] set DONTBACKUP=TRUE
PAUSE
IF [%DONTBACKUP%]==[TRUE] %mysqldump% -u %USER% -p%PASSWORD% --result-file="%backupdir%%%D_%mydate%.sql" "%%D"
PAUSE
)

我试图排除 mysql、performance_schema 和 test 等数据库,但它在第一次迭代 后退出。我想我只是设置一个变量并检查它是否是某个数据库,但它没有发生,首先检查它是否退出。

有人可以指出我在这里做错了什么吗?

附加信息

这是我在命令提示符窗口中看到的内容,如果有帮助的话:

ECHO Creating backup for database '%D'
if [%D] == [information_schema] set DONTBACKUP=TRUE
if [%D] == [mysql] set DONTBACKUP=TRUE
if [%D] == [performance_schema] set DONTBACKUP=TRUE
if [%D] == [test] set DONTBACKUP=TRUE
PAUSE
IF [] == [TRUE] "C:\Program Files\MySQL\MySQL Server 5.5\bin\mysqldump"...

我发现有些不对劲,我现在正在尝试调试它,但我没有立即看到它。我不确定为什么 %%D 或为什么 DONTBACKUP 没有被填充...

附加信息#2

这是我认为我失败的地方:

 if [information_schema] == [information_schema] set DONTBACKUP=TRUE

它没有设置为 TRUE,所以它会尝试进行备份。我不确定我忽略了什么,但为什么这种比较会失败?

最佳答案

在文件开头添加这一行:

setlocal enabledelayedexpansion

在 for 循环中,当查看 DONTBACKUP 的值时,使用 !DONTBACKUP!。此外,按照逻辑,应该反转对 DONTBACKUP 的检查。

修改后的文件如下:

setlocal enabledelayedexpansion
%mysql% -u %USER% -p%PASSWORD% -B -s -e"show databases" > %backupdir%\mysqldblist.tmp

FOR /F %%D IN (%backupdir%\mysqldblist.tmp) DO (
set DONTBACKUP=NOTHING
ECHO Creating backup for database ''%%D''
if [%%D]==[information_schema] set DONTBACKUP=TRUE
if [%%D]==[mysql] set DONTBACKUP=TRUE
if [%%D]==[performance_schema] set DONTBACKUP=TRUE
if [%%D]==[test] set DONTBACKUP=TRUE
PAUSE
IF not [!DONTBACKUP!]==[TRUE] %mysqldump% -u %USER% -p%PASSWORD% --result-file="%backupdir%%%D_%mydate%.sql" "%%D"
PAUSE
)

关于mysql - 在使用批处理文件排除某些数据库的同时备份 MySql,我遇到了问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29666120/

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