c# - 如何创建批处理文件来备份Mysql数据库?

标签 c# mysql database winforms batch-file

我一直在尝试创建一个批处理文件来备份 MySQL 数据库。一切正常,但备份是空的。我不知道哪里出了问题。这是我的代码

set year=%DATE:~10,4%
set day=%DATE:~7,2%
set mnt=%DATE:~4,2%
set hr=%TIME:~0,2%
set min=%TIME:~3,2%

IF %day% LSS 10 SET day=0%day:~1,1%
IF %mnt% LSS 10 SET mnt=0%mnt:~1,1%
IF %hr% LSS 10 SET hr=0%hr:~1,1%
IF %min% LSS 10 SET min=0%min:~1,1%

set backuptime=%year%-%day%-%mnt%-%hr%-%min%
echo %backuptime%
set dbuser=root
set dbpass=vsplabs
set mysqldumpexe="C:\Program Files\MySQL\MySQL Server 5.6\bin\mysqldump.exe"
set backupfldr="C:\Users\sowmya\Desktop\Mysqlbackups"
set datafldr="C:\ProgramData\MySQL\MySQL Server 5.6\data"
set zipper="c:\MySQLBackups\zip\7za.exe"
pushd %datafldr%
echo "Pass each name to mysqldump.exe and output an individual .sql file for each"
@echo off
FOR /D %%F IN (*) DO (
IF NOT [%%F]==[performance_schema] (
SET %%F=!%%F:@002d=-!
%mysqldumpexe% --user=%dbuser% --password=%dbpass% --databases --routines --log-error=%errorLogPath% %%F > "%backupfldr%%%F.%backuptime%.sql"
) ELSE (
echo Skipping DB backup for performance_schema
)
)
 echo "Zipping all files ending in .sql in the folder"
 %zipper% a -tzip "%backupfldr%FullBackup.%backuptime%.zip" "%backupfldr%*.sql
 echo "done"
 popd

还有一个问题,我只想要一个数据库,它正在从数据库中检索所有数据库。如何修改它,并且我已经获得了一个名为“mysql”的额外数据库

最佳答案

这可以直接在cmd中运行(我包装了该行,但不应该包装): 您应该授予 root 访问权限。

mysql.exe -uroot -p1234 -s -N -e "SHOW DATABASES" |
for /F "usebackq" %D in (`findstr /V "information_schema performance_schema"`)
do mysqldump %D -uroot -p1234 > S:\Backup\MySQL\%D.sql

在批处理文件中,您需要使用额外的 % 来转义 %,即使用 %%D。

关于c# - 如何创建批处理文件来备份Mysql数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23798568/

相关文章:

c# - FileReader 不是用 Angular 服务器端渲染定义的

c# - 需要帮助理解 .resx 变量

mysql - 优化MySQL操作以获取计数

用于用户控件的 C# WPF 可滚动容器

c# - INotifyPropertyChange 接口(interface)错误

mysql - 如何在 PhoneGap 中连接到客户端服务器数据库?

php - mySQLi/PHP 从所有匹配行中选择具有最高索引/id 的行

node.js - 错误 : No event 'socketConnect' in state 'SentPrelogin'

java - 在netbeans java中使用网络摄像头拍照?

mysql - R SQL : Pull data from MySQL for list of ids already in a dataframe