PHP PDO创建MySQL数据库和用户并授予权限

PHP PDO创建MySQL数据库和用户并授予权限,php,mysql,pdo,Php,Mysql,Pdo,我有一个php函数: function createDatabase($dbName,$dbPass) { $host = 'localhost'; $user = 'myuser'; $user_password = 'mypass'; $db = new PDO("mysql:host=$host", $user, $user_password); $db->setAttribute( PDO::

我有一个php函数:

function createDatabase($dbName,$dbPass) {
         $host = 'localhost';
         $user = 'myuser';
         $user_password = 'mypass';
         $db = new PDO("mysql:host=$host", $user, $user_password);
         $db->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
         try {
           doLog('Creating Database...');
           $count = $db->exec("CREATE DATABASE `$dbName`");
           if($count === false) {
             doLog('Could not create database');
             return false;
           }
           doLog('Creating User...');
           $count = $db->exec("CREATE USER '$dbName'@'localhost' IDENTIFIED BY '$dbPass'");
           if($count === false) {
             doLog('Could not create user');
             return false;
           }
           doLog('Granting User Privileges...');
           $count = $db->exec("GRANT ALL ON `$dbName`.* TO '$dbName'@'localhost'");
           if($count === false) {
             doLog('Could not grant user privileges');
             return false;
           }
           doLog('Flushing Privileges...');
           $count = $db->exec("FLUSH PRIVILEGES");
           if($count === false) {
             doLog('Could not flush privileges');
             return false;
           }

         } catch (PDOException $e) {
           doLog("DB ERROR: ". $e->getMessage());
           return false;
         }
         return true;
    }
我在这里想另一个问题:

此代码在授予特权的第三次查询期间一直挂起,出现以下错误:

SQLSTATE[42000]:语法错误或访问冲突:1044拒绝用户访问

有问题的MySQL用户具有全局权限,包括grant。我还能错过什么

有问题的MySQL用户具有全局权限,包括grant。我还能错过什么

除了常识什么都没有

如果您的数据库说a用户没有权限,那么就是这样。


这就是错误消息的要点:你必须阅读并修复它们。就这么简单。

这是完整的错误信息吗?
拒绝用户访问之后是否还有其他内容?
?是,它列出了用户,并为新数据库的名称显示了什么是用户名?从doLog中删除\后为我工作('Creating user…')\那个斜杠不应该在那里,我会把它从帖子上删除。