java备份还原mysql数据库
首先,设置mysql的环境变量(在path中添加%MYSQL_HOME%/bin),重启电脑。
完整代码:
/**
* @param args
*/
public static void main(String[] args) {
/*
* 备份和导入是一个互逆的过程。
* 备份:程序调用mysql的备份命令,读出控制台输入流信息,写入.sql文件;
* 导入:程序调用mysql的导入命令,把从.sql文件中读出的信息写入控制台的输出流
* 注意:此时定向符">"和"<"是不能用的
*/
backup();
load();
}
/**
* 备份检验一个sql文件是否可以做导入文件用的一个判断方法:把该sql文件分别用记事本和ultra
* edit打开,如果看到的中文均正常没有乱码,则可以用来做导入的源文件(不管sql文件的编码格式如何,也不管db的编码格式如何)
*/
public static void backup() {
try {
Runtime rt = Runtime.getRuntime();
// 调用 mysql 的 cmd:
Process child = rt
.exec("mysqldump -u root --set-charset=utf8 bjse act_obj");// 设置导出编码为utf8。这里必须是utf8
// 把进程执行中的控制台输出信息写入.sql文件,即生成了备份文件。注:如果不对控制台信息进行读出,则会导致进程堵塞无法运行
InputStream in = child.getInputStream();// 控制台的输出信息作为输入流
InputStreamReader xx = new InputStreamReader(in, "utf8");// 设置输出流编码为utf8。这里必须是utf8,否则从流中读入的是乱码
String inStr;
StringBuffer sb = new StringBuffer("");
String outStr;
// 组合控制台输出信息字符串
BufferedReader br = new BufferedReader(xx);
while ((inStr = br.readLine()) != null) {
sb.append(inStr + "/r/n");
}
outStr = sb.toString();
// 要用来做导入用的sql目标文件:
FileOutputStream fout = new FileOutputStream(
"e:/mysql-5.0.27-win32/bin/bjse22.sql");
OutputStreamWriter writer = new OutputStreamWriter(fout, "utf8");
writer.write(outStr);
// 注:这里如果用缓冲方式写入文件的话,会导致中文乱码,用flush()方法则可以避免
writer.flush();
// 别忘记关闭输入输出流
in.close();
xx.close();
br.close();
writer.close();
fout.close();
System.out.println("/* Output OK! */");
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 导入
*
*/
public static void load() {
try {
String fPath = "e:/mysql-5.0.27-win32/bin/bjse22.sql";
Runtime rt = Runtime.getRuntime();
// 调用 mysql 的 cmd:
Process child = rt.exec("mysql -u root bjse ");
OutputStream out = child.getOutputStream();//控制台的输入信息作为输出流
String inStr;
StringBuffer sb = new StringBuffer("");
String outStr;
BufferedReader br = new BufferedReader(new InputStreamReader(
new FileInputStream(fPath), "utf8"));
while ((inStr = br.readLine()) != null) {
sb.append(inStr + "/r/n");
}
outStr = sb.toString();
OutputStreamWriter writer = new OutputStreamWriter(out, "utf8");
writer.write(outStr);
// 注:这里如果用缓冲方式写入文件的话,会导致中文乱码,用flush()方法则可以避免
writer.flush();
// 别忘记关闭输入输出流
out.close();
br.close();
writer.close();
System.out.println("/* Load OK! */");
} catch (Exception e) {
e.printStackTrace();
}
}
java备份还原mysql数据库相关推荐
- java备份还原mysql数据库_Java备份还原Mysql数据库
///实体类 package com.ews.util; /** * 系统备份展示对象 * * */ public class DataFile { private String fileName;/ ...
- C#备份还原MySql数据库
原文:C#备份还原MySql数据库 项目结束,粘点代码出来让Google或Baidu一下,原因是现在还搜不到这么现成的 调用MySql的工具mysqldump来实现. 类Cmd来实现调用cmd命令, ...
- PHP 备份还原 MySql 数据库
原生 PHP 备份还原 MySql 数据库 支持 MySql,PDO 两种方式备份还原 php5.5 以上的版本建议开启pdo扩展,使用 pdo 备份还原数据 备份文件夹 db_backup.impo ...
- xtrabackup备份还原MySQL数据库
原文:xtrabackup备份还原MySQL数据库 mysqldump 备份鉴于其自身的某些特性(锁表,本质上备份出来insert脚本或者文本,不支持差异备份),不太适合对实时性要求比较高的情况 Xt ...
- linux怎么把mysql数据库备份还原,MySQL数据库备份和还原
MySQL数据库备份和还原 打开cmd命令行,一定不是mysql的命令行,我第一次就错在这个地方,郁闷了很久 备份MySQL数据库的命令 mysqldump -hhostname -uusername ...
- mysql数据库特别大怎么备份_如何备份还原mysql数据库 mysql数据库太大备份与还原方法...
本篇文章小编给大家分享一下mysql数据库太大备份与还原方法,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看. 命令:mysqlhotcopy 这个命令会在拷贝文件之前会把表锁 ...
- linux恢复mysql数据库_linux下如何备份还原mysql数据库
本文介绍了linux下如何备份与恢复mysql数据库. 数据库备份是非常重要的.如果定期做好备份,这样就可以在发生系统崩溃时恢复数据到最后一次正常的状态,把损失减小到最少. 一. 用命令实现备份 My ...
- java备还原mysql_用java来备份还原mysql数据库
一,先说说基础操作吧,这部分和java无关,只讲mysql的操作,也只讲在window环境下操作,linux下大体相同,自己百度吧. 1.如果用mysqldump,你需要安装mysql服务器,如果是l ...
- php mysql备份代码_PHP备份/还原MySQL数据库的代码
以下是代码: 一.备份数据库并下载到本地[db_backup.php] // 设置SQL文件保存文件名 $filename=date("Y-m-d_H-i-s")."-& ...
最新文章
- 算法之------搜索篇
- java怎么看具体被挂起的线程_Java线程的挂起、恢复和终止
- ubuntu16.04安装Virtualbox
- Windows10 ISO下载
- mysql 怎么实现随机查询并分页,不重复查询
- 简单阐述下OC中UIImage三种创建方式~~~
- 有道词典Linux版下载安装
- 转!面向对象设计原则
- 工作中遇到的问题——数据库
- 使用hashcat获取哈希值
- cad画钟表_cad应用环形矩阵制作钟表盘
- 前端实现打印功能(纯前端实现)
- WifiRemoteStationManager中速率控制算法详解
- “大学生就业难”与IT外包服务带给我的启发
- Omni Core v0.11.0 rpc-api
- 注意力机制(attention)学习记录(二)
- 计算机基础知识(2)
- matlab 控制系统仿真实验代码
- MATLAB函数极限和微分运算
- 红米4X-ROOT-解锁