我有一个数据库和通过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