Поиск по блогу

суббота, 24 сентября 2011 г.

Настройка удаленного доступа к бд через pgadmin3

Задача: Нужная нам база находится на другом компьютере. Необходимо достучаться до базы по сети через pgadmin3 и его настройку добавления новых серверов.
Необходимые инструменты: postgresql, pgadmin3, ip-адреса компьютера с базой (TARGET) и компьютера-клиента (CLIENT).
Система: win, linux.

1. Запускаем pgadmin3.

Ищем меню Файл->Добавить сервер. Добавляем нужный сервер, прописывая CLIENT ip, пароль postgres, доступ к базе или ко всем базам (all) и т.д. Пробуем соединиться. Далее два варианта развития действий:

2. Server doesn't listen


Скорее всего включен файерволл и не добавлено правило для порта 5432. В этом случае:
а) для Windows

Панель управления -> Брандмауер Windows ->Исключение добавить

Имя: Postgres, порт 5432, тип tcp

б) для linux

# vim /etc/sysconfig/iptables
//добавляем правило для порта 5432, например

-A INPUT -m state --state NEW -m tcp -p tcp --dport 5432 -j ACCEPT


//добавляем это правило, если нужен доступ не со всех компьютеров, а с доверенных:


-A INPUT -m state --state NEW -m tcp -p tcp --dport 5432 --source x.x.x.x -j ACCEPT

#service iptables restart

3. Database access failed (или как-то так)
Компьютеру CLIENT не разрешено соединяться с базой на компьютере TARGET.
на TARGET компьютере:

а) для windows

pgadmin3->Открыть postgresql.conf или Открыть pg_hba.conf, а дальше вносить такие же правки так же как в б)

перезапустить pgadmin3.

б) для linux

1) правим postgresql.conf

раскоменчиваем строчки (если закоменчены) и правим например так:

listen_addresses='*'
port=5432
max_connections=100

2) правим pg_hba.conf

host/all/all/CLIENT ip/маска подсети CLIENT/password
например host/all/all/127.0.0.1/32/password

запись 127.0.0.1/32 также означает, что доступ предоставляется для одного ip-адреса.


#service postgresql restart


Источник: По мотивам

1 комментарий:

  1. Thanks) I didn't know about this tool. So, I 'll know) But I'd like to use standard tools from official package kit, because it's rather reliable (as far as I know) and popular. Many distrs have it in their repositories. If something broken in postgresql database on another pc, I always have a pgadmin)

    ОтветитьУдалить