时间:2021-07-01 10:21:17 帮助过:38人阅读
使用java备份mysql数据库,主要是使用mysqldump与Runtime().getRuntime().exec().
如果没有备份的存储路径首先创建路径.
- <code class="language-java">Path path = Paths.get(xxxx);
- try
- {
- Files.createDirectories(path);
- }
- catch(IOException e)
- {
- //xxxx
- }</code>
如果是直接用shell执行的话:
- <code class="language-bash">mysqldump -u user_name -p database_name > xxxx\database_name.sql</code>
使用-u与-p分别指定用户与密码,最后重定向到文件.
但是,要注意再java中用exec()时,千万千万不能使用-p选项,-p是交互式输入密码的,使用了-p的话导出的文件是0KB的,需要使用
- <code class="language-bash">--password</code>
代替.
- <code class="language-java">String command = "mysqldump -u user --password=xxxx > xxxx\\xxxx.sql"</code>
要注意一下路径问题,另外,在windows下,需要使用cmd:
- <code class="language-java">String command = "cmd /c mysqldump -u user --password=xxxx > xxxx\\xxxx.sql"</code>
这需要把
- <code>%MYSQL_HOME%/bin</code>
加入到环境变量,如果没有加入的话输入绝对路径:
- <code class="language-java">String command = "cmd /c C:\\Program Files\\mysql\\bin\\mysqldump -u user --password=xxxx > xxxx\\xxxx.sql"</code>
- <code class="language-java">try
- {
- Runtime.getRuntime().exec(command);
- }
- catch(IOException e)
- {
- //xxxx
- }</code>
如果没有导出文件或者导出的文件为0KB,可能原因是:
Java备份MySQL
标签:添加 exe 空格 dir 定向 files 交互式 str 数据库