簡體   English   中英

通過Java備份MySQL

[英]Backup MySQL via Java

我正在制作一個程序,使用MysqlDump從java中自動備份MySQL數據庫。 我想創建文件並將其壓縮。 但是,我在MySQLDump上遇到問題。

我正在使用以下代碼創建一個MySQLDump:

Process pr = Runtime.getRuntime().exec(
                "mysqldump -u "+user+" --password='"+password+"' "+database+" > /root/moltres/backups/sql/"+database+".sql"
                );

在這之后我有一個while循環,如果pr.isAlive()保留在循環中。 我以為這會起作用,但似乎當執行命令時,該過程立即不再有效。 我可以使線程進入睡眠狀態,但是持續多長時間? 如何進行相同的SQL備份,但檢測mysqldump命令何時完成?

命令立即退出。 失敗了 ,因為mysqldump無法理解重定向。

這不是您使用Process 你需要:

  1. 使用ProcessBuilder
  2. 合並輸出和錯誤流。
  3. 在命令行開頭添加適當的sh -ccmd /c來處理重定向。
  4. 開始過程。
  5. 消耗輸出流並將其記錄下來,直到流結束為止。
  6. 調用Process.waitFor()
  7. 獲取流程的退出代碼並記錄下來。

為什么要使用Java完全是一個謎。 這只是一個shell腳本。 確實,您可以使MySQL自動安排其備份,甚至不需要腳本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM