$ psql -U my_login -h 10.0.0.101 postgres
psql: could not connect to server: Connection refused
Is the server running on host "10.0.0.101" and accepting
TCP/IP connections on port 5432?
Подобная ошибка возникает, если доступ к серверу ограничен файерволом или PostgreSQL не принимает подключение по указанному адресу/порту (10.0.2.15). Настройка файервола выходит за рамки тематики данного сайта, поэтому ниже приводится только решение проблемы, связанной с настройкой PostgreSQL.
Необходимо зайти на сервер по ssh и проверить статус СУБД командой:
$ sudo netstat -pant | grep postgres
tcp 0 0 127.0.0.1:5432 0.0.0.0:* LISTEN 1439/postgres
Pезультат выполнения команды означает, что PostgreSQL принимает подключения по адресу 127.0.0.1 и порту 5432. Чтобы изменить настройки, понадобится отредактировать файл postgresql.conf
Найти местонахождение файла можно командой:
$ find / -name postgresql.conf 2> /dev/null
/etc/postgresql/9.2/main/postgresql.conf
Надо указать PostgreSQL, что необходимо принимать подключения по всем адресам:
listen_addresses = '*'
и перезагрузить СУБД:
$ sudo service postgresql restart
* Restarting PostgreSQL 9.2 database server [ OK ]
Теперь необходимо проверить настройки:
$ sudo netstat -pant | grep postgres
tcp 0 0 0.0.0.0:5432 0.0.0.0:* LISTEN 1492/postgres
tcp6 0 0 :::5432 :::* LISTEN 1492/postgres
Теперь доступ к базе данных есть с любого адреса. Можно попытаться подключиться к базе данных:
$ psql -U my_login -h 10.0.0.101 postgres
Если сервер доступен, то будет получен доступ к базе данных postgres:
psql (9.2.1)
Type "help" for help.
postgres=#
либо можно получить другую ошибку:
psql: FATAL: no pg_hba.conf entry for host "10.0.0.1", user "my_login", database "postgres", SSL on
FATAL: no pg_hba.conf entry for host "10.0.0.1", user "my_login", database "postgres", SSL off
В этом случае поможет другой рецепт