数据备份方式千千万,这里介绍的是通过Java调用mysql命令行工具,实现数据库的备份,废话不多说,代码如下:
- command.append(" cmd /c c:\\mysqldump -u").append(username).append(" -p").append(password)//密码是用的小p,而端口是用的大P。
- .append(" -h").append(ip).append(" -P").append(port).append(" ").append(database).append(" -r \"").append(storePath+"\"");
-
- // Process process = Runtime.getRuntime().exec(command.toString(), null, new File(storePath));
- // process.waitFor();
- /**
- * 将文件拷贝到指定目录 指定执行命令
- * mysqldump.exe
- */
- log.debug("mysqldump -u"+username+" -p"+password+" -h"+ip+" -P"+port+" demo >d:/"+storeName);
- Process process = Runtime.getRuntime().exec("cmd /C mysqldump.exe目录 -u"+username+" -p"+password+" -h"+ip+" -P"+port+" demo >d:/"+storeName);
- InputStream is = process.getInputStream();
- process.waitFor();
- // Process process = Runtime.getRuntime().exec("cmd /c start /b C:\\可以使用.bat文件");
- // process.waitFor();
常见的 备份方式如下有多中,根据实际情况进行操作,执行java代码时一定注意执行文件的路径正确,我这里是window系统环境。Linux没试,不过大差不差,原理都一样,如果是异地备份,把本地路径改成映射的硬盘地址即可
在MySQL中提供了命令行导出数据库数据以及文件的一种方便的工具mysqldump,我们可以通过命令行直接实现数据库内容的导出dump,首先我们简单了解一下mysqldump命令用法:
#MySQLdump常用 mysqldump -u root -p --databases 数据库1 数据库2 > xxx.sql
1.备份全部数据库的数据和结构
mysqldump -uroot -p123456 -A > /data/mysqlDump/mydb.sql
2.备份全部数据库的结构(加 -d 参数)
mysqldump -uroot -p123456 -A -d > /data/mysqlDump/mydb.sql
3.备份全部数据库的数据(加 -t 参数)
mysqldump -uroot -p123456 -A -t > /data/mysqlDump/mydb.sql
4.备份单个数据库的数据和结构(,数据库名mydb)
mysqldump -uroot-p123456 mydb > /data/mysqlDump/mydb.sql
5. 备份单个数据库的结构
mysqldump -uroot -p123456 mydb -d > /data/mysqlDump/mydb.sql
6. 备份单个数据库的数据
mysqldump -uroot -p123456 mydb -t > /data/mysqlDump/mydb.sql
7. 备份多个表的数据和结构(数据,结构的单独备份方法与上同)
mysqldump -uroot -p123456 mydb t1 t2 > /data/mysqlDump/mydb.sql
8. 一次备份多个数据库
mysqldump -uroot -p123456 --databases db1 db2 > /data/mysqlDump/mydb.sql