我有一個數據庫和通過cpanel創建的用戶(我已經將該用戶添加到該數據庫,並且能夠使用該用戶及其密碼訪問該數據庫。在cPanel的'當前數據庫'表中點擊用戶名並點擊所有權限複選框)我們如何授予用戶在phpmyadmin(cPanel)中創建數據庫的權限?
在我的應用程序中(使用PHP-Codeigniter框架創建的)我想在該數據庫中創建新的數據庫和表每個用戶的需求。爲此,我使用Codeigniter dbforge類創建數據庫和表中的數據。
$this->load->dbforge();
if ($this->dbforge->create_database($database_name)){
$config['hostname'] = "localhost";
$config['username'] = "user_name";
$config['password'] = "users_password";
$config['database'] = $database_name;
$config['dbdriver'] = "mysql";
$config['dbprefix'] = "";
$config['pconnect'] = TRUE;
$config['db_debug'] = TRUE;
$config['cache_on'] = FALSE;
$config['cachedir'] = "";
$config['char_set'] = "utf8";
$config['dbcollat'] = "utf8_general_ci";
$config['swap_pre'] = '';
$config['autoinit'] = TRUE;
$config['stricton'] = FALSE;
$db_new=$this->load->database($config,TRUE);
$this->db=$db_new;
$this->load->dbforge();
$fields=array(
'id'=>array('type'=>'INT','auto_increment'=>TRUE,'constraint'=>'5'),
'first_name'=>array('type'=>'VARCHAR','constraint'=>'60'),
'last_name'=>array('type'=>'VARCHAR','constraint'=>'60','null' => TRUE),
);
$this->dbforge->add_field($fields);
$this->dbforge->add_key('id',TRUE);
$this->dbforge->create_table('clients');
}
在上面的代碼我首先創建一個數據庫,然後加載該數據庫作爲當前數據庫。此代碼工作完全在本地主機WAMP服務器,但是當我把它上傳到服務器,然後嘗試創建它提供了以下錯誤
Error No 1044: Access denied for user 'username'@'localhost' to database 'database_name'
造成THR誤差
if ($this->dbforge->create_database($database_name)){
的代碼行數據庫
* 在上述代碼中顯示的數據庫配置設置中,'用戶名'和'密碼'是作爲已有數據庫(通過cPanel創建的)的用戶名和密碼給出的。這是問題......? *。
當前正在嘗試創建新數據庫的用戶具有所有可用特權。但是因爲'CREATE DATABASE'特權不存在。
對於數據庫命名我已經使用的數據庫名稱「prefix_」(的cPanel數據庫命名格式)
如何創建使用dbforge類,並訪問該數據庫使用現有的用戶數據庫.. 。?
我想你將無法與用戶創建一個數據庫。您可以通過CPanel創建一個新的數據庫,但我不確定您將能夠創建一個可以訪問這兩個數據庫的用戶。也許你可以聯繫主機提供商? –
@ Lex-'創建一個可以訪問這兩個數據庫的用戶' - 意味着我必須通過cPanel創建數據庫並通過cPanel將新的數據庫添加到該數據庫中。 – Sanjay