我已經看到了當地的MySQL數據庫這項工作:如何使用Java轉儲遠程MySQL數據庫?
Runtime.getRuntime().exec("mysqldump -u USERNAME -p PASSWORD DBNAME > /path/to/location/backup.sql");
但有可能傾倒從Web服務器遠程MySQL數據庫?
我正在製作一個程序,通過FTP備份我的網站文件(已完成此部分),並備份我的MySQL數據庫在服務器上。所以我需要知道如何做到這一點。
我已經看到了當地的MySQL數據庫這項工作:如何使用Java轉儲遠程MySQL數據庫?
Runtime.getRuntime().exec("mysqldump -u USERNAME -p PASSWORD DBNAME > /path/to/location/backup.sql");
但有可能傾倒從Web服務器遠程MySQL數據庫?
我正在製作一個程序,通過FTP備份我的網站文件(已完成此部分),並備份我的MySQL數據庫在服務器上。所以我需要知道如何做到這一點。
如果您嘗試從其他計算機轉儲數據庫數據,則需要將特權用戶的特權授予此任務。
例如,用戶是:「remoteAdminUser」
GRANT SELECT, LOCK TABLES
ON *.*
TO 'remoteAdminUser'@'localhost' IDENTIFIED BY 'dbPass';
,然後你可以使用這個java代碼
/******************************************************/
//Database Properties
/******************************************************/
String dbName = 「dbName」;
String dbUser = 「remoteAdminUser」;
String dbPass = 「dbPass」;
String filePath = 「c:\\sqlDump\myFirstDump.sql」;
/***********************************************************/
// Execute Shell Command
/***********************************************************/
String executeCmd = "";
executeCmd = "mysqldump -u "+dbUser + " -p"+dbPass + " "+dbName + " -r "+filePath;
}
Process runtimeProcess =Runtime.getRuntime().exec(executeCmd);
int processComplete = runtimeProcess.waitFor();
if(processComplete == 0){
out.println("Backup taken successfully");
} else {
out.println("Could not take mysql backup");
}
它可以,如果你有訪問服務器來完成。你可以告訴mysqldump
連接到遠程服務器:
mysqldump -h yourServerAddress -u yourUser -pYourPassword dbName > output_file.sql
yourServerAddress
是在MySQL服務器的IP地址。
不,我想從網絡服務器轉儲它,這意味着MySQL服務器在域上。 – user2734304
好的,但是讓我知道你是否可以從web服務器查詢數據庫,例如,你可以做一個「select * from information_schema.tables」 –