내 Linux 컴퓨터에 로컬 postgreSQL 데이터베이스가 설치되어 있습니다. NAS Synology DiskStation(DS216j)에서 이 데이터베이스를 실행하고 싶습니다.
2단계까지 이 지침을 따랐습니다. http://iamsensoria.com/post/130235198606/postgres-on-synology (데이터베이스와 사용자를 생성할 수 있습니다.) 그런데 3단계를 수행할 수 없습니다.
pgAdminIII를 사용하여 데이터베이스에 연결하려고 하는데 오류 메시지가 나타납니다.
"서버가 연결을 허용하지 않습니다. 연결 라이브러리에서 서버에 연결할 수 없다고 보고합니다. Oppkobling nektes 서버가 호스트 "192.168.0.16"에서 실행 중이고 포트 5432에서 TCP/IP 연결을 허용합니까? 이 메시지가 나타나면 연결을 시도하고 있는지 확인하십시오. 서버가 실제로 지정된 포트에서 PostgreSQL을 실행하고 있습니다. ping 또는 이에 상응하는 기능을 사용하여 클라이언트와 서버 호스트 간의 네트워크 연결이 올바른지 테스트하십시오. 보안상의 이유로 PostgreSQL은 처음에는 서버에서 수신 대기하지 않습니다. 사용 가능한 모든 IP 주소. 네트워크를 통해 서버에 액세스하려면 먼저 주소 수신을 활성화해야 합니다. 버전 8.0부터 PostgreSQL 서버의 경우 postgresql.conf 파일의 "listen_addresses" 매개변수를 사용하여 제어됩니다. 서버가 수신해야 하는 IP 주소 목록을 입력하거나 "*"를 사용하여 사용 가능한 모든 IP 주소(이전 서버의 경우)를 수신하려면 "tcpip_socket" 매개변수를 "true"로 설정해야 합니다. pgAdmin을 사용할 수 있습니다. .III postgresql.conf 구성 파일을 편집하려면 이 파일을 변경한 후 설정을 적용하려면 서버 프로세스를 다시 시작해야 합니다. 구성을 다시 확인한 후에도 여전히 이 오류 메시지가 나타나는 경우에는 여전히 문제가 있는 것입니다. 치명적인 PostgreSQL 오류 동작이 발생할 수 있습니다. 일부 낮은 수준의 네트워크 연결 문제(예: 방화벽 구성)가 있을 수 있으므로 PostgreSQL 커뮤니티에 버그를 보고하기 전에 이를 철저히 확인하십시오.
ps: Hanxue DS-216J에서 포트 5432를 열었습니다.
누구든지 이것을 경험 했습니까? 미리 감사드립니다.
나는 또한 다음 리소스를 사용합니다.
https://askubuntu.com/questions/423165/remotely-access-postgresql-database
------업데이트 1----
ssh [email protected]
testuser@test:~$ sudo -s
sh-4.3# su - postgres
postgres@test:~$ psql
psql (9.3.14)
Type "help" for help.
postgres=# \l
---------------------------------
download | DownloadStation
mediaserver | MediaIndex
mydb | postgres
photo | PhotoStation
postgres | postgres
template0 | postgres | SQL_ASCII | C | C | =c/postgres
postgres=CTc/postgres
template1 | postgres | SQL_ASCII | C | C | =c/postgres
postgres=CTc/postgres
usermydb | postgres | SQL_ASCII | C | C |
video_metadata | VideoStation | SQL_ASCII | C | C |
------------------------------------------------------------
postgres=# \c mydb
You are now connected to database "mydb" as user "postgres".
mydb=# SHOW hba_file;
hba_file
-----------------------------
/etc/postgresql/pg_hba.conf
(1 row)
mydb=# sudo vim /etc/postgresql/pg_hba.conf // NOT WORKING
mydb=# sudo vim /etc/postgresql/9.1/main/pg_hba.conf // NOT WORKING
답변1
문제는 Postgres가 루프백 주소(127.0.0.1)에 바인딩된다는 것입니다. 이는 일반적으로 데이터베이스가 루프백 외부의 연결을 허용하지 않음을 의미합니다. 그것은 당신의 달리기 결과를 보면 분명합니다 netstat
.
해결책:
외부 연결(가급적 PC의 IP 주소)을 허용하려면 pg_hba.conf 파일을 수정해야 합니다. 보세요다음과 같은. 사용 중인 Postgres 버전이 무엇인지 100% 확신할 수는 없지만 각 버전에 대해 pg_hba.conf를 구성하는 데 큰 차이가 있을 것이라고는 상상할 수 없습니다.