2012-09-06 55 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"; 
相关问题