我正在尝试使用Java备份和恢复MySQL DB。我可以使用以下命令备份DB:
C:/Program Files/MySQL/MySQL Server 5.7/bin/mysqldump -u root --password=password myDbName -r "C:/backup.sql"并使用以下Java代码来执行它:
Runtime runtime = Runtime.getRuntime();
Process p = runtime.exec(commandString);在创建备份之后,我想用它恢复DB。我可以通过命令恢复备份文件:
C:/Program Files/MySQL/MySQL Server 5.7/bin/mysql -u root --password=password myDbRestore<"C:/backup.sql"问题是,在执行还原之前,我想检查数据库是否存在。是否有MySQL执行CREATE DATABASE IF NOT EXISTS的参数?
换句话说,如何在一个语句/Java中执行以下命令:
C:/Program Files/MySQL/MySQL Server 5.7/bin/mysql -u root --password=password
create database if not exists myDbRestore;
use myDbRestore;
source C:\backup.sql;发布于 2018-09-02 07:33:09
没有真正直接的方法来实现这一点,但您可以尝试这样做:
--no-create-db传递给mysql转储。它将省略create语句。请注意,这可能不是使用MySQL进行备份的最优雅方法,原因如下:
C:/Program Files/MySQL/MySQL Server 5.7/的较新的C:/Program Files/MySQL/MySQL Server 5.7/版本
对于以上几点,由于您是如何构建备份的,我假设此备份仅适合本地用户吗?在这种情况下,编写一个简单的.bat文件可能是一个很好的选择,因为它将变得更短、更直接?
最好的,马提亚斯
https://stackoverflow.com/questions/52134824
复制相似问题