2012-09-06 4 views
0

나는 cpanel을 통해 생성 된 데이터베이스와 사용자를 가지고있다. (나는 그 사용자를 그 데이터베이스에 추가했고 그 사용자와 암호를 사용하여 그 데이터베이스에 접근 할 수있다.) 나는 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)){ 
일으킨 코드의 라인을 제공하는 데이터베이스를 만들려고

* 위의 코드에 표시된 데이터베이스 구성 설정에서 'username'과 'password'는 이미 존재하는 데이터베이스 (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";