2012-09-06 95 views
0

我有一個數據庫和通過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類,並訪問該數據庫使用現有的用戶數據庫.. 。?

+0

我想你將無法與用戶創建一個數據庫。您可以通過CPanel創建一個新的數據庫,但我不確定您將能夠創建一個可以訪問這兩個數據庫的用戶。也許你可以聯繫主機提供商? –

+0

@ Lex-'創建一個可以訪問這兩個數據庫的用戶' - 意味着我必須通過cPanel創建數據庫並通過cPanel將新的數據庫添加到該數據庫中。 – Sanjay

回答

1

嘗試創建一個超級用戶第一

mysql > GRANT ALL PRIVILEGES on databasename.* TO "username"@"localhost" IDENTIFIED BY "password"; 
相關問題