首先,设置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数据库相关推荐

  1. java备份还原mysql数据库_Java备份还原Mysql数据库

    ///实体类 package com.ews.util; /** * 系统备份展示对象 * * */ public class DataFile { private String fileName;/ ...

  2. C#备份还原MySql数据库

    原文:C#备份还原MySql数据库 项目结束,粘点代码出来让Google或Baidu一下,原因是现在还搜不到这么现成的 调用MySql的工具mysqldump来实现. 类Cmd来实现调用cmd命令, ...

  3. PHP 备份还原 MySql 数据库

    原生 PHP 备份还原 MySql 数据库 支持 MySql,PDO 两种方式备份还原 php5.5 以上的版本建议开启pdo扩展,使用 pdo 备份还原数据 备份文件夹 db_backup.impo ...

  4. xtrabackup备份还原MySQL数据库

    原文:xtrabackup备份还原MySQL数据库 mysqldump 备份鉴于其自身的某些特性(锁表,本质上备份出来insert脚本或者文本,不支持差异备份),不太适合对实时性要求比较高的情况 Xt ...

  5. linux怎么把mysql数据库备份还原,MySQL数据库备份和还原

    MySQL数据库备份和还原 打开cmd命令行,一定不是mysql的命令行,我第一次就错在这个地方,郁闷了很久 备份MySQL数据库的命令 mysqldump -hhostname -uusername ...

  6. mysql数据库特别大怎么备份_如何备份还原mysql数据库 mysql数据库太大备份与还原方法...

    本篇文章小编给大家分享一下mysql数据库太大备份与还原方法,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看. 命令:mysqlhotcopy 这个命令会在拷贝文件之前会把表锁 ...

  7. linux恢复mysql数据库_linux下如何备份还原mysql数据库

    本文介绍了linux下如何备份与恢复mysql数据库. 数据库备份是非常重要的.如果定期做好备份,这样就可以在发生系统崩溃时恢复数据到最后一次正常的状态,把损失减小到最少. 一. 用命令实现备份 My ...

  8. java备还原mysql_用java来备份还原mysql数据库

    一,先说说基础操作吧,这部分和java无关,只讲mysql的操作,也只讲在window环境下操作,linux下大体相同,自己百度吧. 1.如果用mysqldump,你需要安装mysql服务器,如果是l ...

  9. php mysql备份代码_PHP备份/还原MySQL数据库的代码

    以下是代码: 一.备份数据库并下载到本地[db_backup.php] // 设置SQL文件保存文件名 $filename=date("Y-m-d_H-i-s")."-& ...

最新文章

  1. 算法之------搜索篇
  2. java怎么看具体被挂起的线程_Java线程的挂起、恢复和终止
  3. ubuntu16.04安装Virtualbox
  4. Windows10 ISO下载
  5. mysql 怎么实现随机查询并分页,不重复查询
  6. 简单阐述下OC中UIImage三种创建方式~~~
  7. 有道词典Linux版下载安装
  8. 转!面向对象设计原则
  9. 工作中遇到的问题——数据库
  10. 使用hashcat获取哈希值
  11. cad画钟表_cad应用环形矩阵制作钟表盘
  12. 前端实现打印功能(纯前端实现)
  13. WifiRemoteStationManager中速率控制算法详解
  14. “大学生就业难”与IT外包服务带给我的启发
  15. Omni Core v0.11.0 rpc-api
  16. 注意力机制(attention)学习记录(二)
  17. 计算机基础知识(2)
  18. matlab 控制系统仿真实验代码
  19. MATLAB函数极限和微分运算
  20. 红米4X-ROOT-解锁

热门文章

  1. 支付宝最强薅羊毛教程!
  2. 深入SymbianOS
  3. 【深度学习】基于STL10数据集构建 图像去噪自编码网络 的实验
  4. NOVA温控器参数笔记(一)
  5. Houdini教程:程序化岩石(1)生成高模
  6. 【JEECG】Vue3-02Vite详细使用教程
  7. 蓝奏云盘v3.4.2突破限制上传多功能
  8. 【吴刚】字体设计与表现视频教程-吴刚-专题视频课程
  9. 计算机时代汉字书写有了新的方式,汉字书写将在手写电脑中复兴
  10. 几种性能自动化测试工具整理