2014-04-16 3 views
0

저는 Codeigniter에 mysql (i)을 사용하지만 PostgreSQL을 연결해야하는 고객이 있습니다. 나는 보통의 설정을 시도하고 Postgre의 특정 포트를 추가하지만이 오류 얻을 : 이제Codeigniter 데이터베이스를 연결하는 PostgreSQL 오류

$active_group = (ENVIRONMENT == 'development') ? 'offline' : 'online'; 
//Set to 'development' in file: index.php  
$active_record = TRUE; 

/** 
* OFFLINE CONFIGURATION 
*/ 

$db['offline']['hostname'] = 'localhost'; 
$db['offline']['username'] = 'root'; 
$db['offline']['password'] = 'root'; 
$db['offline']['database'] = 'testing'; 
$db['offline']['dbdriver'] = 'postgre'; 
$db['offline']['dbprefix'] = ''; 
$db['offline']['pconnect'] = TRUE; 
$db['offline']['db_debug'] = TRUE; 
$db['offline']['cache_on'] = FALSE; 
$db['offline']['cachedir'] = ''; 
$db['offline']['char_set'] = 'utf8'; 
$db['offline']['dbcollat'] = 'utf8_general_ci'; 
$db['offline']['swap_pre'] = ''; 
$db['offline']['autoinit'] = TRUE; 
$db['offline']['stricton'] = FALSE; 
$db['offline']['port'] = 5432; 

/** 
* ONLINE CONFIGURATION 
*/ 
$db['online']['hostname'] = '?'; 
$db['online']['username'] = '?'; 
$db['online']['password'] = '?'; 
$db['online']['database' .... 
//Continues with online configuration...  

내가 사용 :

Unable to connect to your database server using the provided settings.

enter image description here

내 코드는 단순히이입니다 지금은 offline 구성이며 위의 오류를 보여주는 작동하지 않습니다. 나는 "db_debug"를 FALSE로 설정하려고 시도했으나 작동하지만 느낌을 줄이는 것만으로 오프라인 모드에서 데이터베이스 오류를 표시하지 않을 것입니다 ...

나는 pgAdmin이 열려 있습니다. 동일한 데이터베이스에 연결되어 있고 정상적으로 작동하고 있습니다. 이것에 대한 어떤 힌트?

답변

0

CodeIgniter DB 드라이버의 documentation page에 따르면 사용 가능한 값은 mysql, postgres, odbc입니다. 따라서 $db['offline']['dbdriver'] 값을 postgre에서 postgres으로 변경하고 다시 시도하십시오. 사용자 이름과 비밀번호가 맞으면 문제없이 연결할 수 있습니다.

편집 : 드라이버 이름이 실제로 문서 (즉, 정말 부끄러운 일)에 위배 postgre 대신 postgres이라고 제안 다른 소스가 있습니다. 따라서 postgrespostgresql으로 시도해 보시기 바랍니다. 여전히 작동하지 않는다면 php.ini를 확인하고 PostgreSQL 모듈의 주석 처리를 해제했는지 확인하십시오 (extension=php_pgsql 행 검색).

이 모듈의 이름은 Linux 박스에서는 php_pgsql.so이고, Windows에서는 php_pgsql.dll입니다.

라인 앞에 ;이있는 경우 ;을 제거하고 Apache 서버를 다시 시작하십시오 (Windows에서 사용 가능해야 함). 그렇지 않다면 먼저 설치하고 php.ini에 추가해야합니다. 설치는 배포판에 따라 다르지만, 리눅스 박스에 설치하는 방법에 대한 많은 자습서가 있습니다.

+0

Tku. 나는 해봤지만 작동하지 않습니다.오류 : 메시지 경고 : require_once를을 (.../시스템/데이터베이스/드라이버/포스트 그레스/postgres_driver.php가) : 스트림을 열지 못했습니다 : PHP는 오류가 심각도 가 검출 된 해당 파일이나 디렉토리 파일 이름 : 데이터베이스/DB.php 줄 번호 : 140 실제로 'postgre'가 아닌'postgres'는 다음과 같습니다. http://ellislab.com/forums/viewthread/131807/#925186 –

0

확인 후 사용자 이름에 오류가 발생했습니다. 구성이 나에게 완료되지 않았으며 원래 사용자 이름을 쓰는 사람이 동의 한대로 root 대신 postres을 입력했습니다.

불행히도 CI 클래스는 특정 오류를 출력하지 않고 일반 "제공된 설정을 사용하여 데이터베이스 서버에 연결할 수 없습니다."

죄송합니다. 모두에게 감사드립니다.

4

다음 대신 포스트 그레스의

$db['offline']['dbdriver'] = 'pdo' 

를 사용

$db['offline']['dbdriver'] = 'postgre' 

에 문제가있는 경우.

관련 문제