2012-08-09 87 views
0
set dateStr=%date:~-7,2%-%date:~-10,2%-%date:~-4,4% 
"C:\Program Files (x86)\MySQL\MySQL Server 5.5\bin\mysqldump.exe" -u user -p password --all- 

databases --single-transaction --flush-logs --master-data=2 > full_backup_%dateStr%.sql 

它适用于我们有的另一台服务器。这是一个新的服务器,但具有相同的数据库。 只创建了内容的1 KB的文件:MySQL完全备份与mysqldump.exe

Usage: mysqldump [OPTIONS] database [tables] 
OR  mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...] 
OR  mysqldump [OPTIONS] --all-databases [OPTIONS] 
For more options, use mysqldump --help 

请帮助。

+0

我想你不应该把-p和密码时应之间的空间。 – Tim 2012-08-09 01:28:24

+0

我试过了,还是不行。 – 2012-08-09 05:03:35

回答

0

我测试了你的代码,它工作。我认为你应该再次检查你的bat文件是否有语法错误。

set dateStr=%date:~-7,2%-%date:~-10,2%-%date:~-4,4% 
"D:\Sync\Apps\Wamp\bin\mysql\mysql5.5.20\bin\mysqldump.exe" -u root --all-databases --single-transaction --flush-logs --master-data=2 > full_backup_%dateStr%.sql 

我删除了-pPASSWORD部分,因为在本地服务器上没有root用户密码。所以,如果你打算从这里进行C/P,不要忘记改变mysqldump的路径并添加-p部分。

+0

不禁感谢您使用“睾丸”这个词。 – 2015-03-18 20:42:50

+1

LMAO。一个可怕的错字,但我会保留它,因为它是。 – Tim 2015-03-19 10:43:15

1

发现这个问题,当我试图让我自己的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/

+2

感谢您的支持!在文件名中包括%DATE%对我来说不起作用,可能是因为我的语言环境或其他原因。我最终使用'%date:〜9,4%_%date:〜6,2%_%date:〜3.2%。%% F.sql',在我的语言环境中生成YYYY_MM_DD.database.sql。 – 2013-05-15 13:07:51