Java备份MySQL

1 概述

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

2 创建备份路径

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

1Path path = Paths.get(xxxx); 2try 3{ 4 Files.createDirectories(path); 5} 6catch(IOException e) 7{ 8 //xxxx 9}

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 执行

1try 2{ 3 Runtime.getRuntime().exec(command); 4} 5catch(IOException e) 6{ 7 //xxxx 8}

5 其他问题

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

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

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )

Python3:sqlalchemy对mysql数据库操作,非sql语句

Python3:sqlalchemy对mysql数据库操作,非sql语句python3authorlizmdatetime2018020110:00:00coding:utf8'''

KVM调整cpu和内存

一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid

Java备份MySQL - HelloWorld