PHP實(shí)現(xiàn)的mysql主從數(shù)據(jù)庫狀態(tài)檢測功能示例
本文實(shí)例講述了PHP實(shí)現(xiàn)的mysql主從數(shù)據(jù)庫狀態(tài)檢測功能。分享給大家供大家參考,具體如下:
實(shí)例:
<?php
/**
* 檢測多個(gè)主從數(shù)據(jù)庫是否掛掉
* 建立從數(shù)據(jù)庫$slave_db的二維數(shù)組,內(nèi)容包含每個(gè)從服務(wù)器的配置數(shù)據(jù)
*/
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 .= "從數(shù)據(jù)庫( $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 .= "從數(shù)據(jù)庫( $host )掛掉了! <br/>";
}
mysql_free_result($result);
mysql_close($slave_link);
}
//若報(bào)錯(cuò)信息不為空,發(fā)送報(bào)錯(cuò)郵件
if(!empty($content)) {
$title = '主從數(shù)據(jù)庫狀態(tài)檢測報(bào)錯(cuò) ';
$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主從數(shù)據(jù)庫狀態(tài)檢測報(bào)錯(cuò),郵件發(fā)送失敗!'."\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';
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《php+mysql數(shù)據(jù)庫操作入門教程》、《php+mysqli數(shù)據(jù)庫程序設(shè)計(jì)技巧總結(jié)》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》、《PHP數(shù)組(Array)操作技巧大全》、《php字符串(string)用法總結(jié)》、《PHP網(wǎng)絡(luò)編程技巧總結(jié)》及《php常見數(shù)據(jù)庫操作技巧匯總》
希望本文所述對大家PHP程序設(shè)計(jì)有所幫助。
- MYSQL主從數(shù)據(jù)庫同步備份配置的方法
- MHA實(shí)現(xiàn)mysql主從數(shù)據(jù)庫手動(dòng)切換的方法
- Ubuntu配置Mysql主從數(shù)據(jù)庫
- mysql主從數(shù)據(jù)庫不同步的2種解決方法
- Mysql 主從數(shù)據(jù)庫同步(centos篇)
- linux下指定mysql數(shù)據(jù)庫服務(wù)器主從同步的配置實(shí)例
- windows環(huán)境下mysql數(shù)據(jù)庫的主從同步備份步驟(單向同步)
- MySQL數(shù)據(jù)庫InnoDB引擎主從復(fù)制同步經(jīng)驗(yàn)總結(jié)
- 詳解MySQL數(shù)據(jù)庫設(shè)置主從同步的方法
- MySQL主從數(shù)據(jù)庫搭建方法詳解
相關(guān)文章
PHP 過濾頁面中的BOM(實(shí)現(xiàn)代碼)
本篇文章是對PHP中過濾頁面中的BOM的實(shí)現(xiàn)代碼進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06
PHP實(shí)現(xiàn)定時(shí)生成HTML網(wǎng)站首頁實(shí)例代碼
做靜態(tài)頁面的時(shí)候增加這個(gè)功能非常不錯(cuò),大家看下實(shí)現(xiàn)代碼2008-11-11
php中比較簡單的導(dǎo)入phpmyadmin生成的sql文件的方法
做網(wǎng)站的時(shí)候 我們會(huì)制作一個(gè)安裝文件 就需要用到sql文件創(chuàng)建數(shù)據(jù)庫。分享一下 我所用的方法。2011-06-06
PHP從零開始打造自己的MVC框架之路由類實(shí)現(xiàn)方法分析
這篇文章主要介紹了PHP從零開始打造自己的MVC框架之路由類實(shí)現(xiàn)方法,結(jié)合實(shí)例形式分析了MVC框架路由類的原理及定義方法,需要的朋友可以參考下2019-06-06

