PHP 스크립트에서 Pgpool2 서버로 요청을 보내는 방법은 무엇입니까?

PHP 스크립트에서 Pgpool2 서버로 요청을 보내는 방법은 무엇입니까?

실제로 저는 pgpool2와 docker 컨테이너를 사용하여 postgres 복제 시스템을 만들려고 합니다. postgres를 실행하는 2개의 컨테이너와 pgpool2용 또 다른 컨테이너를 만들었습니다. 따라서 PHP 스크립트를 통해 pgpool2 서버에 연결하려고 하면 다음 오류가 발생합니다.

pg_connect(): PostgreSQL 서버에 연결할 수 없습니다. 서버에 연결할 수 없습니다. 연결이 거부되었습니다.

답변1

나는 아무 관계도 없어루스트어바웃전에는…하지만…

대부분의 기본 구성에서 postgresql은 로컬이 아닌 연결을 허용하지 않습니다. 원격 연결을 허용하려면 pg_hba.conf 파일에 "host" 줄을 추가해야 합니다.

일반적으로 이 파일은 다음과 유사한 위치에 있습니다.

/etc/postgresql/9.6/main/pg_hba.conf

이 같은:

#TYPE   DATABASE     USER         ADDRESS      AUTH METHOD
host    database1    user1     192.168.1.0/24      md5

그런 다음 /etc/init.d/postgresql restart 또는 운영 체제에 적합한 방법을 통해 postgresql 클러스터를 다시 시작하십시오.

다음을 통해 원격 호스트의 열린 포트를 볼 수 있어야 합니다.

netstat -l

올바르게 했다면 주소가 'localhost'에서 0.0.0.0으로 변경되어야 합니다.

또한 "user1"을 postgresql 사용자로 비밀번호와 함께 추가하고 해당 사용자가 사용할 데이터베이스를 생성해야 합니다.

postgresql 슈퍼유저가 되어 이 작업을 수행할 수 있습니다.

sudo -s
#su postgres
postgres@host$ createuser user1 -P
     enter in a password
postgres@host$ createdb database1 -O user1

그러면 다음 로컬 명령을 통해 원격 postgresql 클러스터에 연결할 수 있습니다.

psql -h remote.host.address -U user1 -d database1

물론 모든 IP 주소는 예시일 뿐이다. 적절하게 변경하십시오.

관련 정보