记录一下如何通过java来备份数据库
该方法有着一定的局限性(无法实现远程的数据库备份,只能备份本机的)
实例就拿MySQL数据库来演示(其他数据库同理,只是备份命令不同)
String url = "jdbc:mysql://localhost:3306/database";
String user = username;
String password = password;
String backupPath = "d:\\full.sql";
try (Connection connection = DriverManager.getConnection(url, user, password);
OutputStream outputStream = new FileOutputStream(backupPath)) {
// 执行备份命令
// String command = "mysqldump -u " + user + " -p" + password + " mydatabase";
Runtime rt = Runtime.getRuntime();
Process process = rt.exec("D:\\mysql-8.0.20-winx64\\bin\\mysqldump -uroot -p123456 --host=127.0.0.1 --port=3306 --databases lianxi >d:/full.sql");
// Process process = Runtime.getRuntime().exec(command);
// 将备份数据写入输出流
byte[] buffer = new byte[1024];
int length;
while ((length = process.getInputStream().read(buffer)) > 0) {
outputStream.write(buffer, 0, length);
}
outputStream.flush();
System.out.println("Backup successful.");
} catch (SQLException | IOException e) {
e.printStackTrace();
}
mysqldump命令就是MySQL数据库中的数据库备份命令,如果没有将其配置到环境变量,就需要指名全路径,否则可能找不到