我正在使用脚本执行一些mysql服务器管理,该脚本在将新权限添加到MySQL用户时刷新MySQL用户权限。
我正在使用PDO类来执行查询,但是当我做一个简单的
时FLUSH PRIVILEGES;
我知道,
$connection->exec('FLUSH PRIVILEGES;');
和
$connection->query('FLUSH PRIVILEGES;');
SQLSTATE [42S02]:基表或视图 未找到:1146表'mysql.servers' 不存在
是否可以使用PDO类进行此类查询,还是必须使用mysql(i)?
答案 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}}“