java备份mysql数据库操作案例

3 篇文章 0 订阅
import io.swagger.annotations.Api;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.io.File;
import java.time.LocalDateTime;

/**
 * @author :jerry
 * @date :Created in 2022/11/10 19:14
 * @description:
 * @version: V1.1
 */
public class DbBaseController {

    private static String backupPath="/Users/jerry/fsdownload";       //保存文件目录
    private static String dataName="test";    //数据库名
    private static String mysqldumpPath="mysqldump";            
    private static String username="root";            //数据库用户名
    private static String password="123456";            //数据库密码
    private static String prot="3306";            //数据库端口
    private static String ip="10.17.64.208";        //数据库安装的主机IP

    public static void dbBack() {
        File file = new File(backupPath);
        if (!file.exists()) {
            file.mkdirs();
        }
        String fileName = backupPath + "/" + dataName+System.currentTimeMillis() + ".sql";
        /** 默认使用linux*/
        //String cmdPrefix = "/bin/sh -c ";
        String c1 = "/bin/sh";
        String c2 = "-c";
        String os_name = System.getProperty("os.name");
        // 判断是否是windows系统
        if (os_name.toLowerCase().startsWith("win")){
            //cmdPrefix = "cmd /c ";
            c1 = "cmd";
            c2 = "/c";
        }

        String cmd = mysqldumpPath
                + " -u" + username
                + " -p" + "'" + password + "'"
                + " -h"+ip
                + " -P" + prot
                + " " + dataName
                + " > " + fileName;                   // 最终写入的文件路径
        try {
            log.info("数据库备份START" + LocalDateTime.now());
            /**
             * exec重载方法有一个参数的,window下执行正常,linux下无法完成备份。
             * 使用多参数重载方法都可以正常备份
             */
            Process process = Runtime.getRuntime().exec(new String[]{c1, c2, cmd});
            process.waitFor();
            log.info("数据库备份END" + LocalDateTime.now());
        } catch (Exception e) {
            e.printStackTrace();
            log.error("数据库备份失败:{}", e.getMessage());
        }
    }

    public static void main(String[] args) {
        dbBack();
    }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用以下步骤来实现Java语言备份MySQL数据库: 1. 导入MySQL JDBC驱动程序 Java程序需要使用MySQL JDBC驱动程序来连接和操作MySQL数据库。可以从MySQL官方网站下载并导入驱动程序。 2. 创建连接 使用JDBC驱动程序创建与MySQL数据库的连接。可以使用以下代码来创建连接: ``` String driver = "com.mysql.jdbc.Driver"; String url = "jdbc:mysql://localhost:3306/mydatabase"; String user = "root"; String password = "mypassword"; Class.forName(driver); Connection conn = DriverManager.getConnection(url, user, password); ``` 其中,`driver`是JDBC驱动程序的类名,`url`是连接字符串,`user`和`password`是数据库的用户名和密码。 3. 执行备份命令 使用Java程序执行备份命令。可以使用以下代码来执行备份命令: ``` String backupPath = "/path/to/backup.sql"; String command = "mysqldump --opt --user=" + user + " --password=" + password + " --host=localhost mydatabase > " + backupPath; Process process = Runtime.getRuntime().exec(command); int exitStatus = process.waitFor(); if(exitStatus == 0) { System.out.println("Backup successful"); } else { System.out.println("Backup failed"); } ``` 其中,`backupPath`是备份文件的路径,`command`是备份命令。使用`Runtime.getRuntime().exec()`方法执行命令,并使用`process.waitFor()`方法等待命令执行完成。 4. 关闭连接 备份完成后,使用Java程序关闭与MySQL数据库的连接。可以使用以下代码来关闭连接: ``` conn.close(); ``` 这些步骤可以实现Java语言备份MySQL数据库。需要注意的是,备份命令需要正确设置MySQL用户名、密码、主机和数据库名称。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值