java备份和恢复数据代码例子
2024-09-28 13:31:25
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();
}
}
最新文章
- LTE Manual ——Logging(翻译)
- Java事务处理全解析(五)—— Template模式
- 版本引发的血案check the manual that corresponds to your MySQL server version for the right syntax
- Eclipse配置PyDev插件
- ios7新增基础类库以及OC新特性
- MMU、Icache、Dcache
- 小游戏 Lights Out (关灯) 的求解 —— 异或方程组
- MYSQL 缓存详解 [myownstars] 经典博客
- grep 基于关键字搜索
- 6. SQL Server数据库监控 - 如何告警
- 如何添加在eclipse 中添加 window Builder
- C++中虚拟继承
- HTTP请求8种方法
- kubeadm安装kubernetes-v1.13.1
- windows 杀死进程
- Python 中的Duck Typing
- azkaban group分组,权限
- python3+requests+unittest:接口自动化测试(一)
- PeopleSoft 多套Web App Prcs交叉访问
- express 默认模板引擎