2

レプリケーションサーバーのステータスを返す方法は?

スレーブステータスを取得しようとすると、何も返されませんか?!

mysql:5.1.63-0

コード

$result = Mysql::result("SHOW SLAVE STATUS");
$status = $result->fetch_assoc();
echo '<pre>';
echo 'result: ';
print_r($result);
echo 'status: ';
print_r($status);
echo '</pre>';

戻り値

result: mysqli_result Object
(
    [current_field] => 0
    [field_count] => 38
    [lengths] => 
    [num_rows] => 0
    [type] => 0
)
status: 
4

2 に答える 2

4

データを含む行を取得する必要があります。

$ row = $ result-> fetch_assoc()

次に、$row['Slave_IO_Running']と$row['Slave_SQL_Running']で必要なものが得られます。どちらもイエスでなければなりません。

于 2012-09-13T17:29:39.277 に答える
0

私はまったく同じ問題を抱えていましたが、スレーブではなくマスターデータベースハンドルに接続していたことが判明しました。$resultはnum_rows=0を示しているため、問題は行のフェッチ方法ではありません。表示するステータスがないということです。

于 2016-11-01T20:33:02.297 に答える