2012-08-09 88 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