2011-11-07 98 views
3

我的問題有點特別,但我希望有人對此問題有所體會。適用於Windows的MySql,MySql管理員:定時備份不起作用

我正在運行Windows 2008服務器,MySql for Windows安裝了它。它是MySql 5.2,該軟件包包含「MySql Administrator」。在那裏你可以做一個特定數據庫的備份。當我配置備份並且還說要在凌晨3點左右每天進行備份時,它不會自動工作。只有當我按下「立即執行備份」時,才能保存.SQL文件,然後備份itselve正常工作。當我要求它自動啓動時,不會創建任何內容,甚至不會創建日誌文件。我檢查了所選文件夾的權限,並添加了具有排除任何權限問題的所有權限的用戶「每個人」。沒有效果。

我一直在谷歌搜索的一天,我找不到解決方案。有誰知道爲什麼我通過My​​SQL管理員進行的自動備份不適用於MS Windows 2008,爲什麼它甚至不創建日誌文件?

回答

1

我想它可能與Windows「cron」作業有關。無論如何,這做的伎倆對我來說:

http://realm3.com/articles/how_to_schedule_regular_mysql_backups_in_windows

當然,你必須手工做的一切,但也比較好。我在PostgreSQL中得到了同樣的問題,因爲「at」窗口與linux「cron」不同。由於比,我開始做我自己的「cron」工作。

而且檢查: http://kedar.nitty-witty.com/blog/scheduled-backup-mysql-administrator-windows-scheduler-odd

希望它能幫助! :)

+1

感謝您的答覆!在我來到這個地方之前,我實際上已經嘗試使用直接指向mysqldump.exe的批處理文件選項,但是失敗了。我已經嘗試過,現在它似乎工作。我實際上在端口3307上使用MySQL。每個命令都使用3306端口作爲標準,所以我使用mysqldump(--port = 3307)中的端口選項,現在它可以工作!所以謝謝讓我再試一次。不過奇怪的是,雖然爲什麼Windows的MySQL管理界面不會做的伎倆...... 我把這張票開,因爲我還是想MySQL管理本身 – Nehbur

+0

內的解決方案,我很樂意幫助你,莫名其妙! :) –

1

我會發布什麼是我的發現讓其他人享受。

我沒有得到MySQL管理備份功能自動工作,而不是我用@mOrSa

的建議

我的發現是這些:

: 我已經使用這個代碼做了一個批處理文件
@echo off 
set zy=2011 
set zm=1 
set zd=17 
set zz = ((zy*100)+zm)*100+zd 
Set hr=%TIME:~0,2% 
Set mn=%TIME:~3,2% 
echo Running dump... 
C:\Progra~1\MySQL\MYSQLS~1.5\bin\mysqldump -uuser -password --port=3307 --result-file="c:\MySqlBackups\backup_%zz%_%hr%%mn%.sql" meibergen_dbo 
echo Done! 
echo Deleting old files 
forfiles /P "C:\MySqlBackups" /S /M *.sql /D -7 /C "cmd /c del @PATH" 
echo Done! 

這使得所選文件夾中的.SQL文件的名稱格式爲「backup_20110825_14:54.sql」。它還會刪除該文件夾中所有超過7天的文件。我有Windows Server 2008,因此文件「forfiles.exe」標準安裝在system32文件夾內。如果你沒有這個程序,你可以免費下載到某個地方。

之後,我已經在Windows任務計劃程序中設置了運行此批處理文件的計劃任務。確保你已經給予適當的權利在schedular。它每天執行。

2

我也試過使用1.2.17版與勝利7.我面臨同樣的問題。MySQL的ADMIN是通過Windows調度程序調度備份。我真的不知道爲什麼,但當我安排備份(當我保存新創建的項目)在一個ADMIN帳戶的用戶下它沒有運行。當我按照標準帳戶安排備份時,它運行良好。爲了解決這個問題,我在WIN 7中定義了一個新的標準賬戶。我在我的主帳戶下登錄獲勝,並在新帳戶下安排備份。現在它工作正常。

0

簡單的技巧是創建一個存儲的連接(在Win7和Win2008上用MySQL Administrator 1.2.17可以測試download it from here, it's among MySQL GUI tools)。

  1. 打開MySQL的管理員,然後進入菜單工具>選項

  2. 在彈出窗口中選擇左側的「連接」,點擊按鈕「新 連接」。

  3. 填寫你的聯繫信息:用戶名,密碼, 主機...並保存它。

  4. 關閉的MySQL管理員聯絡並重新打開它,但 這次通過選擇新的存儲連接你只是 上一步創建(3)選擇列表(選擇列表中的第一場連接登錄窗口)

  5. 現在,您可以創建一個備份,並安排它,並計劃將工作就像一個魅力。

3

創建具有最低權限的用戶

mysql> grant select,lock tables on foo.* to [email protected]host identified by'backup'; 
mysql> flush privileges; 

創建一個批處理文件LIKE的追隨者,並安排它 * 與數據庫名+日期和時間,指定的路徑這將備份文件 *

@echo off 
set mySqlPath=C:\[path to my sql]\mysql5.1.36 
set dbUser=bar 
set dbPassword=backup 
set dbName=MyDB1 

set hr=%time:~0,2% 
if "%hr:~0,1%" equ " " set hr=0%hr:~1,1% 

set file=%dbName%.%date:~-4,4%%date:~-10,2%%date:~-7,2%_%hr%%time:~3,2%%time:~6,2%.sql 
set path=C:\[path to folder]\mysql_bak 

echo Running dump for database %dbName% ^> ^%path%\%file% 
"%mySqlPath%\bin\mysqldump.exe" -u %dbUser% -p%dbPassword% --result-file="%path%\%file%" %dbName% 
echo Done! 
0

我知道這是一個老問題,但我不得不在最近幾天和搜索解決方案,同樣的問題,我無法找到如何解決我的問題,但我發現了一些信息,在我的事件日誌,我記起我有另一個連接(顯然,事件日誌告訴我),所以我用事件日誌顯示我和瞧,相同的名稱進行了新的連接,問題修復。

+0

感謝您對SO的回答,如果您有時間考慮更新您的答案以獲得更具體的「您如何創建新的連接ecc ..」 –

2

我得到了解決辦法,當您創建時間表備份時間MySQL管理採取信息系統的用戶名和密碼。那個時候給予適當的系統用戶名和密碼