2016-07-01 3 views
0

사용자와 부여 권한을 만들기 :이 코드는 3 쿼리 동안 끊었 지 계속 Can I create a database using PDO in PHPPHP PDO MySQL 데이터베이스와 나는이 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]: Syntax error or access violation: 1044 Access denied for user

해당 MySQL 사용자는 권한을 포함한 전역 권한을가집니다. 그 밖의 무엇을 내가 놓칠 수 있습니까?

+0

전체 오류 메시지입니까? 'Access denied for user' 이후의 다른 것? –

+0

예 사용자를 나열하고 새 데이터베이스의 이름을 알려줍니다. – Helto

+0

사용자 이름이 무엇입니까? –

답변

0

The MySQL user in question has global permissions, including grant. What else could I be missing?

주목적이지만 상식.

데이터베이스에 사용자에게 권한이 없다고 표시되어 있으면 그렇습니다.

이것은 오류 메시지의 요점입니다. 요점을 읽고 고쳐야합니다. 저것과 같이 쉬운.