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 8小时时间差的解决方法小结
Dec 22 PHP
一道求$b相对于$a的相对路径的php代码
Aug 08 PHP
php中使用临时表查询数据的一个例子
Feb 03 PHP
PHP session文件独占锁引起阻塞问题解决方法
May 12 PHP
php操作MongoDB类实例
Jun 17 PHP
php调用淘宝开放API实现根据卖家昵称获取卖家店铺ID的方法
Jul 29 PHP
yii分页组件用法实例分析
Dec 28 PHP
PHP合并数组的2种方法小结
Nov 24 PHP
php多进程模拟并发事务产生的问题小结
Dec 07 PHP
thinkPHP框架通过Redis实现增删改查操作的方法详解
May 13 PHP
关于laravel后台模板laravel-admin select框的使用详解
Oct 03 PHP
PHP使用gearman进行异步的邮件或短信发送操作详解
Feb 27 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
php做下载文件的实现代码及文件名中乱码解决方法
2011/02/03 PHP
PHP QRCODE生成彩色二维码的方法
2016/05/19 PHP
jquery简单体验
2007/01/10 Javascript
javascript优先加载笔记代码
2008/09/30 Javascript
JavaScript DOM学习第四章 getElementByTagNames
2010/02/19 Javascript
JQuery autocomplete 使用手册
2010/04/01 Javascript
读jQuery之九 一些瑕疵说明
2011/06/21 Javascript
浏览器的JavaScript引擎的识别方法
2013/10/20 Javascript
深入理解jQuery中live与bind方法的区别
2013/12/18 Javascript
JavaScript不使用prototype和new实现继承机制
2014/12/29 Javascript
JavaScript实现上下浮动的窗口效果代码
2015/10/12 Javascript
AngularJS 日期格式化详解
2015/12/23 Javascript
Bootstrap每天必学之警告框插件
2016/04/26 Javascript
AngularJS bootstrap启动详解及实例代码
2016/09/14 Javascript
Angular的MVC和作用域
2016/12/26 Javascript
JS实现微信摇一摇原理解析
2017/07/22 Javascript
vue router自动判断左右翻页转场动画效果
2017/10/10 Javascript
解决JQuery全选/反选第二次失效的问题
2017/10/11 jQuery
基于jQuery解决ios10以上版本缩放问题
2017/11/03 jQuery
vue项目前端知识点整理【收藏】
2019/05/13 Javascript
v-slot和slot、slot-scope之间相互替换实例
2020/09/04 Javascript
vue自定义组件实现双向绑定
2021/01/13 Vue.js
在Django的模型中执行原始SQL查询的方法
2015/07/21 Python
使用python检测主机存活端口及检查存活主机
2015/10/12 Python
Python实现视频下载功能
2017/03/14 Python
python中import reload __import__的区别详解
2017/10/16 Python
Python列表解析配合if else的方法
2018/06/23 Python
pytorch训练imagenet分类的方法
2018/07/27 Python
Python爬虫 scrapy框架爬取某招聘网存入mongodb解析
2019/07/31 Python
Numpy的简单用法小结
2019/08/28 Python
python读写文件write和flush的实现方式
2020/02/21 Python
adidas旗下高尔夫装备供应商:TaylorMade Golf(泰勒梅高尔夫)
2016/08/28 全球购物
FirstCry阿联酋儿童和婴儿产品网上购物:FirstCry.ae
2021/02/22 全球购物
迪斯尼假期(欧洲、中东及非洲):Disney Holidays EMEA
2021/02/15 全球购物
预备党员转正思想汇报
2014/09/26 职场文书
mysql实现将字符串字段转为数字排序或比大小
2022/06/14 MySQL