簡體   English   中英

PHP PDO創建MySQL數據庫和用戶並授予特權

[英]PHP PDO Create MySQL database and user and grant privileges

我有這個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;
    }

我在這里解決另一個問題: 我可以在PHP中使用PDO創建數據庫嗎?

這段代碼會在第三次查詢期間因此錯誤而授予特權,從而使用戶掛斷電話:

SQLSTATE [42000]:語法錯誤或訪問沖突:1044用戶的訪問被拒絕

有問題的MySQL用戶具有全局權限,包括授予權限。 我還能缺少什么?

有問題的MySQL用戶具有全局權限,包括授予權限。 我還能缺少什么?

注意但常識。

如果您的數據庫說一個用戶沒有權限, 那就是這樣。

這就是錯誤消息的重點:您必須閱讀並修復它們。 就如此容易。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM