mysql java备份_Java备份MySQL

本文介绍如何在Java程序中使用mysqldump命令来备份MySQL数据库。重点在于处理命令行参数,尤其是密码的传递,以及解决在Windows环境下可能遇到的路径和环境变量问题。
摘要由CSDN通过智能技术生成

1 概述

使用java备份mysql数据库,主要是使用mysqldump与Runtime().getRuntime().exec().

2 创建备份路径

如果没有备份的存储路径首先创建路径.

Path path = Paths.get(xxxx);

try

{

Files.createDirectories(path);

}

catch(IOException e)

{

//xxxx

}

3 执行命令

如果是直接用shell执行的话:

mysqldump -u user_name -p database_name > xxxx\database_name.sql

使用-u与-p分别指定用户与密码,最后重定向到文件.

但是,要注意再java中用exec()时,千万千万不能使用-p选项,-p是交互式输入密码的,使用了-p的话导出的文件是0KB的,需要使用

--password

代替.

String command = "mysqldump -u user --password=xxxx > xxxx\\xxxx.sql"

要注意一下路径问题,另外,在windows下,需要使用cmd:

String command = "cmd /c mysqldump -u user --password=xxxx > xxxx\\xxxx.sql"

这需要把

%MYSQL_HOME%/bin

加入到环境变量,如果没有加入的话输入绝对路径:

String command = "cmd /c C:\\Program Files\\mysql\\bin\\mysqldump -u user --password=xxxx > xxxx\\xxxx.sql"

4 执行

try

{

Runtime.getRuntime().exec(command);

}

catch(IOException e)

{

//xxxx

}

5 其他问题

如果没有导出文件或者导出的文件为0KB,可能原因是:

语法错误:命令的空格使用不当,路径设置错误,使用了错误的参数等.

环境问题:如在windows下没有添加到环境变量,没有加上"cmd /c".

用户名/密码错误:这个....

权限问题:用户没有相应权限,要登陆到mysql中授权.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值