我正在尝试使用Java备份和还原MySQL数据库。我可以使用以下命令来备份数据库:
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);
创建备份后,我想使用它还原数据库。我可以通过以下命令恢复备份文件:
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;
答案 0 :(得分:0)
实际上并没有直接的方法可以实现,但是您可以尝试:
--no-create-db
传递给mysql dump。这将省略create table语句。 请注意,由于多种原因,这可能不是使用MySQL进行备份的最优雅方法:
C:/Program Files/MySQL/MySQL Server 5.7/
对于上述几点,由于您的构建方式,我认为此备份仅在本地适合您?在那种情况下,写一个简单的.bat
文件可能是一个很好的选择,因为它会更短,更直接吗?
最好, 马赛厄斯