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 相关文章推荐
利用文件属性结合Session实现在线人数统计
Oct 09 PHP
如何做到多笔资料的同步
Oct 09 PHP
自动把纯文本转换成Web页面的php代码
Aug 27 PHP
解析PHP中的unset究竟会不会释放内存
Jul 18 PHP
用PHP和Shell写Hadoop的MapReduce程序
Apr 15 PHP
简单谈谈php中ob_flush和flush的区别
Nov 27 PHP
php输入数据统一类实例
Feb 23 PHP
PHP实现文件上传和多文件上传
Dec 24 PHP
php正则去除网页中所有的html,js,css,注释的实现方法
Nov 03 PHP
PHP中cookie知识点学习
May 06 PHP
php微信开发之音乐回复功能
Jun 14 PHP
PHP 进程池与轮询调度算法实现多任务的示例代码
Nov 26 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 图片上传类代码
2009/07/17 PHP
ThinkPHP中__initialize()和类的构造函数__construct()用法分析
2014/11/29 PHP
php保存信息到当前Session的方法
2015/03/16 PHP
PHP上传Excel文件导入数据到MySQL数据库示例
2016/10/25 PHP
关于 Laravel Redis 多个进程同时取队列问题详解
2017/12/25 PHP
Laravel Validator自定义错误返回提示消息并在前端展示
2019/05/09 PHP
JQuery datepicker 使用方法
2011/05/20 Javascript
浅谈JS中的三种字符串连接方式及其性能比较
2016/09/02 Javascript
jQuery EasyUI 右键菜单--关闭标签/选项卡的简单实例
2016/10/10 Javascript
Vue 过渡(动画)transition组件案例详解
2017/01/22 Javascript
bootstrap是什么_动力节点Java学院整理
2017/07/14 Javascript
dropload.js插件下拉刷新和上拉加载使用详解
2017/10/20 Javascript
微信小程序icon组件使用详解
2018/01/31 Javascript
基于webpack.config.js 参数详解
2018/03/20 Javascript
基于JS实现带动画效果的流程进度条
2018/06/01 Javascript
简化vuex的状态管理方案的方法
2018/06/02 Javascript
动态内存分配导致影响Javascript性能的问题
2018/12/18 Javascript
echarts实现词云自定义形状的示例代码
2019/02/20 Javascript
微信小程序:数据存储、传值、取值详解
2019/05/07 Javascript
Element实现表格嵌套、多个表格共用一个表头的方法
2020/05/09 Javascript
ant-design-vue按需加载的坑的解决
2020/05/14 Javascript
python多进程操作实例
2014/11/21 Python
Windows系统下使用flup搭建Nginx和Python环境的方法
2015/12/25 Python
儿童编程python入门
2018/05/08 Python
Python matplotlib 画图窗口显示到gui或者控制台的实例
2018/05/24 Python
python脚本调用iftop 统计业务应用流量的思路详解
2019/10/11 Python
python pandas移动窗口函数rolling的用法
2020/02/29 Python
Python如何爬取b站热门视频并导入Excel
2020/08/10 Python
canvas实现按住鼠标移动绘制出轨迹的示例代码
2018/02/05 HTML / CSS
梵蒂冈和罗马卡:Omnia Card Pass
2018/02/10 全球购物
乌克兰在线电子产品商店:MTA
2019/11/14 全球购物
法国包包和行李箱销售网站:Bagage24.fr
2020/03/24 全球购物
艺术设计专业求职自荐信
2014/05/19 职场文书
乡镇党员干部四风对照检查材料思想汇报
2014/09/27 职场文书
gtx1650怎么样 gtx1650显卡相当于什么级别
2022/04/08 数码科技
CSS实现背景图片全屏铺满自适应的3种方式
2022/07/07 HTML / CSS