2010-01-26 31 views
1

我正在做一些MySQL服务器管理与刷新MySQL用户权限,当新的特权被添加到MySQL用户的脚本。PHP/PDO - 同花顺特权

我使用PDO类做我的查询,但是当我做一个简单的

FLUSH PRIVILEGES; 

我得到的,对于

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

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

SQLSTATE [42S02]:找不到基表或视图 :1146表'mysql.se一些露营车主 不存在

是否有可能做这样的查询与PDO类还是我不得不求助于使用MySQL的(我)?

回答

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服务器时,有这样一个表 - 你确定你的安装/配置没有“破坏”,并且你没有删除那张桌子或类似的东西?


BTW,它似乎并没有受到某种你没有特权的:如果你试图flush privileges无需所需的权限,您会收到以下错误:“SQLSTATE[42000]: Syntax error or access violation: 1227 Access denied; you need the RELOAD privilege for this operation

+0

@Pascal MARTIN :谢谢,我确实有一个破损的mysql安装,它已通过mysql_fix_privilege_tables命令修复。 – tomzx 2010-01-27 04:36:03

+0

相关知识:-)谢谢! – 2010-01-27 05:31:01