当前位置:Gxlcms > 数据库问题 > Java备份MySQL

Java备份MySQL

时间:2021-07-01 10:21:17 帮助过:38人阅读

1 概述

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

2 创建备份路径

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

  1. <code class="language-java">Path path = Paths.get(xxxx);
  2. try
  3. {
  4. Files.createDirectories(path);
  5. }
  6. catch(IOException e)
  7. {
  8. //xxxx
  9. }</code>

3 执行命令

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

  1. <code class="language-bash">mysqldump -u user_name -p database_name > xxxx\database_name.sql</code>

使用-u与-p分别指定用户与密码,最后重定向到文件.
但是,要注意再java中用exec()时,千万千万不能使用-p选项,-p是交互式输入密码的,使用了-p的话导出的文件是0KB的,需要使用

  1. <code class="language-bash">--password</code>

代替.

  1. <code class="language-java">String command = "mysqldump -u user --password=xxxx > xxxx\\xxxx.sql"</code>

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

  1. <code class="language-java">String command = "cmd /c mysqldump -u user --password=xxxx > xxxx\\xxxx.sql"</code>

这需要把

  1. <code>%MYSQL_HOME%/bin</code>

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

  1. <code class="language-java">String command = "cmd /c C:\\Program Files\\mysql\\bin\\mysqldump -u user --password=xxxx > xxxx\\xxxx.sql"</code>

4 执行

  1. <code class="language-java">try
  2. {
  3. Runtime.getRuntime().exec(command);
  4. }
  5. catch(IOException e)
  6. {
  7. //xxxx
  8. }</code>

5 其他问题

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

  • 语法错误:命令的空格使用不当,路径设置错误,使用了错误的参数等.
  • 环境问题:如在windows下没有添加到环境变量,没有加上"cmd /c".
  • 用户名/密码错误:这个....
  • 权限问题:用户没有相应权限,要登陆到mysql中授权.

Java备份MySQL

标签:添加   exe   空格   dir   定向   files   交互式   str   数据库   

人气教程排行