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 相关文章推荐
用mysql触发器自动更新memcache的实现代码
Oct 11 PHP
PHP 引用文件技巧
Mar 02 PHP
在Windows系统上安装PHP运行环境文字教程
Jul 19 PHP
php中最简单的字符串匹配算法
Dec 16 PHP
PHP中使用正则表达式提取中文实现笔记
Jan 20 PHP
PHP操作MySQL的mysql_fetch_* 函数的常见用法教程
Dec 25 PHP
PHP扩展迁移为PHP7扩展兼容性问题记录
Feb 15 PHP
PHP中PDO连接数据库中各种DNS设置方法小结
May 13 PHP
php文件类型MIME对照表(比较全)
Oct 07 PHP
Laravel构建即时应用的一种实现方法详解
Aug 31 PHP
PHP文件操作实例总结【文件上传、下载、分页】
Dec 08 PHP
ThinkPHP框架实现的微信支付接口开发完整示例
Apr 10 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
JS中简单的实现像C#中using功能(有源码下载)
2007/01/09 Javascript
基于jquery的一个浮动框(扩展性比较好 )
2010/08/27 Javascript
45个JavaScript编程注意事项、技巧大全
2015/02/11 Javascript
jquery图片切换插件
2015/03/16 Javascript
使用AngularJS来实现HTML页面嵌套的方法
2015/06/17 Javascript
神奇!js+CSS+DIV实现文字颜色渐变效果
2016/03/16 Javascript
JavaScript 链式结构序列化详解
2016/09/30 Javascript
Vue.js第一天学习笔记(数据的双向绑定、常用指令)
2016/12/01 Javascript
JS实现线性表的顺序表示方法示例【经典数据结构】
2017/04/11 Javascript
vue.js国际化 vue-i18n插件的使用详解
2017/07/07 Javascript
JS+CSS实现网页加载中的动画效果
2017/10/27 Javascript
vue axios 二次封装的示例代码
2017/12/08 Javascript
使用vux实现上拉刷新功能遇到的坑
2018/02/08 Javascript
JavaScript实现随机点名器实例详解
2019/05/07 Javascript
js中值引用和地址引用实例分析
2019/06/21 Javascript
Vue实例的对象参数options的几个常用选项详解
2019/11/08 Javascript
线程和进程的区别及Python代码实例
2015/02/04 Python
python使用win32com库播放mp3文件的方法
2015/05/30 Python
使用Python简单的实现树莓派的WEB控制
2016/02/18 Python
Python使用pymysql小技巧
2017/06/04 Python
python TKinter获取文本框内容的方法
2018/10/11 Python
python判断输入日期为第几天的实例
2018/11/13 Python
对python pandas读取剪贴板内容的方法详解
2019/01/24 Python
详解Python3 对象组合zip()和回退方式*zip
2019/05/15 Python
基于python实现ROC曲线绘制广场解析
2020/06/28 Python
css3一款3D字体带阴影效果的实现步骤
2013/03/20 HTML / CSS
Html5中的桌面通知Notification的实现
2018/09/25 HTML / CSS
美国钻石商店:Zales
2016/11/20 全球购物
Desigual美国官方网站:西班牙服装品牌
2019/03/29 全球购物
StudentUniverse英国:学生航班、酒店和旅游
2019/08/25 全球购物
办公室员工岗位工作职责
2014/03/10 职场文书
乡镇综治宣传月活动总结
2014/07/02 职场文书
公积金贷款承诺书
2015/04/30 职场文书
完美解决golang go get私有仓库的问题
2021/05/05 Golang
解决mysql问题:由于找不到MSVCR120.dll,无法继续执行代码
2021/06/26 MySQL
MySQL如何修改字段类型和字段长度
2022/06/10 MySQL