我已经在本地MySQL数据库中看到了这一点:
Runtime.getRuntime().exec("mysqldump -u USERNAME -p PASSWORD DBNAME > /path/to/location/backup.sql");但是从web服务器转储远程MySQL数据库是可能的吗?
我正在制作一个程序,通过FTP备份我的网站文件(这一部分已经完成),并在服务器上备份我的MySQL数据库。因此我需要知道如何做到这一点。
发布于 2013-08-31 05:04:40
如果您正在尝试从其他计算机转储数据库数据,则需要授予特定用户执行此任务的特权。
例如,用户是:'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");
}发布于 2013-08-31 05:05:29
如果您有访问服务器的权限,则可以完成此操作。您可以告诉mysqldump连接到远程服务器:
mysqldump -h yourServerAddress -u yourUser -pYourPassword dbName > output_file.sqlyourServerAddress是MySQL服务器所在的IP地址。
https://stackoverflow.com/questions/18541208
复制相似问题