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和ACCESS写聊天室(十)
Oct 09 PHP
PHP XML备份Mysql数据库
May 27 PHP
php中使用explode查找某个字符是否存在的方法
Jul 12 PHP
php5.3 goto函数介绍和示例
Mar 21 PHP
PHP 实现代码复用的一个方法 traits新特性
Feb 22 PHP
php动态变量定义及使用
Jun 10 PHP
常用的php图片处理类(水印、等比缩放、固定高宽)分享
Jun 19 PHP
php数据序列化测试实例详解
Aug 12 PHP
thinkPHP5框架auth权限控制类与用法示例
Jun 12 PHP
PHP设计模式之装饰器模式定义与用法简单示例
Aug 13 PHP
thinkPHP5.0框架事务处理操作简单示例
Sep 07 PHP
laravel 框架执行流程与原理简单分析
Feb 01 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实现的zip文件内容比较类
2014/09/24 PHP
PHP中Session和Cookie是如何操作的
2015/10/10 PHP
PHP高并发和大流量解决方案整理
2019/12/24 PHP
JAVASCRIPT对象及属性
2007/02/13 Javascript
使用jquery实现div的tab切换实例代码
2013/05/27 Javascript
Javascript获取HTML静态页面参数传递值示例
2013/08/18 Javascript
JS选中checkbox后获取table内一行TD所有数据的方法
2015/07/01 Javascript
javascript中sort() 方法使用详解
2015/08/30 Javascript
常用javascript表单验证汇总
2020/07/20 Javascript
AngularJs bootstrap搭载前台框架——准备工作
2016/09/01 Javascript
浅谈jQuery中Ajax事件beforesend及各参数含义
2016/12/03 Javascript
Angular的$http的ajax的请求操作(推荐)
2017/01/10 Javascript
React-Native使用Mobx实现购物车功能
2017/09/14 Javascript
Javascript Promise用法详解
2018/05/10 Javascript
angular中子控制器向父控制器传值的实例
2018/10/08 Javascript
nodejs读取图片返回给浏览器显示
2019/07/25 NodeJs
Vue 自定义指令实现一键 Copy功能
2019/09/16 Javascript
解决layui-table单元格设置为百分比在ie8下不能自适应的问题
2019/09/28 Javascript
Python3 入门教程 简单但比较不错
2009/11/29 Python
python 算法 排序实现快速排序
2012/06/05 Python
网红编程语言Python将纳入高考你怎么看?
2018/06/07 Python
Python通过for循环理解迭代器和生成器实例详解
2019/02/16 Python
python程序控制NAO机器人行走
2019/04/29 Python
python数据类型之间怎么转换技巧分享
2019/08/20 Python
python图像处理模块Pillow的学习详解
2019/10/09 Python
Tensorflow之梯度裁剪的实现示例
2020/03/08 Python
python对输出的奇数偶数排序实例代码
2020/12/04 Python
求职推荐信范文
2013/12/01 职场文书
创业计划书六个要素
2013/12/26 职场文书
《灯光》教学反思
2014/02/08 职场文书
纪念九一八事变演讲稿:忘记意味着背叛
2014/09/14 职场文书
会计岗位职责
2015/02/03 职场文书
2015年财务人员工作总结
2015/04/10 职场文书
检讨书范文
2019/04/16 职场文书
宝塔更新Python及Flask项目的部署
2022/04/11 Python
mybatis 获取更新记录的id
2022/05/20 Java/Android