[code]
首先,设置mysql的环境变量(在path中添加%MYSQL_HOME%\bin),重启电脑。
完整代码:
[color=red]备份:[/color]
/**
* @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();
}

}

/**
* [color=red]导入[/color]
*
*/
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();
}

}

[color=red]备份语句:[/color]
mysql> SELECT * INTO OUTFILE "D:\\data\\db_testtemp.txt" fields terminated by ',
' from db_testtemp where std_state='1';
Query OK, 1 row affected (0.00 sec)

mysql> SELECT * INTO OUTFILE "D:\\data\\db_testtemp.txt" fields terminated by ',
' from db_testtemp ;
Query OK, 2 rows affected (0.00 sec)

只生成一个只有数据的.txt:SELECT * INTO OUTFILE "D:\\data\\db_testtemp.txt" fields terminated by ',' lines terminated by '\r\n' from db_testtemp ;

只生成一个只有数据的.txt:mysqldump -uroot -pncae2010 -w "std_state='1'" -T D:\data --no-create-info --fields-terminated-by=, exam db_testtemp

生成一个创建数据库语句的.sql,一个只有数据的.txt:mysqldump -uroot -pncae2010 -w "std_state='1'" -T D:\data --fields-terminated-by=, exam db_testtemp

只生成insert语句:mysqldump -uroot -pncae2010 -w "std_state='1'" -t exam db_testtemp > D:\data\a.sql

java mysql 备份相关推荐

  1. linux java mysql 备份 runtime_Linux下mysql定时备份脚本以及java实现

    sh脚本介绍 #!/bin/bash ####################################################### # crontab 定时备份########### ...

  2. linux java mysql 备份 runtime_Mysql如何在linux中实现定时备份

    在实际项目中,数据库是要经常备份的,就是为了防止突发情况,前段时间,我的数据库就遭遇了入侵要支付B特比的,结果数据全没了,哎,还好当时只是个测试库,不过有了这次危机,也就开始意识到了这个问题了. 先写 ...

  3. java mysql自动备份_java定时备份数据之二_MySQL

    以mysql为例: BackupDb.java数据库备份类: public class BackupDb { public static boolean sqlDump(String cmd,Stri ...

  4. java实现mysql备份_Java实现MySQL数据库备份

    在做项目的时候,我们经常会遇到的一个需求就是数据库备份.现在一个项目java+mysql+windows开发,接着我们来数据库备份的问题. 网上有很多例子,例如: 他们的这些程序不是能直接运行的,要把 ...

  5. java实现mysql增量备份_企业级MySQL备份原理

    企业级MYSQL备份恢复原理 1. 全量备份 全量数据就是数据库中所有的数据,全量备份就是把数据库中所有的数据进行备份. 例如: 备份所有库: # mysqldump -uroot -poldboy ...

  6. java web mysql备份,Java Web 实现Mysql 数据库备份与还原

    前段时间某某删库事故付出的惨重代价告诉我们: 数据备份的必要性是企业数据管理极其重要的一项工作. 1. Mysql备份与还原命令 备份命令: mysqldump -h127.0.0.1 -uroot ...

  7. MySQL备份恢复与日志

    MySQL 数据库的备份与恢复 1.1 备份数据的意义 第一是保护公司的数据,第二是网站7*24小时提供服务 1.2 备份单个数据库参数使用 MySQL数据库自带了一个很好用的备份命令,就是mysql ...

  8. windows下mysql备份

    windows下mysql备份 关键字: windows mysql 备份 一.单机备份 1.   ============================     假想环境:     MySQL 安 ...

  9. mysql 备份命令行_mysql命令行备份方法

    一.mysql备份 1.备份命令 格式:mysqldump -h主机IP -P端口 -u用户名 -p密码 --database 数据库名 > 文件名.sql # 本地备份可以不添加端口和主机IP ...

最新文章

  1. 最新视觉Transformer综述(2017-2020年)
  2. [译] 新一代 JavaScript 的开发图谱(2017)
  3. mysql 事务 查询 范围加锁_MySQL死锁系列-常见加锁场景分析
  4. attempt to create delete event with null entity
  5. 2018.12.18运算符,分支结构(循环),异常处理,函数
  6. dubbo实现原理之SPI简介
  7. MySql 应该选择普通索引 还是唯一 索引???
  8. v8声卡调音软件_声卡出现杂音怎么办?教你几招解决杂音问题
  9. 盒子模型(悬挂式布局)
  10. 最新亲测可用的免费google翻译api
  11. 笔记 时间2012年2月15日14:35:30
  12. Dhtmlx Gantt如何LightBox自定义表单元素
  13. 企业如何做好品牌推广工作?
  14. 中国-省-市三级地图及世界地图在线编辑可视化工具上线
  15. Doris源码解析[一、负载均衡]
  16. SAP S4 Material Management 库存模块 MARD 数据库表读取技术细节介绍
  17. windows server 2008r2 oracle11g安装
  18. 【数学】Frobenius介值定理:非负矩阵最大特征值的上下界
  19. 计算机的隐藏功能文字,键盘上那些隐藏的快捷键,内有彩蛋呦!
  20. 酷开会员丨酷开系统亲子频道,用心陪伴孩子成长!

热门文章

  1. librosa能量_librosa语音信号处理
  2. 北京大学2021年优秀中学生寒假学堂报名通知
  3. 华为P20PRO怎样开通云闪付_华为手机POS机云闪付操作流程和手机型号
  4. 停止招聘适合文化的人:获得所需人才的4种方法
  5. 【算法】位运算符基础之某CTF赛题使用Python与易语言纯算法还原
  6. 您的windows许可证即将过期 win10的解决办法
  7. 易地推拓客分享不提供真实信息想做好招生不容易
  8. 设置PPT的图标为内容首页的缩略图
  9. 61采访:在小朋友眼中,创业、当老板、做产品是什么鬼
  10. 拼图游戏c语言简单,(C语言拼图游戏.doc