PHP实现的mysql主从数据库状态检测功能示例


Posted in PHP onJuly 20, 2017

本文实例讲述了PHP实现的mysql主从数据库状态检测功能。分享给大家供大家参考,具体如下:

实例:

<?php
/**
 * 检测多个主从数据库是否挂掉
 * 建立从数据库$slave_db的二维数组,内容包含每个从服务器的配置数据
 */
header("Content-Type: text/html; charset=utf-8");
set_time_limit(0);
$slave_db = array(
  'db1'=>array(
    'hostname' => '127.0.0.1',
    'port' => 3306,
    'database' => 'test',
    'username' => 'root',
    'password' => '111111',
    'charset' => 'utf8',
  ),
  'db2'=>array(
    'hostname' => '127.0.0.2',
    'port' => 3306,
    'database' => 'test',
    'username' => 'root',
    'password' => '111111',
    'charset' => 'utf8',
  ),
);
$content = '';
foreach ($slave_db as $db_key) {
  $host = $db_key['hostname'];
  $port = $db_key['port'];
  $db_user = $db_key['username'];
  $db_pass = $db_key['password'];
  $slave_link = mysql_connect($host,$db_user,$db_pass);
  if(mysql_errno()) {
    $content .= "从数据库( $host )无法连接 ! <br/>";
    $content .= mysql_error() . "<br/>";
    continue;
  }
  $sql = "show slave status";
  $result = mysql_query($sql, $slave_link);
  $row = mysql_fetch_assoc($result);
  $Slave_IO_Running = $row['Slave_IO_Running'];
  $Slave_SQL_Running = $row['Slave_SQL_Running'];
  if ('Yes' == $Slave_IO_Running && 'Yes' == $Slave_SQL_Running) {
  } else {
    $content .= "从数据库( $host )挂掉了! <br/>";
  }
  mysql_free_result($result);
  mysql_close($slave_link);
}
//若报错信息不为空,发送报错邮件
if(!empty($content)) {
  $title = '主从数据库状态检测报错 ';
  $content = date("Y-m-d H:i:s",time()) . "<br/>" . $content;
  $sendurl = "http://localhost/api.ftrend.com/test.php?title=".$title."&content=".$content;
  $result = file_get_contents($sendurl);
  if('ok' != $result) {
    $message = date("Y-m-d H:i:s",time()).'slaveStatus.php主从数据库状态检测报错,邮件发送失败!'."\n";
    $content = str_replace("<br/>", "\n", $content);
    $message .= $content;
    error_log($message,3,"error.log");
  }
}
<?php
$title = $_GET['title'];
$content = $_GET['content'];
$content = str_replace("<br/>", "\n", $content);
error_log($title."\n",3,'error.log');
error_log($content."\n",3,'error.log');
echo 'ok';

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
PHP开发文件系统实例讲解
Oct 09 PHP
实用函数5
Nov 08 PHP
php5 mysql分页实例代码
Apr 10 PHP
简单的php 验证图片生成函数
May 21 PHP
PHP备份/还原MySQL数据库的代码
Jan 06 PHP
PHP UTF8中文字符截断函数代码
Sep 11 PHP
php三元运算符知识汇总
Jul 02 PHP
ThinkPHP使用Ueditor的方法详解
May 20 PHP
PHP使用GD库输出汉字的方法【测试可用】
Nov 10 PHP
原生JS实现Ajax通过POST方式与PHP进行交互的方法示例
May 12 PHP
PHP实现简单计算器小程序
Aug 28 PHP
PHP7生产环境队列Beanstalkd用法详解
May 19 PHP
php检测mysql表是否存在的方法小结
Jul 20 #PHP
Laravel接收前端ajax传来的数据的实例代码
Jul 20 #PHP
php脚本守护进程原理与实现方法详解
Jul 20 #PHP
ubutu 16.04环境下,PHP与mysql数据库,网页登录验证实例讲解
Jul 20 #PHP
thinkphp3.2实现在线留言提交验证码功能
Jul 19 #PHP
ThinkPHP框架表单验证操作方法
Jul 19 #PHP
动态表单验证的操作方法和TP框架里面的ajax表单验证
Jul 19 #PHP
You might like
tp5框架基于ajax实现异步删除图片的方法示例
2020/02/10 PHP
Javascript的构造函数和constructor属性
2010/01/09 Javascript
js中的this关键字详解
2013/09/25 Javascript
js转义字符介绍
2013/11/05 Javascript
JS获取屏幕,浏览器窗口大小,网页高度宽度(实现代码)
2013/12/17 Javascript
Javascript URI 解析介绍
2015/03/15 Javascript
修改js confirm alert 提示框文字的简单实例
2016/06/10 Javascript
正则表达式,替换所有HTML标签的简单实例
2016/11/28 Javascript
vue-lazyload图片延迟加载插件的实例讲解
2018/02/09 Javascript
AjaxUpLoad.js实现文件上传
2018/03/05 Javascript
记一次webpack3升级webpack4的踩坑经历
2018/06/12 Javascript
JS获取当前时间的实例代码(昨天、今天、明天)
2018/11/13 Javascript
JS+CSS实现随机点名(实例代码)
2019/11/04 Javascript
vue学习笔记之给组件绑定原生事件操作示例
2020/02/27 Javascript
在vue中通过render函数给子组件设置ref操作
2020/11/17 Vue.js
[08:54]《一刀刀一天》之DOTA全时刻18:十九支奔赴西雅图队伍全部出炉
2014/06/04 DOTA
[37:23]DOTA2上海特级锦标赛主赛事日 - 3 胜者组第二轮#2Secret VS EG第二局
2016/03/04 DOTA
[43:14]Liquid vs Optic 2018国际邀请赛淘汰赛BO3 第二场 8.21
2018/08/22 DOTA
Python标准库之sqlite3使用实例
2014/11/25 Python
Python基于百度云文字识别API
2018/12/13 Python
对python函数签名的方法详解
2019/01/22 Python
10 分钟快速入门 Python3的教程
2019/01/29 Python
OpenCV-Python 摄像头实时检测人脸代码实例
2019/04/30 Python
对Python的交互模式和直接运行.py文件的区别详解
2019/06/29 Python
Python如何优雅获取本机IP方法
2019/11/10 Python
详解Python实现进度条的4种方式
2020/01/15 Python
如何让IE9以下版本(ie6/7/8)认识html5元素
2013/04/01 HTML / CSS
网上卖盒饭创业计划书范文
2014/02/07 职场文书
《孔子拜师》教学反思
2014/02/24 职场文书
毕业生工作求职信
2014/06/30 职场文书
质量主管工作职责
2014/09/26 职场文书
对照检查剖析材料
2014/09/30 职场文书
学校政风行风评议心得体会
2014/10/21 职场文书
简单实现一个手持弹幕功能+文字抖动特效
2021/03/31 HTML / CSS
python 实现两个变量值进行交换的n种操作
2021/06/02 Python
Golang入门之计时器
2022/05/04 Golang