首页 > 数据库 >mysql主从数据库状态检测(php)

mysql主从数据库状态检测(php)

时间:2023-03-05 17:06:40浏览次数:40  
标签:slave title mysql db content error php 主从


实例:

<?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';


标签:slave,title,mysql,db,content,error,php,主从
From: https://blog.51cto.com/sdwml/6101503

相关文章

  • ThinkPHP 3.2.3 介绍及安装
    一、ThinkPHP的介绍:基于MVC模式(3者分离)M-Model模型工作:负责数据的操作V-View视图(模板)工作:负责前台页面显示C-Controller控制器(模块)工作:描述功能二、Thi......
  • ThinkPHP MVC模式、URL访问控制器和调试模式
    一、什么是MVCM-Model编写model类对数据进行操作V-View编写html文件,页面呈现C-Controller编写类文件(UserAction.class.php)处理输入(写入数据库记录),确保M和V的同步......
  • php 编码转换 乱码解决
    iconv详解:iconv—字符串按要求的字符编码来转换iconv有bug,碰到一些生僻字就会无法转换,当然了配置第二个参数时,可以稍微弥补一下默认缺陷,不至于无法转换是截断,用法如......
  • MySQL数据库备份恢复
    拓扑图:推荐步骤:使用MySQLdump对数据库数据库中表一个数据库多个表所有数据库进行备份模拟数据丢失恢复备份的数据 配置MySQL数据库开启二进制日志功能配置二进制日志切割......
  • php 多进程编程
    第一步:$php-m命令查看php是否安装pcntl和posix扩展,若没有则安装使用场景:1.要进行大量的网络耗时的操作2.要做大量的运算,并且,系统有多个cpu,为了让用户有更快的体验,把......
  • ajax 返回值方法(php)
    <?phpfunctionmsg_error($state,$msg){if(!empty($_REQUEST['callback'])){$callback=$_REQUEST['callback'];$callback=preg_replace(array('......
  • php 正则表达式匹配(输出是否匹配以及匹配值) preg_match
    preg_match—执行一个正则表达式匹配preg_match($pattern,$subject,$matches)搜索subject与pattern给定的正则表达式的一个匹配.参数:pattern:要搜索的模式,字符......
  • nginx日志过滤php脚本
    <?php/***nginx日志过滤脚本*/$file='access.log';$access1='./access1.log';$access2='./access2.log';$access3='./access3.log';$access4='./access4.log';......
  • MySQL基本命令操作
    目录创建数据库删除数据库数据表的创建与管理删除数据表修改字段数据类型添加字段字段更名删除字段表数据管理插入数据查询数据模糊匹配排序与分组HAVING子句查询聚合函数......
  • php基本语法和数据类型、变量销毁
    1、PHP基本语法:HTML和php混合使用;一个语句以;(分号)结束;如何定义一个变量,和变量的使用;php中定义一个变量要以$符号开头:$a=34;变量的数据类型不是固定不变的,根据赋值的变化而......