mysql还原sql文件到数据库

1、脚本实现
编写bat文件,使用windows定时任务定时执行还原。
bat文件如下:

@echo off
rem 转到mysql安装目录的bin文件夹
cd C:\Program Files\MySQL\MySQL Server 5.6\bin
rem %date%为获取当前日期
mysql.exe -uroot -p111111 db_seal_sys_wh<D:\ftp\db_seal_sys_wh.sql 

2、java代码实现
数据量太大时会内存溢出,可以增量备份后还原增量的二进制文件。

    /** 
     * 还原数据库 
     * @return 
     */  
    public static boolean importSql() {
        try {  
            String fPath = "c:/test/data1.sql";    
            Runtime rt = Runtime.getRuntime();    

            // 调用 mysql 的 cmd:    
            Process child = rt.exec("C:\\Program Files\\MySQL\\MySQL Server 5.6\\bin\\mysql -uroot -p111111 test ");    
            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();    
        }    
        return true;    
    }     
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值