ストアドプロシージャ内からSeconds_Behind_Master
フィールドへのアクセス権(SHOW SLAVE STATUSによって返される)を取得したいとします。SQLからSeconds_Behind_Masterにアクセスする方法
変数内で値を取得する方法がわかりません。通常のSET/SELECT構文は動作しません。
これを行う方法はありますか?
ストアドプロシージャ内からSeconds_Behind_Master
フィールドへのアクセス権(SHOW SLAVE STATUSによって返される)を取得したいとします。SQLからSeconds_Behind_Masterにアクセスする方法
変数内で値を取得する方法がわかりません。通常のSET/SELECT構文は動作しません。
これを行う方法はありますか?
ちょうど記録のために、SHOWステートメントのカーソルを開くことが可能であることが判明しました。これにより、出力を解析し、ストアドプロシージャ内で出力を処理することができます。
最近のドキュメントやMySQL Bug#37187に記載されていますが、この情報にはどのような方法もありません。SHOW SLAVE STATUS
問題は、外部からSHOW SLAVE STATUSを(例えばperlスクリプトから)使用できることですが、どのようにストアドプロシージャから解析できますか? – azerole
PHPはこのように、ハッシュマップへshow slave status
のすべてのフィールドをつかむことができます。
$db = new pdo(
"mysql:host=your_database_hostname;dbname=your_database_name",
'your_username', 'your_password');
$sql = 'show slave status';
$query = $db->query($sql);
$res = $query->fetchall();
foreach($res as $item){
print ">" . $item["Seconds_Behind_Master"];
}
:
>0
私は時間のために試してみましたこれを行うストアドプロシージャを作成します。あなたの時間を無駄にしないことをお勧めします。
Azerole、万が一サンプルコードがありますか?私はそれを働かせるように見えません。 – Artem
はい、5.0のみです。 5.1では、mysqlにSHOWのカーソルを開かない不具合のバグがあります。 – azerole
@azerole 5.0に制限されていても、この機能を公開していただけますか? –