Java实现MySQL数据库备份(一)
下班了,利用闲暇时间总结一下如何使用Java语言实现MySQL数据库备份:
- import java.io.BufferedReader;
- import java.io.File;
- import java.io.FileOutputStream;
- import java.io.IOException;
- import java.io.InputStreamReader;
- import java.io.OutputStreamWriter;
- import java.io.PrintWriter;
- /**
- * MySQL数据库备份
- *
- * @author GaoHuanjie
- */
- public class MySQLDatabaseBackup {
- /**
- * Java代码实现MySQL数据库导出
- *
- * @author GaoHuanjie
- * @param hostIP MySQL数据库所在服务器地址IP
- * @param userName 进入数据库所需要的用户名
- * @param password 进入数据库所需要的密码
- * @param savePath 数据库导出文件保存路径
- * @param fileName 数据库导出文件文件名
- * @param databaseName 要导出的数据库名
- * @return 返回true表示导出成功,否则返回false。
- */
- public static boolean exportDatabaseTool(String hostIP, String userName, String password, String savePath, String fileName, String databaseName) throws InterruptedException {
- File saveFile = new File(savePath);
- if (!saveFile.exists()) {// 如果目录不存在
- saveFile.mkdirs();// 创建文件夹
- }
- if(!savePath.endsWith(File.separator)){
- savePath = savePath + File.separator;
- }
- PrintWriter printWriter = null;
- BufferedReader bufferedReader = null;
- try {
- printWriter = new PrintWriter(new OutputStreamWriter(new FileOutputStream(savePath + fileName), "utf8"));
- Process process = Runtime.getRuntime().exec(" mysqldump -h" + hostIP + " -u" + userName + " -p" + password + " --set-charset=UTF8 " + databaseName);
- InputStreamReader inputStreamReader = new InputStreamReader(process.getInputStream(), "utf8");
- bufferedReader = new BufferedReader(inputStreamReader);
- String line;
- while((line = bufferedReader.readLine())!= null){
- printWriter.println(line);
- }
- printWriter.flush();
- if(process.waitFor() == 0){//0 表示线程正常终止。
- return true;
- }
- }catch (IOException e) {
- e.printStackTrace();
- } finally {
- try {
- if (bufferedReader != null) {
- bufferedReader.close();
- }
- if (printWriter != null) {
- printWriter.close();
- }
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- return false;
- }
- public static void main(String[] args){
- try {
- if (exportDatabaseTool("172.16.0.127", "root", "123456", "D:/backupDatabase", "2014-10-14.sql", "test")) {
- System.out.println("数据库成功备份!!!");
- } else {
- System.out.println("数据库备份失败!!!");
- }
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- }
- }
Java实现MySQL数据库备份(一)的更多相关文章
- Java实现MySQL数据库备份(二)
权声明:本文为博主原创文章,未经博主允许不得转载. 博客<Java实现MySQL数据库备份(一)>使用I/O流的方式实现了MySQL数据库的备份,这种方法比较繁杂,下面介绍另一种备份MyS ...
- Java实现mysql数据库备份
Runtime是一个与JVM运行时环境有关的类,这个类是Singleton的. Runtime.getRuntime()可以取得当前JVM的运行时环境,这也是在Java中唯一一个得到运行时环境的方法. ...
- Java达到MySQL数据库备份(两)
博客<Java实现MySQL数据库备份(一)>使用I/O流的方式实现了MySQL数据库的备份,这样的方法比較繁杂.以下介绍还有一种备份MySQL数据库的方法: import java.io ...
- java 实现mysql数据库备份
package com.itenp.gen.action; import java.io.BufferedReader; import java.io.FileInputStream; import ...
- JSP 实现 之 调用java方法实现MySQL数据库备份和恢复
package cn.qm.db; import java.io.BufferedReader; import java.io.DataInputStream; import java.io.IOEx ...
- Java连接mysql数据库攻略
一. 软件下载 Mysql 下载版本:4.1.11 http://dev.mysql.com/downloads/mysql/4.1.html JDBC驱动 下载版本:3.1.8 http://dev ...
- Xtrabackup原理及使用innobackupex进行MySQL数据库备份恢复
Xtrabackup是由percona提供的mysql数据库备份工具,据官方介绍,这也是世界上惟一一款开源的能够对innodb和xtradb数据库进行热备的工具. Xtrabackup中主要包含两个工 ...
- TODO:MongoDB MySQL数据库备份
TODO:MongoDB MySQL数据库备份 1. MongoDB使用命令备份 mongodump进行整个数据库备份,主要用到的命令参数: -d 要备份的数据库 -o 输出的路径 ./mongodu ...
- Java实现MySQL数据库导入
距离上班还有一段时间.现在总结一下如何使用Java语言实现MySQL数据库导入: 首先新建名为test的数据库: 其次执行下面Java代码: import java.io.File; import j ...
随机推荐
- OpenVPN使用用户名/密码验证方式
OpenVPN推荐使用证书进行认证,安全性很高,但是配置起来很麻烦.还好它也能像pptp等vpn一样使用用户名/密码进行认证. 不管何种认证方式,服务端的ca.crt, server.crt, ser ...
- JavaScript深入浅出6-函数和作用域
慕课网教程视频地址:Javascript深入浅出 函数的概念:定义一次可调用多次的javascript代码段 创建函数:声明 function fuc(){} 声明前置 表达式 var fuc= ...
- discuz上传图片提示附件文件无法保存
两个可能: 1. 服务器文件夹权限不足 discuz附件保存在./data/attachments下,data文件夹的属性要求必须为777 #cd到data的上一级目录然后执行: data 2. 附件 ...
- 【目录】linux
linux 学习1 学习2 学习3 学习4 学习5 学习6 学习7 jdk安装 配置SSH免密码登陆 linux下运行java程序
- LeetCode——Best Time to Buy and Sell Stock I (股票买卖时机问题1)
问题: Say you have an array for which the ith element is the price of a given stock on day i. If you w ...
- 2015年ACM沈阳网络赛(准备做掉4道:)
Traversal Best Solver Minimum Cut Dividing This Product Excited Database Fang Fang Matches Puzzle Ga ...
- wenbenfenlei
ICTCLAS: 该分词系统的主要思想是先通过CHMM(层叠形马尔可夫模型)进行分词,通过分层,既增加了分词的准确性,又保证了分词的效率.基本思路是:先进行原子切分,然后在此基础上进行N-最短路径粗切 ...
- linux 查看Java 进程的内存使用情况
top -b -n 1 | grep java| awk '{print "PID:"$1",mem:"$6",CPU percent:"$ ...
- mysql解压版安装
1.下载MySQL解压版(32位) http://dev.mysql.com/downloads/mysql/
- python中获取指定目录下所有文件名列表的程序
http://blog.csdn.net/rumswell/article/details/9818001 # -*- coding: utf-8 -*-#~ #------------------- ...