PHP/PDO-刷新权限
我正在使用一个脚本进行mysql服务器管理,该脚本在向mysql用户添加新权限时刷新mysql用户权限 我使用PDO类来执行查询,但是当我执行一个简单的PHP/PDO-刷新权限,php,mysql,pdo,mysqli,mysql-error-1146,Php,Mysql,Pdo,Mysqli,Mysql Error 1146,我正在使用一个脚本进行mysql服务器管理,该脚本在向mysql用户添加新权限时刷新mysql用户权限 我使用PDO类来执行查询,但是当我执行一个简单的 FLUSH PRIVILEGES; 我得到了,因为 $connection->exec('FLUSH PRIVILEGES;'); 及 SQLSTATE[42S02]:基表或视图 未找到:1146表“mysql.servers” 不存在 是否可以使用PDO类进行此类查询,还是必须使用mysql(I)?我刚刚尝试了以下代码部分: $ds
FLUSH PRIVILEGES;
我得到了,因为
$connection->exec('FLUSH PRIVILEGES;');
及
SQLSTATE[42S02]:基表或视图
未找到:1146表“mysql.servers”
不存在
是否可以使用PDO类进行此类查询,还是必须使用mysql(I)?我刚刚尝试了以下代码部分:
$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服务器时,有这样一个表——您确定您的安装/配置没有“损坏”,并且没有删除该表或类似的内容吗
顺便说一句,这似乎不是您没有的某种特权:如果您在没有所需特权的情况下尝试
刷新特权
,则会出现以下错误:“SQLSTATE[42000]:语法错误或访问冲突:1227访问被拒绝;您需要此操作的重新加载特权
”@Pascal MARTIN:谢谢,我的mysql安装确实有问题,这是用mysql\u fix\u privilege\u tables命令修复的。
$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);
}