通过java备份恢复mysql数据库的实现代码_java

复制代码 代码如下:

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();
    }
}

时间: 2024-09-23 23:23:17

通过java备份恢复mysql数据库的实现代码_java的相关文章

使用mysql workbench图形化备份恢复mysql数据库

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 本文简要介绍一个简单好用的图形界面备份恢复mysql数据库的方法,使用workbench图形界面进行mysql数据库恢复备份.对那些不喜欢使用命令行的朋友相信有帮助. workbench是mysqlAB公司出的一款可视化操作mysql的工具,对于习惯使用windows图形化界面操控的用户来说,这是一个非常好的工具.当然还有一款大家很熟悉的基于

妙用phpMyBackupPro备份恢复Mysql数据库

phpMyBackupPro 是一个一个专业的MySql备份工具.可以备份多服务器.多数据库,可以将数据备份 到ftp或email,可以自动备份.可以设置备份的计划任务,可以还原数据库.在线执行SQL语句, 生成 UTF-8格式的文档. phpMyBackupPro简介 主要特点: 1.可以选择备份一个或几个数据库,并可以选择是只备份表格结构还是包含数据. 2.支持三种压缩类型(不压缩,gzip和zip). 3.按计划自动备份. 4.提供一个备份管理界面(查看,恢复,下载,删除). 5.可直接备

linux中mydumper 多线程快速备份,恢复mysql数据库

mydumper 安装 1.先安装cmake,因为这个软件要用cmake编译  代码如下 复制代码 # apt-get install cmake 2.接下来安装mydumper兼容包,这个很关键,因为根据官网文档,centos/redhat等其他系统需要的包名是不同的,可根据实际系统去查阅官网资料:  代码如下 复制代码 # apt-get install libglib2.0-dev libmysqlclient15-dev zlib1g-dev libpcre3-dev 3.下载源码安装包

如何用PHP的页面备份、恢复Mysql数据库中的数据表

mysql|备份|恢复|数据|数据库|页面 <?           //备份数据       $i   =   0;       $crlf="\r\n";       $dbname="xgtqr";       global     $dbconn;       $dbconn   =   mysql_connect("localhost","root","root");       $db  

linux下如何备份还原mysql数据库

本文介绍了linux下如何备份与恢复mysql数据库. 数据库备份是非常重要的.如果定期做好备份,这样就可以在发生系统崩溃时恢复数据到最后一次正常的状态,把损失减小到最少. 一. 用命令实现备份 MySQLl提供了一个mysqldump命令,我们可以用它进行数据备份. 按提示输入密码,这就把tm数据库所有的表结构和# mysqldump -u root -p tm > tm_050519.sql数据备份到tm_050519.sql了,因为要总进行备份工作,如果数据量大会占用很大空间,这时可以利用

通过binlog恢复mysql数据库

在上一篇文章,我们讲解了有关mysql的binlog日志的基础知识.这篇文章,我们来讲解如何通过mysql的binlog日志来恢复数据库. 在使用binlog日志来恢复数据库之前,我们有一些前提工作需要做.步骤如下: 1.创建新的数据库ailanni 2.创建新的表ilannitable 3.向表ilannitable插入数据 4.刷新mysqlbin日志 5.完整备份ailanni数据库 6.删除表ilannitable插入的部分数据 7.删除数据库ailanni 8.各个binlog日志的内

xtrabackup备份还原MySQL数据库

原文:xtrabackup备份还原MySQL数据库   mysqldump 备份鉴于其自身的某些特性(锁表,本质上备份出来insert脚本或者文本,不支持差异备份),不太适合对实时性要求比较高的情况Xtrabackup可以解决mysqldump存在的上述的一些问题,生产环境应用的也会更多一些.本文简单测试一下Xtrabackup对MySQL数据库的备份还原操作. 本着先把功能先撸起来再深入细节的原则,粗略地实现了一个备份还原,并未深入细节. 网上有不少xtrabackup的文章,因为环境不一样,

自动恢复MySQL数据库的日志文件思路分享及解决方案_Mysql

如果MySQL服务器启用了二进制日志,你可以使用mysqlbinlog工具来恢复从指定的时间点开始 (例如,从你最后一次备份)直到现在或另一个指定的时间点的数据."mysqlbinlog:用于处理二进制日志文件的实用工具". 要想从二进制日志恢复数据,你需要知道当前二进制日志文件的路径和文件名.一般可以从选项文件(即my.cnf or my.ini,取决于你的系统)中找到路径.如果未包含在选项文件中,当服务器启动时,可以在命令行中以选项的形式给出.启用二进制日志的选项为 --log-b

Linux上通过binlog文件恢复mysql数据库详细步骤_Mysql

 一.binlog 介绍 服务器的二进制日志记录着该数据库的所有增删改的操作日志(前提是要在自己的服务器上开启binlog),还包括了这些操作的执行时间.为了显示这些二进制内容,我们可以使用mysqlbinlog命令来查看. 用途1:主从同步 用途2:恢复数据库(也是线上出现一次数据库文件丢失后,才对这个有所了解并学习的) mysqlbinlog命令用法:shell> mysqlbinlog [options] log_file ... <!--[if !supportLists]-->