还原数据库
其实数据库还原实际上是使用通过mysqldump备份命令生成的sql文件来进行还原数据的!
一.使用cmd命令行执行数据还原:
还原命令代码格式:
mysql-u账户 -p密码 数据库名<还原数据库文件路径
mysql -uroot -proot zbsqx < D:\MysqlBackup\201908131542zbsqx001.sql
在命令行中输入以上代码:
例子:
以上例子在执行后会通过使用D盘的MysqlBackup路径下sql文件来还原root用户下名为zbsqx数据库数据。
当D盘的MysqlBackup路径下找不到有效的sql文件,则会提示系统找不到指定的文件。
如果提示:不是内部或外部命令时,
主要是mysql还原命令不是在mysql的bin目录下执行,
这里由于我配置了msyql的环境变量,可以在命令窗口的默认目录下执行mysql命令。
在环境变量的path栏里面添加mysql下面的bin文件夹路径即可,
例如我是:C:\Program Files\MYSQL\MySQL Server 5.7\bin\
二.使用Java代码实现数据库还原:
例子:
public static void main(String[] args) throws Exception{
//还原数据库
try {
if (recoverDatabaseTool("root", "root", "D:/MysqlBackup/201908131542zbsqx001.sql", "zbsqx")) {
System.out.println("数据还原成功!");
} else {
System.out.println("数据还原失败!");
}
} catch (Exception e) {
e.printStackTrace();
}
}
//还原数据库方法
public static boolean recoverDatabaseTool(String userName, String password,
String savePath, String databaseName) {
//创建一个Runtime对象;
Runtime runtime = Runtime.getRuntime();
try {
//拼接一段还原命令使用Runtime对后台操作
String stmt =" mysql" + " -u" + userName + " -p" + password +" "+ databaseName+" "+"< " + savePath;
String[] command = {"cmd", "/c", stmt};
Process process = runtime.exec(command);
//若有错误信息则输出
InputStream errorStream = process.getErrorStream();
//等待操作
int processComplete = process.waitFor();
if (processComplete == 0) {
return true;
} else {
return false;
}
} catch (Exception e) {
e.printStackTrace();
}
return false;
}
执行结果: