【问题标题】:How do I dump a remote MySQL database using Java?如何使用 Java 转储远程 MySQL 数据库?
【发布时间】:2013-08-30 20:44:41
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: java mysql mysqldump remote-server


    【解决方案1】:

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

    例如,用户是:'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");
    }
    

    【讨论】:

    • 不,我正在尝试从网络服务器转储它,这意味着 MySQL 服务器在域上。
    • 好的,但是让我知道您是否可以从 webServer 查询该数据库,例如,您可以执行“从 information_schema.tables 中选择 *”
    • 所以这意味着你必须在本地机器上安装 MySQL 才能使用mysqldump,这也不是最好的方法,是否有使用某些协议直接从 Java 转储数据库?
    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-20
      • 2018-08-20
      • 2015-01-29
      • 1970-01-01
      • 2011-12-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多