2015-02-11 176 views
0

我使用Java和MySQL與Appserv。我有一個名爲「modb.sql」的數據庫文件(在與我的程序位置有關的特定目錄中),我經常需要刪除舊數據庫,創建一個新數據庫(每次都在phpMyAdmin中具有相同名稱)並導入將modb.sql文件添加到新的數據庫中。Appserv命令行批處理

有沒有辦法讓這個過程自動化,並將它與程序或安裝文件包含在一起?而不是由我或用戶手動完成。

我可以使用另一個MySQL數據庫管理器或C#而不是Java,如果那樣會允許進程是自動的。

+0

做了一個快速搜索,我打開了這個頁面http://www.toadworld.com/platforms/mysql/w/wiki/6151.mysql-batch-imports.aspx,它可能有所有的命令。處理這個問題併發回一個批量文件的嘗試。發佈您遇到的任何錯誤或區域。 – user4317867 2015-02-12 00:09:03

回答

0

您可以通過Windows命令行或計劃任務完成所有這些操作。我沒有安裝Appserv,所以我無法爲您提供所有確切的文件路徑位置,這些位置可能因您的安裝位置而異。你也可以在技術上從Java應用程序中做到這一點,但這是一個很大的開銷,並沒有像計劃任務那樣將它自動化。

您將基本上直接從您的日程安排任務或批處理文件調用mysql.exe命令。

首先,我們來創建一個新的SQL文件,也許叫做DropAndCreateMoDb.sql。放下命令(DROP DATABASE ...)並在此處重新創建數據庫。當然,精確的drop命令取決於你所說的數據庫,而create命令很大程度上依賴於modb.sql創建的結構;您還將在此創建您需要的任何權限。這使關於刪除和重新創建的部分自動化。

寫一個批處理文件。你並不需要這麼做,你可以從日程安排任務中調用兩次MySQL,但我們正在嘗試以正確的方式做到這一點。這是未經測試的,顯然你會想要替換正確的路徑和MySQL用戶名/密碼 - 我建議爲此創建一個維護帳戶,以便您的完整憑證不在批處理文件中;平時免責聲明申請關於妥善保護您的帳戶),但也許是這樣的:

@ECHO OFF C:\Program Files\Appserv\MySQL.exe -u foo -p bar < C:\data\DropAndCreateMoDb.sql C:\Program Files\Appserv\MySQL.exe -u foo -p bar < C:\data\modb.sql

顯然,這不趕任何錯誤,你的用戶名和密碼都在這裏清楚,但只要這是在您的本地開發機器上用於開發目的,並且您知道並理解風險,它就會工作。

此時,您可以雙擊.bat文件,它應該刪除並重新創建數據庫。要完成它並將其完全自動化,您將添加一個計劃任務。轉到計劃任務控制面板並添加一個新任務。告訴它新的路徑DropAndRecreate.bat或任何您決定調用它的路徑,告訴Windows何時需要任務運行,現在它是完全自動化的。

這裏有很多變量使得實現的細節非常依賴於你的確切配置等等。確保你明白每一步實際做了什麼,而不是僅僅複製和粘貼。