Подключение к удаленному серверу postgresql на amazon ec2
Я запустил экземпляр amazon ec2 и установил над ним postgresql 9.1. Затем я отправился в
Группа безопасности: quicklaunch-1(there was one more
default` который я не менял) и открыл порт 5432 TCP, таблица выглядит так:
(Service) Source Action
22 0.0.0.0/0 Delete
5432 0.0.0.0/32 Delete
5433 0.0.0.0/32 Delete
6432 0.0.0.0/32 Delete
Я создал базу данных и пользователя .
Мой /etc/postgresql/9.1/main/pg_hba.conf
выглядит так:
# Database administrative login by Unix domain socket
local all postgres peer
# TYPE DATABASE USER ADDRESS METHOD
host all all 0.0.0.0/0 md5
host db_name user_name 0.0.0.0/0 md5
# "local" is for Unix domain socket connections only
local all all peer
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5
# Allow replication connections from localhost, by a user with the
# replication privilege.
#local replication postgres peer
host replication postgres 127.0.0.1/32 md5
host replication postgres ::1/128 md5
и /и т. д./в PostgreSQL/9.1/основные/данных PostgreSQL.conf выглядит так:
# - Connection Settings -
listen_addresses = '*'
#listen_addresses = 'localhost' # what IP address(es) to listen on;
# comma-separated list of addresses;
# defaults to 'localhost', '*' = all
# (change requires restart)
port = 5432 # (change requires restart)
затем я пытаюсь подключиться к удаленная машина следующим образом:
psql -h ec2-xxx-xx-xxx-xxx.compute-1.amazonaws.com -d <database_name> -U <username>
где ec2-xxx-xx-xxx-xxx.compute-1.amazonaws.com это мой публичный DNS.
вышеуказанная команда не приводит ни к какому соединению, как я могу подключиться?
3 ответов
в этой таблице:
5432 0.0.0.0/32 Delete
5433 0.0.0.0/32 Delete
6432 0.0.0.0/32 Delete
в CIDRs похоже, вы не разрешаете любой ИС. Не должны ли они быть 0.0.0.0/0
вместо этого, как то, что у вас есть для порта 22 (ssh)?
Я нашел решение этой проблемы. Необходимы две вещи.
используйте текстовый редактор для изменения pg_hba.conf. Найдите хост линии все 127.0.0.1 / 0 md5. Сразу под ним добавьте эту новую строку: host all all 0.0.0.0 / 0 md5
-
редактирование данных PostgreSQL в PostgreSQL.файл conf:
используйте текстовый редактор для изменения postgresql.conf. Найдите строка, начинающаяся с #listen_addresses = 'localhost'. Раскомментируйте строку, удалив#, и измените localhost на . Теперь строка должна выглядеть так: listen_addresses = ' ' # какой IP-адрес(ы) для прослушивания;.
теперь просто перезапустите службу postgres, и она подключится
вашей команде psql нужна опция a-W, которая позволяет ввести пароль для пользователя БД и опцию a-p, а затем номер порта postgres (5432 по умолчанию)
ура!