【问题标题】:PHP PDO Create MySQL database and user and grant privilegesPHP PDO 创建 MySQL 数据库和用户并授予权限
【发布时间】:2016-11-04 09:11:30
【问题描述】:

我有这个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;
    }

我在这里解决了另一个问题: Can I create a database using PDO in PHP

此代码在第三次查询期间一直挂断,并授予权限并出现此错误:

SQLSTATE[42000]:语法错误或访问冲突:1044 Access denied for user

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

【问题讨论】:

  • 这是完整的错误信息? Access denied for user之后还有什么?
  • 是的,它列出了用户并说出了新数据库的名称
  • 用户名是什么?
  • 从 doLog('Creating User...') 中删除 \ 后为我工作; \
  • 那个斜线不应该在那里,我会从帖子中删除它。

标签: php mysql pdo


【解决方案1】:

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

注意但常识。

如果您的数据库显示用户没有权限那就是这样。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-25
    • 2015-02-16
    • 1970-01-01
    相关资源
    最近更新 更多