mysql備份還原,mysql備份
備份java代碼如下:

![]()
1 /**
2 * 備份單個數據庫
3 * @param dbName 數據庫名稱
4 * @return 備份成功或者失敗
5 */
6 @Override
7 public boolean backup(String dbName){
8 try {
9 logger.info(dbName + "開始備份!");
10 String cmd = "\"\" \""+dataBaseBS.getInstallPath() +"bin\\mysqldump\" -h localhost -uroot -p123456 " + dbName
11 + " > \"" + uploadPath + dbName + ".sql\"";
12 Process process = Runtime.getRuntime().exec("cmd /c start /b " + cmd);
13 InputStreamReader isr = new InputStreamReader(process.getErrorStream());
14 LineNumberReader input = new LineNumberReader(isr);
15 String line;
16 while ((line = input.readLine()) != null) {
17 }
18 logger.info(dbName + "備份成功!");
19 return true;
20 } catch (Exception e) {
21 logger.error(dbName + "備份失敗!",e);
22 return false;
23 }
24 }
View Code
還原java代碼如下:

![]()
1 /**
2 * 還原單個數據庫
3 * @param dbName 數據庫名稱
4 * @return 還原成功或者失敗
5 */
6 @Override
7 public boolean restore(String dbName){
8 try {
9 logger.info(dbName + "開始還原!");
10 String cmd = "\"\" \""+dataBaseBS.getInstallPath() +"bin\\mysql\" -h localhost -uroot -p123456 " + dbName
11 + " < \"" + uploadPath + dbName + ".sql\"";
12 Process process = Runtime.getRuntime().exec("cmd /c start /b " + cmd);
13 InputStreamReader isr = new InputStreamReader(process.getInputStream());
14 LineNumberReader input = new LineNumberReader(isr);
15 String line;
16 while ((line = input.readLine()) != null) {
17 }
18 logger.info(dbName + "還原成功!");
19 return true;
20 } catch (Exception e) {
21 logger.error(dbName + "還原失敗!",e);
22 return false;
23 }
24 }
View Code
mysql還原的cmd命令:
String cmd = "\"\" \""+dataBaseBS.getInstallPath() +"bin\\mysqldump\" -h localhost -uroot -p123456 " + dbName
+ " > \"" + uploadPath + dbName + ".sql\""
mysqldump的安裝路徑,以及sql的導出路徑,均支持帶空格。
cmd的調用命令:
Process process = Runtime.getRuntime().exec("cmd /c start /b " + cmd);
可使cmd命令在後台執行,沒有命令窗口出現或者一閃而過的情況。
mysql備份批處理文件,mysql備份.bat

![]()
1 @echo off
2 echo.
3 echo MySQL數據庫備份
4
5 echo *****************************
6 echo.
7 echo 今天是 %date%
8 echo 時間是 %time%
9 echo.
10 echo *****************************
11
12 :: 設置Ymd變量為日期格式:yyyyMMdd
13 set "Ymd=%date:~,4%%date:~5,2%%date:~8,2%"
14
15 :: 創建文件夾
16 md "D:\JDBC\%Ymd%"
17
18 :: 備份命令,多個數據庫用空格隔開
19 "mysqldump" --single-transaction --databases dbName -uroot -p123456 --default-character-set=gbk > "D:\JDBC\%Ymd%\backup.sql"
20
21 echo.
22
23 echo MySQL數據庫備份完成,請進行檢查。。。
24
25 echo.
26 echo.
27
28 :: 提示請按任意鍵繼續
29 pause
View Code
在D:\JDBC\20160612\下生成backup.sql文件,運行效果:
