Linux で mysql の同期ステータスを検出するための PHP メソッド_PHP チュートリアル

WBOY
リリース: 2016-07-13 10:01:32
オリジナル
760 人が閲覧しました

Linux で php を使用して mysql の同期状態を検出する方法

この記事では、主に Linux で php を使用して mysql の同期状態を検出する方法を紹介します。これは、Linux で php を使用して mysql の同期状態を検出するための実践的なスキルであり、確実なスキルを持っています。参考値ですので、困っている友達は参考にしてください

この記事の例では、PHP が Linux 上で MySQL の同期ステータスを検出する方法について説明します。皆さんの参考に共有してください。具体的な分析は次のとおりです:

mysqlの同期状態検出の実装方法を2つの例で紹介します。コードは次のとおりです:

コードは次のとおりです:

#!/bin/sh

#MySQL_Slave ステータスを確認する
#crontab 時間 00:10
MYSQL_USER="ルート"
MYSQL_PWD="123456"
MYSQL_SLAVE_LOG="/tmp/check_mysql_slave.log"
メール = "1351010****@139.com"

MYSQL_PORT=`netstat -na|grep "LISTEN"|grep "3306"|awk -F[:" "]+ '{print $5}'`
MYSQL_IP=`ifconfig eth0|grep "inet addr" awk -F[:" "]+ '{print $4}'`
MYSQL_SLAVE_STATUS=$(/usr/local/webserver/mysql/bin/mysql -u root -psylc23hua -S /tmp/mysql.sock -e

"スレーブのステータスを表示G" | grep -i "実行中")
IO_ENV=`echo $MYSQL_SLAVE_STATUS | grep IO ' {print $2}'
SQL_ENV=`echo $MYSQL_SLAVE_STATUS | grep SQL '{print $2}'
NOW=$(日付 -d 今日 +'%Y-%m-%d %H:%M:%S')

if [ "$MYSQL_PORT" = "3306" ];then
エコー「mysql が実行中です!」 それ以外は
mail -s "警告!サーバー: $MYSQL_IP mysql がダウンしています" "$EMAIL"
はい

if [ "$IO_ENV" = "はい" -a "$SQL_ENV" = "はい" ];then
エコー「奴隷が走っています!」 それ以外は
echo "[ $NOW ] スレーブが実行されていません! >> "$MYSQL_SLAVE_LOG"
cat "$MYSQL_SLAVE_LOG" | mail -s "警告! ${MySQL_IP}_replicate_error" "$EMAIL"
はい

0番出口

PHP サンプルコード、コードは次のとおりです: check_rep.php:

コードは次のとおりです:
if(emptyempty($_REQUEST["key"])) die(':) キーがありません'); if($_REQUEST["key"] != 'xupeng') die(':) エラーキー');
include("mysql_instance.php"); include("check_status_api.php");
定義("ユーザー名", "ユーザー名"); 定義("パスワード", "パスワード"); 定義("デバッグモード", false);
$instances = get_instances();
if($インスタンス){
エコー<<

終わります
エコー「
」 ん」;
if(!DEBUGMODE){
エコー「
」 ん」;
}その他{
エコー「
」 ん」;
}
foreach($instances as $host){
$res = check_mysql_replication_status($host, ユーザー名, パスワード); if(!DEBUGMODE){
switch($res["結果"]){
ケース-4:
$memo = "不明な例外"; 休憩
ケース-3:
$memo = "クエリが失敗しました"; 休憩
ケース-2:
$memo = "ポートに接続できません"; 休憩
ケース-1:
$memo = "ステータス不明"
休憩
ケース 0:
$memo = "OK"; 休憩
ケース 1:
$memo = "同期に失敗しました"; if($res["Slave_IO_Running"] <> "はい"){
$memo .= $res["Last_IO_Error"] "(" . $res

["Last_IO_Errno"]
; }
if($res["Slave_SQL_Running"] <> "はい"){
$memo .= $res["Last_SQL_Error"] "(" . $res

["Last_SQL_Errno"]
; }
休憩
ケース 2:
$memo = "データベースが同期されていません"; 休憩
}
エコー「

ん」;
}その他{
エコー「

ん」;
}
}
エコー「
」 <テーブルの境界線="">
インスタンス 結果 スレーブ_IO_実行中 スレーブ_SQL_実行中 マスターホスト マスターポート Replicate_Do_DB メモ インスタンス 結果 スレーブ_IO_実行中 スレーブ_SQL_実行中 マスターホスト マスターポート Replicate_Do_DB スレーブ_IO_状態 Last_IO_Errno Last_IO_Error Last_SQL_Errno Last_SQL_Error {$host} {$res['result']} {$res['Slave_IO_Running']} {$res['Slave_SQL_Running']} {$res['Master_Host']}
{$res['Master_Port']} {$res['Replicate_Do_DB']} {$memo} {$host} {$res['result']} {$res['Slave_IO_Running']} {$res['Slave_SQL_Running']} {$res['Master_Host']}
{$res['Master_Port']} {$res['Replicate_Do_DB']} {$res['Slave_IO_State']} {$res['Last_IO_Errno']} {$res['Last_IO_Error']} {$res['Last_SQL_Errno']} {$res['Last_SQL_Error']} ん」;
エコー<<
終わります
}その他{
die("mysql インスタンスが定義されていません。"); }
check_status_api.php:

コードは次のとおりです:

/*
* mysqlサーバーの同期ステータスを確認してください
*/
関数 check_mysql_replication_status($host, $username, $password)
{
//デフォルトのステータスは不明です
$r = 配列(
「結果」 => -1
); 試してください{
$dbh = @mysql_connect($host, $username, $password); if(!$dbh){
//接続できません
$r["結果"] = -2; リターン($r); }
$query = "スレーブのステータスを表示"; $res = @mysql_query($query, $dbh); $err = @mysql_error(); if($err){
//接続できません
$r["結果"] = -3; リターン($r); }
$row = mysql_fetch_array($res); $r = $行
if(($r["Slave_IO_Running"] == "はい") && ($r["Slave_SQL_Running"] == "はい"))
{
$r["結果"] = 0; }その他{
if(!emptyempty($row)){
$r["結果"] = 1; }その他{
$r["結果"] = 2; }
}
}catch(例外 $e){
$r["結果"] = -4; }
リターン($r); }

mysql_instance.php:

コードは次のとおりです:

//「パスワード」で識別された「ユーザー名」@「監視ホスト IP」に対する *.* のレプリケーション クライアントを許可します。
配列(); $mysql_instances[] = "リモート IP:ポート";


関数 get_instances()
{
グローバル $mysql_instances; $mysql_instances を返す
}


上記 3 つの PHP ファイルを仮想ディレクトリに配置し、URL 経由でアクセスします。

アクセス方法:http://ip/check_repl.php?key=xupeng

この記事で説明した内容が皆様の PHP プログラミング設計に役立つことを願っています。



http://www.bkjia.com/PHPjc/971934.html

www.bkjia.com

tru​​e

http://www.bkjia.com/PHPjc/971934.html

技術記事

Linux で php を使用して mysql の同期状態を検出する方法 この記事では、Linux で php を使用して mysql の同期状態を検出する方法を主に紹介します。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!