Java操作Linux指令,实现恢复、备份MySQL数据库
备份数据库指令:
mysqldump -h127.0.0.1 -uroot -p123456 test > d:/test.sql ---备份test数据库到 D 盘
恢复数据库指令
mysql -h127.0.0.1 -uroot -p123456 test< test.sql ---将D备份的数据库脚本,恢复到数据库中(数据库要存在!)
在 cmd
或者 shell
调用命令行,其实是调用 MySQL
安装路径下面的 bin
目录下面的 msqldump.exe
和 mysql.exe
来完成相应的工作。
下面是使用 Java
代码实现在 Linux
端调用指令:
import java.io.*;
import java.text.SimpleDateFormat;
import java.util.Date;public class DbOperate {public static void dbBackUp(String root, String pwd, String dbName, String backPath, String backName) throws Exception {String pathSql = backPath + backName;File fileSql = new File(pathSql);if (!fileSql.exists()){fileSql.createNewFile();}StringBuffer sb = new StringBuffer();sb.append("mysqldump");sb.append(" -h127.0.0.1");sb.append(" -P3306");sb.append(" -u" + root);sb.append(" -p" + pwd);sb.append(" " + dbName + ">");sb.append(pathSql);System.out.println("cmd命令为:" + sb.toString());Runtime runtime = Runtime.getRuntime();System.out.println("开始备份:" + dbName);String[] command = {"/bin/sh", "-c", sb.toString()};
// Process process = runtime.exec("/bin/sh -c " + sb.toString());Process process = runtime.exec(command);System.out.println(process.waitFor());System.out.println("备份成功!!!!!");}public static void dbRestore(String root, String pwd, String dbName, String filePath){StringBuffer sb = new StringBuffer();sb.append("mysql");sb.append(" -h127.0.0.1");sb.append(" -P3306");sb.append(" -u" + root);sb.append(" -p" + pwd);sb.append(" " + dbName + "<");sb.append(filePath);System.out.println("cmd命令为:" + sb.toString());Runtime runtime = Runtime.getRuntime();System.out.println("开始恢复:" + dbName);try {String[] command = {"/bin/sh", "-c", sb.toString()};Process process = runtime.exec(command);//Process process = runtime.exec("/bin/sh -c " + sb.toString());InputStream is = process.getInputStream();BufferedReader bf = new BufferedReader(new InputStreamReader(is, "utf8"));String line = null;while ((line = bf.readLine()) != null){System.out.println(line);}is.close();bf.close();}catch (IOException e){e.printStackTrace();}System.out.println("还原成功!!!!!");}public static void main(String[] args) throws Exception {String backName = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss").format(new Date()) + ".sql";//DbOperate.dbBackUp("root", "root", "db_other", "/hadoop/", backName);DbOperate.dbRestore("root", "root", "db_sssss", "/hadoop/2021-11-30-11-41-25.sql");}
}
经过测试,必须将 command
放到一个数组里面,才能将指令执行成功
linux下:
String[] command = { "/bin/sh", "-c", command };Process ps = Runtime.getRuntime().exec(command );
windows下:
String[] command = { "cmd", "/c", command};Process ps = Runtime.getRuntime().exec(command );
参考文献1
参考文献2
参考文献3
Java操作Linux指令,实现恢复、备份MySQL数据库相关推荐
- Linux服务器上备份mysql数据库(详细教程)
废话不多说,直接上教程 首先使用 mysql -V 查看服务器是否安装了mysql,没有一定要安装,因为脚本编写中需要mysql命令进行备份. 安装详细教程请移步看:Linux服务器装mysql数 ...
- mysql设置停止二进制文件的操作_window下使用二进制文件对mysql数据库备份及恢复(再现用户操作)...
1,查看二进制日志文件是否启用 mysql>show variables like 'log_bin'; 如果未启用,则启用二进制文件(默认是关闭的 ) 2,在mysql的配置文件[mysqld ...
- linux备份mysql怎样操作,Linux下自动备份MySQL数据库详细操作步骤(转载)
环境说明 操作系统:CentOS IP:192.168.150.214 Oracle数据库版本:Oracle11gR2 用户:root 密码:123456 端口:3306 数据库:ts_0.ts_1. ...
- atitit.跨语言实现备份mysql数据库 为sql文件特性 api 兼容性java c#.net php js
atitit.跨语言实现备份mysql数据库 为sql文件特性 api 兼容性java c#.net php js 1. 两个方法:: bat vs mysqldump(推荐) vs lang ...
- linux php mysqldump,Linux Shell脚本之利用mysqldump备份MySQL数据库(详细注解)
利用mysqldump命令备份MySQL数据库的脚本(不带注释版,适合生产环境使用) 设计该脚本的一些设计.编写考虑: 利用mysqldump命令备份MySQL数据库的脚本(不带注释版,适合生产环境使 ...
- java操作linux命令
java命令操作linux指令 参考 import java.io.*; public class Test{public static void main(String[] args) throws ...
- Java调用linux指令工具类,直接执行cmd,执行grep指令返回结果,执行sed追加指令,hdfs下载指令,获取文件行数
Java调用linux指令工具类,直接执行cmd,执行grep指令返回结果,执行sed追加指令,hdfs下载指令,获取文件行数 问题背景 LinuxUtils工具类 Lyric:梦想挟带眼泪 问题背景 ...
- linux定时备份数据库到远程ftp,Linux下自动备份MySQL数据库并上传到远程FTP服务器...
Linux下自动备份MySQL数据库并上传到远程FTP服务器且删除指定日期前的备份Shell脚本 说明: 1.备份MySQL数据库存放目录/var/lib/mysql下面的xshelldata数据库到 ...
- Linux自动备份MySQL数据库脚本代码
Linux自动备份MySQL数据库脚本代码 下面这段Linux的Shell脚本用于每日自动备份MySQL数据库,可通过Linux的crontab每天定时执行 在脚本中可设置需要备份的数据库表清单,并且 ...
最新文章
- python三酷猫_洛克王国三代酷猫登场 冰水酷猫解析
- 知识蒸馏 knowledge distill 相关论文理解
- 街舞中的rolling机器人_首家!爆点!奈雪の茶、蛙小侠..开业倒计时!街舞PK…这个六一就差你来围观了...
- android录音播放并上传
- while (n-- > 0) 的用法
- 枚举+贪心--经常用到的思路--过程不好弄是--枚举结果C. Elections
- 小程序获取用户信息 php发送数据库,qq小程序如何获取用户信息并存入数据库实例...
- Windows server 2019 - Raid1 搭建+测试
- SI4463 空中唤醒教程
- 联想服务器修改开机密码,联想电脑怎么修改开机密码
- php批量发邮件,使用phpmailer发送批量邮件
- 裸辞闹了个乌龙,就当做个题提升自己吧
- 中国象棋总体设计 中国象棋课设02
- amazing,盗走女友微信后,竟在微信号里看见了……
- plantuml样式_PlantUML之活动图
- android获取键盘状态,Android获取屏幕方向及键盘状态的小例子
- 二级python——绘制七彩圆圈
- 基于WIA的QT扫描仪程序
- 论项目管理与可行性分析的重要性
- 直流无刷电机的好处与坏处
热门文章
- java编写的计算器要怎么运行_怎么用java编写一个计算器
- net-java-php-python-个人财物管理系统计算机毕业设计程序个人财物管理系统计算机毕业设计程序
- C语言结构体struct详解与实例
- 使用PHP免费发送定时短信
- python token过期_请求时token过期自动刷新token
- 苹果系统不能安装网上下载的软件怎么办?
- 如何使用3DVIZ(或3DMAX)创建地形对象?
- oracle新增id怎么写,oracle插入数据时自增ID的解决思路
- cdn.jsdelivr.net无法访问【记录】
- vim vi操作文件