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\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;    
    }     

你可能感兴趣的:(数据库,mysql,还原)