我正在尝试使用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 ::查询文档中上下查找,并没有多大帮助。
答案 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)
这实际上是由于服务器上的权限问题。我错误地设置了我的复制用户,因此复制本身甚至无法正常工作。