java 代码判断Mysql服务是否开启
来源:互联网 发布:apache post请求 编辑:程序博客网 时间:2024/05/24 23:15
先啰嗦一下,为什么要监听mysql服务是否开启。也不知道为什么,我们服务器上的mysql服务总是自动的就关闭了,我们要调用接口不停低向数据库中插入数据,如果mysql服务停止了,而调用接口的程序还在一直运行,那么获取的实时数据就不能插入数据库了,所以要来监听一下mysql服务是否停止了。如果mysql服务停止了,就做出相应的操作,即让程序停止,不在向数据库中插入数据直到mysql服务启动。
废话不多说上代码
package cn.com.dekn.client.webservice.tblsavevehicleweight.util;import java.io.IOException;import java.io.InputStream;public class JudgeMysqlIsOpen { public static String getInfoMySqlIsOpen(){ Process p = null; try{// p = new ProcessBuilder("mysqladmin","-u yonghu -h 192.168.1.86 -p123456 -P 8806 ping").start();// p = new ProcessBuilder("mysqladmin -u -h -p -P","yonghu","192.168.1.86","123456", "8806","ping").start(); //访问运程服务器上的mysql// p = new ProcessBuilder("mysqladmin","-uyonghu","-h192.168.1.86","-p123456", "-P8806", "ping").start(); //访问本地的mysql p = new ProcessBuilder("mysqladmin","-uroot","-proot","ping").start(); }catch(IOException e){ return "获取mysql是否停止异常"; } byte[] b = new byte[1024]; int readbytes = -1; StringBuffer sb = new StringBuffer(); //读取进程输出值 //在JAVA IO中,输入输出是针对JVM而言,读写是针对外部数据源而言 InputStream in = p.getInputStream(); try{ while((readbytes = in.read(b)) != -1){ sb.append(new String(b,0,readbytes)); } }catch(IOException e1){ return "读取流异常"; }finally { try{ in.close(); }catch (IOException e2){ return "关闭流异常"; } } return sb.toString(); }}
其中加注释的是本人还不熟悉ProcessBuilder这个类时传参情况,它是java.lang包下的一个类,JDK1.5以后才有。实验证明最后两种远程的和本地的那种格式是正确。
下面说一下mysql中查看服务是否启动的有关命令和参数的意思,先上效果图
在dos窗口运行命令,结果如图
我的mysql在安装的时候没有设置密码所以在这里没有写,如果mysql有密码也可以这样
mysql服务停止后
dos命令执行情况
以上是测试本地的,下面是测试远程的,由于公司的服务不能随便的停止,所以就只演示mysql开启时的效果
mysqladmin -u user -h 192.168.1.86 -p mima -P 3306 ping
mysqladmin 是mysql查看服务器的命令
-u 是连接数据库的用户名
-h 是远程服务器的ip地址
-p 是登陆mysql的密码(注意p是小写的)
-P 是mysql的端口号(这里的p是大写的)
ping 本人理解就是ping mysql服务是否开启
这些是在dos窗口中输入的命令时候写的。在java代码中如何写,就是我上面的代码缩写的样子了。不过有几点还是要注意一下:
1.在new ProcessBuilder实例的时候,参数传的得这样new ProcessBuilder("mysqladmin","-uyonghu","-h192.168.1.86","-pmima", "-P3306", "ping").start()
其中-h和ip地址之间不要有空格,还有“”双引号前后都不要有空格,其他的都一样,还有-p密码一定要放在-hip地址之后,不然也会报错。最后一点:如果是监控远程服务器上的mysql服务的状态你首先保证能ping通,其次是那个账号和密码具有远程登录的权限就是你可以用mysql -uroot -p远程登录。
有关java.lang包下的这个ProcessBuilder类,本人还在琢磨当中,目前实现功能重要,嘿嘿。
如果我说的有什么不对,或者错误,还望大神们多多指教,共同学习讨论。
- java 代码判断Mysql服务是否开启
- IOS 判断定位服务是否开启代码
- 判断一个服务是否开启
- Android 判断服务是否开启
- 判断某服务是否开启
- 用批处理判断服务是否开启
- 判断一个服务是否处于开启状态
- 判断是否开启定位服务的方法
- 判断服务是否开启的工具类
- java-列出Android设备中所有启动的服务,及判断某个服务是否开启! - 随心
- Java判断某个进程是否开启
- iOS开发 判断用户是否开启了定位服务
- 安卓当中如何判断某一项服务是否开启
- Android判断后台服务是否开启的方法
- 安卓开发工具类-判断系统服务是否开启
- 如何在linux下判断web服务是否开启?
- 判断APP用户手机是否开启了定位服务
- 判断定位服务是否开启(手机上位置信息按钮开关)
- OC_07_01 NSData
- android 游戏总结2
- 关于spring mvc加载本地xsd文件问题
- Activiti进阶(十)——分配个人任务的三种方式
- mysql bin-log和log-update开启
- java 代码判断Mysql服务是否开启
- Linux strace命令
- 水面波浪形View--第三方开源--WaveView(电量、能量、容量指示)
- 深夜随笔
- Revit二次开发(1):必备条件与安装
- matlab实现基于PCA的人脸识别算法
- DES3加密解密
- JDBC小随笔
- 2分钟读懂大数据框架Hadoop和Spark的异同