当我试图备份我自己的 Mysql 数据库时发现了这个问题,并认为我会分享我最终是如何做到的。
该代码基本上遍历所有数据库并创建一个 .sql 文件,其中包含每个数据库的所有结构和数据。
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: MySQL Backup
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: MySQl DB user
set dbuser=BackupUser
:: MySQl DB users password
set dbpass=BackUpUserPassWord
:: Switch to the MySQL data directory and collect the folder names
pushd "C:\Server\databases\mysql\data"
:: Loop through the folders and use the file names for the sql files, collects all databases automatically this way
:: Pass each name to mysqldump.exe and output an individual .sql file for each
FOR /D %%F IN (*) DO (
"C:\Program Files\MySQL\bin\mysqldump.exe" --user=%dbuser% --password=%dbpass% --databases %%F > "C:\Server\backups\mysql\%%F.%TODAY%.sql"
)
要回答您的特定问题,请检查您是否以管理员身份运行脚本,以及您尝试备份的用户是否具有数据库的相关权限。在我以管理员身份运行我的 bat 文件之前,我一直被困在这个问题上。
要检查它是否是用户问题,请尝试使用 root 用户运行 mysqldump,看看是否有帮助,如果它知道它是数据库权限的问题。
要以管理员身份运行,请右键单击 bat 文件,然后选择以管理员身份运行,如果您正在使用,请不要忘记在计划任务中设置“以最高权限运行”复选框。
代码从这里复制:
http ://www.syntaxwarriors.com/2012/backup-up-a-windows-server-using-only-free-tools/