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自定义函数返回多个值
Nov 26 PHP
用PHP实现Ftp用户的在线管理的代码
Mar 06 PHP
PHP+Tidy-完美的XHTML纠错+过滤
Apr 10 PHP
轻松修复Discuz!数据库
May 03 PHP
php 学习资料零碎东西
Dec 04 PHP
PHP采集腾讯微博的实现代码
Jan 19 PHP
php验证手机号码(支持归属地查询及编码为UTF8)
Feb 01 PHP
微信扫描二维码登录网站代码示例
Dec 30 PHP
CI框架Session.php源码分析
Nov 03 PHP
MacOS 安装 PHP的图片裁剪扩展Tclip
Mar 25 PHP
PHP Cookei记录用户历史浏览信息的代码
Feb 03 PHP
thinkPHP5框架实现基于ajax的分页功能示例
Jun 12 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新手上路(十一)
2006/10/09 PHP
因str_replace导致的注入问题总结
2019/08/08 PHP
jQuery 遍历-nextUntil()方法以及prevUntil()方法的使用介绍
2013/04/26 Javascript
html文本框提示效果的示例代码
2014/06/28 Javascript
JQuery标签页效果的两个实例讲解(4)
2015/09/17 Javascript
jQuery实现页面顶部显示的进度条效果完整实例
2015/12/09 Javascript
学习javascript面向对象 javascript实现继承的方式
2016/01/04 Javascript
jQuery中get方法用法分析
2016/12/07 Javascript
Bootstrap栅格系统的使用和理解2
2016/12/14 Javascript
vue2.0在没有dev-server.js下的本地数据配置方法
2018/02/23 Javascript
vue slot与传参实例代码讲解
2019/04/28 Javascript
js使用文档就绪函数动态改变页面内容示例【innerHTML、innerText】
2019/11/07 Javascript
javascript设计模式 ? 工厂模式原理与应用实例分析
2020/04/09 Javascript
vue 数据遍历筛选 过滤 排序的应用操作
2020/11/17 Javascript
[01:02:38]DOTA2-DPC中国联赛定级赛 LBZS vs Phoenix BO3第二场 1月10日
2021/03/11 DOTA
400多行Python代码实现了一个FTP服务器
2012/05/10 Python
python批量修改文件名的实现代码
2014/09/01 Python
最近Python有点火? 给你7个学习它的理由!
2017/06/26 Python
python django 增删改查操作 数据库Mysql
2017/07/27 Python
Python使用爬虫爬取静态网页图片的方法详解
2018/06/05 Python
Python实战之制作天气查询软件
2019/05/14 Python
PyQt5 实现给窗口设置背景图片的方法
2019/06/13 Python
python快速排序的实现及运行时间比较
2019/11/22 Python
Spring Cloud Feign高级应用实例详解
2019/12/10 Python
浅谈OpenCV中的新函数connectedComponentsWithStats用法
2020/07/05 Python
Python正则re模块使用步骤及原理解析
2020/08/18 Python
解决pytorch 模型复制的一些问题
2021/03/03 Python
学校课外活动总结
2014/05/08 职场文书
三八妇女节趣味活动方案
2014/08/23 职场文书
2014年医生工作总结
2014/11/21 职场文书
婚宴新郎致辞
2015/07/28 职场文书
国际贸易实训总结
2015/08/03 职场文书
thinkphp 获取控制器及控制器方法
2021/04/16 PHP
Python还能这么玩之只用30行代码从excel提取个人值班表
2021/06/05 Python
图片批量处理 - 尺寸、格式、水印等
2022/03/07 杂记
关于Vue中的options选项
2022/03/22 Vue.js