2011-11-04 2 views
4

최근에 새로운 DB를 배우기 위해 최근에 MySQL에서 PostgreSQL로 전환하기로 결정했습니다. 꽤 고통 스럽지만, 나는 가깝다고 생각합니다.PHP pdo 드라이버를 통해 postgreSQL 데이터베이스에 연결할 수 없습니다.

php와 PDO를 사용하고 있습니다. PDO 드라이버가 성공적으로 설치 및 구성되었습니다.

Connection failed: SQLSTATE[08006] [7] FATAL: Ident authentication failed for user "postgres" 

나는 (내가/PW는 $ DSN 변수에, 별도의 사용자를 호출하는 몇 가지 변화를 시도했습니다 다음 연결 호출을 사용하고 있습니다 : 내 사이트를 열기

, 나는 오류 포트를 포함하여 $ 사용자/$ 패스 변수, = 5432) :

$ su postgres 
: 또한

$dsn = 'pgsql:dbname=db1;host=localhost;user=postgres;password=pass'; 
$db = new PDO($dsn); 

, 나는 명령 줄에서 내 DB에 로그인 할 수 있어요3210

(패스)

$ psql db1 

출력 :

could not change directory to "/home/ec2-user" psql (8.4.9) Type "help" for help.

db1=#

어떤 아이디어가? 필요한 경우 더 많은 정보를 제공하고 싶습니다.

+0

pg_hba.conf 파일은 괜찮습니까? 그것은 PostgreSQL과 함께 처음에는 고통의 알려진 소스입니다 ... – maraspin

+1

@ maraspin : 난 _just_이 페이지를 새로 고치기 전에 그걸로 어리석은 시도했다. 그것은 효과가 있었다. 일부 'ident'값을 '신뢰'로 전환해야했습니다. 수락 할 수 있도록 답변으로 추가 할 수 있습니까? –

+0

물론입니다. 답변 추가됨. Tnx. :-) 추신 : 그래, 그래. 보안이 너무 약한 설정으로 인해 위험에 처할 수 있습니다. 문제가 거기에 있다고 확인한 후에는 pg_hba.conf 문서를 한 번 살펴보고 그에 따라 행동하는 것이 좋습니다. 알겠지만 ... 어쨌든 PostgreSQL이 필요합니다. – maraspin

답변

6

pg_hba.conf 파일이 정상입니까? 그것은 PostgreSQL을 가지고 처음에는 고통의 알려진 원천입니다. 그리고 여러분이 언급하는 상황은 그런 종류의 문제에 대한 좋은 후보입니다. :-)

+0

로컬 및 IPv4 레코드의 값을'ident'에서'trust'로 변경해야했습니다. 마지막으로, 나는 완벽하게 작동하는 LAPP (5.4) 서버를 사용하고있다. 감사! –

+0

문제의 원인을 발견했기 때문에 기쁘게 생각합니다. 이제는 어디서 손을 댈 지 알았으므로 PostgreSQL 문서를 살펴보고 pg_hba.conf 파일을 올바르게 구성하는 것이 좋습니다. 보안에 중요 할 수 있습니다. – maraspin

관련 문제