PHP / PDO - 刷新权限

时间:2010-01-26 16:36:03

标签: php mysql pdo mysqli mysql-error-1146

我正在使用脚本执行一些mysql服务器管理,该脚本在将新权限添加到MySQL用户时刷新MySQL用户权限。

我正在使用PDO类来执行查询,但是当我做一个简单的

FLUSH PRIVILEGES;

我知道,

$connection->exec('FLUSH PRIVILEGES;');

$connection->query('FLUSH PRIVILEGES;');
  

SQLSTATE [42S02]:基表或视图   未找到:1146表'mysql.servers'   不存在

是否可以使用PDO类进行此类查询,还是必须使用mysql(i)?

1 个答案:

答案 0 :(得分:2)

我刚刚尝试了以下部分代码:

$dsn = 'mysql:dbname=mysql;host=127.0.0.1';
$user = 'root';
$password = '********';
try {
    $db = new PDO($dsn, $user, $password);
    $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $db->query('flush privileges;');
} catch (PDOException $e) {
    var_dump($e);
}

我不会像你所描述的那样得到任何错误。


您确定MySQL服务器没有问题吗?

您的错误消息显示表“mysql.servers”不存在...但是当我查看我的本地MySQL服务器时,有这样一个表 - 您确定您的安装/配置不是“破了“你没有删除那张桌子或类似的东西?


顺便说一句,它似乎不是你没有的某种特权:如果你在没有所需特权的情况下尝试flush privileges,你会收到以下错误:“{{ 1}}“