我试图创建通过Java远程备份MySQL数据库的软件。我无法访问任何控制台,但我能够运行MySQL命令和语句。我需要将数据库备份到" .sql"然后可以用来恢复的文件。
如何在没有控制台的情况下备份MySQL?是否可以进行sqldump?
我目前的想法是为每个表执行以下过程:
SHOW COLUMNS FROM tablename;
有更好的方法可以做到这一点,还是我的方法最适合我的情况?我的方法会起作用吗?
答案 0 :(得分:1)
您可以使用JDBC在数据库中触发纯SQL命令,就像使用mysql命令行界面时一样。这样您就可以完全控制转储的每个步骤,例如显示获取1000s增量时的进度,写入并发日志或报告等。
答案 1 :(得分:0)
你的想法是有道理的,但要实现很多东西(使用JDBC元数据获取表结构,定义自己的备份格式等)。
由于您可以使用JDBC连接到远程MySQL,因此您拥有服务器的主机名/端口/用户名/密码。你能跑吗
String cmd = "mysqldump -h host -P port -u user -p password –database dbname > backup.sql";
Runtime rt = Runtime.getRuntime();
rt.exec(cmd);
确保mysqldump在你的PATH上。
答案 2 :(得分:0)
您可以在JAVA或Shell脚本
中运行以下命令 $ mysqldump -u [uname] -p[pass] db_name > <FILE_PATH>db_backup.sql
这会将您的数据库转储到文件中。