Linux/Windows备份数据库

使用场景基于SpringBoot

简单的记录下,比较粗糙

工具类

public static int backupMysql(String host,String root,String pwd,String dbName,String backup) throws IOException, InterruptedException {
        String[] cmd = new String[3];
        cmd[0] = "/bin/sh";
        cmd[1] = "-c";
        StringBuffer sb = new StringBuffer();
        sb.append("-h").append(host).
                append(" -u").append(root)
                .append(" -p").append(pwd)
                .append(" ")
                .append(dbName)
                .append(" > ")
                .append(backup);
        System.out.println("sb.toString() = " + sb.toString());
        cmd[2] = sb.toString();
        Process proc = Runtime.getRuntime().exec(cmd);
        int i = proc.waitFor();
        System.out.println("i = " + i);
        return i;
    }
	//判断系统是否是Linux(这个没有使用到)
    public static boolean isLinuxSystem(){
        if(System.getProperty("os.name").toLowerCase().contains("linux")){
            System.out.println("true = " + true);
            return true;
        }
        System.out.println(" = " + false);
        return false;
    }

测试

public static void main(String[] args) throws IOException, InterruptedException {

        int i = backupMysql("192.168.50.128", "root", "admin123", "lyrsjf", "/home/" + System.currentTimeMillis() + ".sql");
        System.out.println("issss = " + i);

        /*String[] cmd = { "/bin/sh", "-c", "mysqldump -192.168.50.128 -uroot -padmin123 lyrsjf > /home/lyrsjf000001.sql" };
        Process proc = Runtime.getRuntime().exec(cmd);*/

        /*//这个是windows备份数据库,写的时间太长了,有点忘了
        String host = "192.168.50.128";
        // 数据库用户名
        String username = "root";
        // 数据库密码
        String password = "admin123";
        // 数据库名称
        String dbName = "lyrsjf";
        // 备份路径
        String filePath = "D:/lyrsjf.sql";
        String[] sb = new String[3];
        sb[0] = "/bin/sh";
        sb[1] = "-c";
        sb[2] = "mysqldump -h192.168.50.128 -uroot -padmin123 lyrsjf -r D:/lyrsjf.sql";
        // 执行mysqldump命令
//        String command = String.format(" mysqldump -h%s -u%s -p%s %s -r %s",host, username, password, dbName, filePath);
        try {
            System.out.println("command = " + sb);
            Process process = Runtime.getRuntime().exec(sb);
            process.waitFor();
            System.out.println("MySQL数据库备份成功!");
        } catch (Exception e) {
            e.printStackTrace();
        }*/
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值