[英]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
。 你需要:
ProcessBuilder
。 sh -c
或cmd /c
來處理重定向。 Process.waitFor()
。 為什么要使用Java完全是一個謎。 這只是一個shell腳本。 確實,您可以使MySQL自動安排其備份,甚至不需要腳本。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.