import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
public class Test {
public static void main(String[] args) throws IOException{
backup("d:\\\\d.sql");
recover("d:\\\\d.sql");
}
public static void backup(String path) throws IOException{
Runtime runtime = Runtime.getRuntime();
//-u后面是用户名,-p是密码-p后面最好不要有空格,-family是数据库的名字
Process process = runtime.exec("mysqldump -u root -p123456 family");
InputStream inputStream = process.getInputStream();//得到输入流,写成.sql文件
InputStreamReader reader = new InputStreamReader(inputStream);
BufferedReader br = new BufferedReader(reader);
String s = null;
StringBuffer sb = new StringBuffer();
while((s = br.readLine()) != null){
sb.append(s+"\\r\\n");
}
s = sb.toString();
System.out.println(s);
File file = new File(path);
file.getParentFile().mkdirs();
FileOutputStream fileOutputStream = new FileOutputStream(file);
fileOutputStream.write(s.getBytes());
fileOutputStream.close();
br.close();
reader.close();
inputStream.close();
}
public static void recover(String path) throws IOException{
Runtime runtime = Runtime.getRuntime();
//-u后面是用户名,-p是密码-p后面最好不要有空格,-family是数据库的名字,--default-character-set=utf8,这句话一定的加
//我就是因为这句话没加导致程序运行成功,但是数据库里面的内容还是以前的内容,最好写上完成的sql放到cmd中一运行才知道报错了
//错误信息:
//mysql: Character set 'utf-8' is not a compiled character set and is not specified in the '
//C:\\Program Files\\MySQL\\MySQL Server 5.5\\share\\charsets\\Index.xml' file ERROR 2019 (HY000): Can't
// initialize character set utf-8 (path: C:\\Program Files\\MySQL\\MySQL Server 5.5\\share\\charsets\\),
//又是讨人厌的编码问题,在恢复的时候设置一下默认的编码就可以了。
Process process = runtime.exec("mysql -u root -p123456 --default-character-set=utf8 family");
OutputStream outputStream = process.getOutputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(path)));
String str = null;
StringBuffer sb = new StringBuffer();
while((str = br.readLine()) != null){
sb.append(str+"\\r\\n");
}
str = sb.toString();
System.out.println(str);
OutputStreamWriter writer = new OutputStreamWriter(outputStream,"utf-8");
writer.write(str);
writer.flush();
outputStream.close();
br.close();
writer.close();
}
}
分享到:
相关推荐
java备份与恢复mysql数据库,在网上很难找到相关的资源,所有笔者参照了一些资料,自己用MyEclipse写了一个,里面有源码,有详细的说明.
java备份与恢复MYSQL数据库,简单好用
Java在线备份和还原MySQL数据库,使用mysqldump命令实现备份,使用mysql命令实现的还原,具体大家看源代码吧,在还原的时候足足整了我一个下午才找到错误原因,源代码里面有写原因。大家看代码就知道了。
java 实现mysql 的备份与恢复,全部代码
用Java实现MySQL的备份与恢复
java实现对mysql数据库的备份与还原,可跨平台,windows与Linux通用,代码内含有利用注册表信息获取mysqldump命令实例
Java实现Mysql数据库完整、增量备份与还原
利用JDBC连接数据库,不依耐mysql的shell命令, 适合b/s 服务器备份
文件中包含两种备份恢复的方法,一种是用Runtime.getRuntime().exec方法来实现的,另一种方法是使用Apache的command-exec中的方法来实现的。个人使用的是第二种方法
java备份还原数据库
海量数据的备份和恢复,通过比较传统数据和海量数据的备份和恢复,加深理解。
主要介绍了如何通过java备份恢复mysql数据库,其实一般情况下通过bat或sh就可以,这里主要是介绍了java的实现思路,喜欢的朋友可以参考下
代码为springBoot下对mysql数据库进行备份与恢复,代码为本人项目使用,绝对可用,若有疑问,可联系
运用java程序的Runtime类来getRuntime,使用runtime的exec方法来调用cmd命令,使用cmd命令“mysqldump -u 用户名 -p密码 数据库名”来备份数据库,并使用流来保存备份文件到指定目录。
java版mysql备份恢复工具,绿色安装版
后台管理,用户权限管理,数据库备份和恢复,支付管理,站内信管理。 使用mysql ,java开发
Mysql数据库的备份与还原及时的进行数据库备份能减少数据丢失后恢复数据库的工作量
mysql,oracle,sqlserver三大数据库备份与还原,在src\test\Test.java里有用例。 DataBase dataBase = new DataBase(); //MySQL dataBase.setMysqlBinPath("D:/dump/bin"); dataBase.setBackPath("D:/dump/...
数据备份与恢复:定期备份图书信息和数据,确保数据的安全和可靠性。 用户权限管理:根据用户角色和权限设置,限制用户对信息的访问和操作。 数据存储和管理:将图书信息保存在数据库中,以便长期存储和管理。 ...
MySqlYog软件是纯JAVA编写的软件,可以运行于WINDOWS,LINUX,UNIX系统,基本版本可以实现对数据库的基本管理,可视化创建表,视图,触发器,数据库的热备份,恢复,可远程管理管理系统等功能,其他功能正在努力开发...