1

我已经在本地 MySQL 数据库中看到了这项工作:

Runtime.getRuntime().exec("mysqldump -u USERNAME -p PASSWORD DBNAME > /path/to/location/backup.sql");

但是是否可以从 Web 服务器转储远程 MySQL 数据库?

我正在制作一个程序,通过 FTP 备份我的两个网站文件(这部分已经完成),并在服务器上备份我的 MySQL 数据库。因此,我需要知道如何做到这一点。

4

2 回答 2

0

如果您尝试从其他计算机转储数据库数据,则需要授予特定用户的特权才能执行此任务。

例如,用户是:'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-30T21:04:39.890 回答
0

如果您有权访问服务器,则可以这样做。您可以告诉mysqldump连接到远程服务器:

mysqldump -h yourServerAddress -u yourUser -pYourPassword dbName > output_file.sql

yourServerAddress是 MySQL 服务器所在的 IP 地址。

于 2013-08-30T21:05:28.783 回答