使用PHP PDO运行“show slave status”

时间:2012-07-16 18:18:05

标签: php mysql pdo master-slave

我正在尝试使用PHP的PDO实现来获取MySQL服务器的slave状态。运行fetchAll()会返回一个空数组。

// DB IP, name, username, and password are fake here. I can connect.
$db = new PDO('mysql:host=192.168.0.0;dbname=production', 'username', 'password');
$result = $db->query("SHOW SLAVE STATUS");
$result->execute();

if ($result != false)
{
    $slave = $result->fetchAll(PDO::FETCH_ASSOC);
}

我也尝试删除->execute()调用,但结果相同。有什么东西是我在这里遗失的吗?我在PDO ::查询文档中上下查找,并没有多大帮助。

2 个答案:

答案 0 :(得分:5)

您是否有权执行查询?

尝试:

$db = new PDO('mysql:host=192.168.0.0;dbname=production', 'username', 'password');

$result = $db->query("SHOW STATUS");

if (!$result) {
    echo $db->errorInfo()[2]; // php 5.4
} else {
    foreach($result->fetchAll() as $row) {
        var_dump($row);
    }
}

答案 1 :(得分:1)

这实际上是由于服务器上的权限问题。我错误地设置了我的复制用户,因此复制本身甚至无法正常工作。