2013-08-30 54 views
0

我已经看到了当地的MySQL数据库这项工作:如何使用Java转储远程MySQL数据库?

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

但有可能倾倒从Web服务器远程MySQL数据库?

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

回答

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"); 
} 
+0

不,我想从网络服务器转储它,这意味着MySQL服务器在域上。 – user2734304

+0

好的,但是让我知道你是否可以从web服务器查询数据库,例如,你可以做一个“select * from information_schema.tables” –

0

它可以,如果你有访问服务器来完成。你可以告诉mysqldump连接到远程服务器:

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

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