УкраїнськаEnglishmRussian
Вход/Новый
В теме много сообщений

Подключение к серверу БД PostgreSQL


Автор Сообщение
Сообщение создано: 05. 04. 2013 [12:58]
alkuz2009
Алексей Кузьмичев
Создатель темы
Зарегистрирован(а) с: 14.01.2012
Сообщения: 12
Помогите пожалуйста настроить подключение к удаленному серверу БД PostgreSQL.

Строка поля Адрес - ;192.168.141.110;tracemode;123;tp
При попытке взвести флаг Включен выдает следующее сообщение:

Ошибка подключения к БД:FATAL: no pg_hba.conf entry for host "192.168.141.190",
user "tracemode", database "template1", SSL off

При этом pgAdmin с тем же пользователем и паролем подключается без проблем.
В conf файле на сервере доступ открыт всей подсети.

С подключением к локальному серверу проблем нет.

PS: OS Debian 6 , OpenSCADA 0.8.0.5

[Сообщение редактировалось 1 раз(а), в последний раз 05.04.2013 в 13:11.]
Сообщение создано: 05. 04. 2013 [21:39]
roman
Roman Savochenko
Moderator
Contributor
Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3750
"alkuz2009" wrote:

Помогите пожалуйста настроить подключение к удаленному серверу БД PostgreSQL.

Кратко, процедура настройки сервера PostgreSQL, для успешного подключения OpenSCADA, приведена в документации на модуль: http://wiki.oscada.org/Doc/PostgreSQL#h1000-6

"alkuz2009" wrote:

Строка поля Адрес - ;192.168.141.110;tracemode;123;tp
При попытке взвести флаг Включен выдает следующее сообщение:

Ошибка подключения к БД:FATAL: no pg_hba.conf entry for host "192.168.141.190",
user "tracemode", database "template1", SSL off

Изучайте документацию PostgreSQL на предмет такой ошибки. Лично у меня никогда таких ошибок не было, хотя PostgreSQL я почти не использую.

Собственно, скорее всего и нужно сделать то о чём написано в ошибке, т.е. добавить запись про хост "192.168.141.190" в pg_hba.conf. Могли бы Google по этому поводу напрячь: http://postgresql.ru.net/node/214593

Learn, learn and learn better than work, work and work.
Сообщение создано: 08. 04. 2013 [15:15]
alkuz2009
Алексей Кузьмичев
Создатель темы
Зарегистрирован(а) с: 14.01.2012
Сообщения: 12
"roman" wrote:


Изучайте документацию PostgreSQL на предмет такой ошибки. Лично у меня никогда таких ошибок не было, хотя PostgreSQL я почти не использую.

Собственно, скорее всего и нужно сделать то о чём написано в ошибке, т.е. добавить запись про хост "192.168.141.190" в pg_hba.conf. Могли бы Google по этому поводу напрячь: http://postgresql.ru.net/node/214593


У сервера есть администратор. Он утверждает что сервер правильно настроен. К серверу подключены 7 клиентов у которых нет подобных проблем.
Фрагмент файла pg_hba.conf:

# TYPE DATABASE USER CIDR-ADDRESS METHOD

# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
#host all all ::1/128 md5
host tp all 192.168.141.0/24 md5
host tp all 10.50.39.0/24 md5

По моей просьбе в файл добавлялась следующая строка:
host all all 192.168.141.1/32 md5
и md5 менялась на trust. Результат тот же.

На моем ПК для экспериментов установлен сервер PostgreSQL и OpenSCADA. Локальное подключение к серверу проходит без проблем.
Сообщение создано: 08. 04. 2013 [21:08]
almaz
Almaz Karimov
Contributor
Зарегистрирован(а) с: 25.09.2008
Сообщения: 516
"alkuz2009" wrote:
Фрагмент файла pg_hba.conf:

# TYPE DATABASE USER CIDR-ADDRESS METHOD
host tp all 192.168.141.0/24 md5

Установлено tp вместо all. То есть доступ только к БД tp.
"alkuz2009" wrote:
По моей просьбе в файл добавлялась следующая строка:
host all all 192.168.141.1/32 md5

Почему добавлялась не вся подсеть 192.168.141.0/24? Или хотя бы адрес компа правильный 192.168.141.190/32?

Добавьте на сервере:
host all all 192.168.141.190/32 trust

После необходимо перепустить сервер БД:
sudo service postgresql restart
или
sudo /etc/rc.d/postgresql restart

Может быть ещё надо прописать пользователя и пароль на сервере:
psql -U postgres -d template1 -c "ALTER USER tracemode PASSWORD '123'"

http://wiki.oscada.org/Doc/PostgreSQL?v=80l#h1000-6

Ещё на сервере можно посмотреть файл postgresql.conf строка listen_addresses = '*' и некоторые другие.

[Сообщение редактировалось 3 раз(а), в последний раз 08.04.2013 в 21:31.]

21 век - век повсеместной автоматизации. Главное - во благо всем людям.
Сообщение создано: 08. 04. 2013 [21:35]
roman
Roman Savochenko
Moderator
Contributor
Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3750
"alkuz2009" wrote:

"roman" wrote:

Изучайте документацию PostgreSQL на предмет такой ошибки. Лично у меня никогда таких ошибок не было, хотя PostgreSQL я почти не использую.

Собственно, скорее всего и нужно сделать то о чём написано в ошибке, т.е. добавить запись про хост "192.168.141.190" в pg_hba.conf. Могли бы Google по этому поводу напрячь: http://postgresql.ru.net/node/214593

У сервера есть администратор. Он утверждает что сервер правильно настроен. К серверу подключены 7 клиентов у которых нет подобных проблем.

Самое простое воткнуться вместо одного из этих клиентов, с его IP, и проверить. Возможно редактируется не тот pg_hba.conf.

В любом случае у меня нет никаких проблем:
- Ставлю PostgreSQL сервер на одной машине
- С другой машины подключаюсь к этому серверу через OpenSCADA, адресом ";192.168.1.2;postgres;123456;test" и получаю вашу ошибку.
- Добавляю в pg_hda.conf строку: "host all all 192.168.1.0/24 trust"
- Подключение проходит!
- Меняю в pg_hda.conf строку: "host all all 192.168.1.3/24 trust"
- Подключение проходит!
- Меняю в pg_hda.conf строку: "host all all 192.168.1.3/32 trust"
- Подключение проходит!
- Меняю в pg_hda.conf строку: "host all all 192.168.1.3/8 trust"
- Подключение проходит!

Learn, learn and learn better than work, work and work.
Сообщение создано: 09. 04. 2013 [11:05]
alkuz2009
Алексей Кузьмичев
Создатель темы
Зарегистрирован(а) с: 14.01.2012
Сообщения: 12
ПК: Debian 6, ядро 3.2

сетевые настройки:
root@OpenSCADA:/home/user# ifconfig -a
eth0 Link encap:Ethernet HWaddr 00:16:35:ac:57:fb
inet addr:192.168.141.190 Bcast:192.168.141.255 Mask:255.255.255.0
inet6 addr: fe80::216:35ff:feac:57fb/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:60145940 errors:0 dropped:20219 overruns:0 frame:0
TX packets:6413909 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:36052822629 (33.5 GiB) TX bytes:435241373 (415.0 MiB)
Interrupt:17

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:465574 errors:0 dropped:0 overruns:0 frame:0
TX packets:465574 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:70783169 (67.5 MiB) TX bytes:70783169 (67.5 MiB)

pan0 Link encap:Ethernet HWaddr 02:ad:39:17:1c:3e
BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

pg_hda.conf локальной базы:
# DO NOT DISABLE!
# If you change this first entry you will need to make sure that the
# database
# super user can access the database using some other method.
# Noninteractive
# access to all databases is required during automatic maintenance
# (custom daily cronjobs, replication, and similar tasks).
#
# Database administrative login by UNIX sockets
local all postgres md5

# TYPE DATABASE USER CIDR-ADDRESS METHOD

# "local" is for Unix domain socket connections only
local all all md5
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
#host all all ::1/128 md5
host all all 192.168.141.0/24 md5

Настройки сети другого ПК:

Microsoft Windows XP [Версия 5.1.2600]
(С) Корпорация Майкрософт, 1985-2001.

C:\Documents and Settings\operator>ipconfig

Настройка протокола IP для Windows


Локальная сеть - Ethernet адаптер:

DNS-суффикс этого подключения . . : oemk
IP-адрес . . . . . . . . . . . . : 192.168.141.110
Маска подсети . . . . . . . . . . : 255.255.255.0
Основной шлюз . . . . . . . . . . : 10.50.39.2

C:\Documents and Settings\operator>

pg_hda.conf базы:

# TYPE DATABASE USER CIDR-ADDRESS METHOD

# IPv4 local connections:
host all all 127.0.0.1/32 md5
host all all 192.168.141.1/32 trust
#host tp all 192.168.141.190/32 trust
host tp all 10.50.39.0/32 md5
# IPv6 local connections:
#host all all ::1/128 md5
host tp all 192.168.141.0/24 trust
#host tp all 10.50.39.0/24 md5

База tp и пользователь tracemode успешно используются другими клиентами этой же подсети.

PS: В тупик ставит тот факт, что pgAdmin без проблем соединяется как с локальной БД так и с удаленной.

[Сообщение редактировалось 1 раз(а), в последний раз 09.04.2013 в 12:08.]
Сообщение создано: 09. 04. 2013 [12:22]
roman
Roman Savochenko
Moderator
Contributor
Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3750
"alkuz2009" wrote:

PS: В тупик ставит тот факт, что pgAdmin без проблем соединяется как с локальной БД так и с удаленной.

pgAdmin запускаете на той-же машине, что и OpenSCADA?
Если так, то скорее всего проблема в версиях PG.
PG вообще славится таким разбродом и шатанием, почему в дистрибутивах обычно несколько версий PG и лежит, например в ALTLinux:
[roman@roman bin]$ apt-cache search postgresql*-server | grep server
postgresql-8.2eter-server - The programs needed to create and run a PostgreSQL server
postgresql-8.3eter-server - The programs needed to create and run a PostgreSQL server
postgresql-8.4eter-server - The programs needed to create and run a PostgreSQL server
postgresql8.4-server - The programs needed to create and run a PostgreSQL server
postgresql9.0-server - The programs needed to create and run a PostgreSQL server
postgresql9.1-server - The programs needed to create and run a PostgreSQL server

Выясните с какой версией клиентской библиотеки PG собран pgAdmin и OpenSCADA.

Learn, learn and learn better than work, work and work.
Сообщение создано: 09. 04. 2013 [15:26]
alkuz2009
Алексей Кузьмичев
Создатель темы
Зарегистрирован(а) с: 14.01.2012
Сообщения: 12
"roman" wrote:

Выясните с какой версией клиентской библиотеки PG собран pgAdmin и OpenSCADA.

pgadmin3 1.10.5 libpq5 8.4.16
OpenSCADA 0.8.0.5 bd_PostgreSQL.so 0.9.2

В этой подсети есть еще 4 машины на которых присутствует PostgreSQL.
На одной 8 версии, а на 3 других 9. На этих машинах Trace Mode 6 раз в 5 сек. пишет пору сотен параметров - альтернатива архиву. При подключении к ним та же самая басня.
Может попробовать свалится на ALTLinux?
Сообщение создано: 09. 04. 2013 [15:49]
roman
Roman Savochenko
Moderator
Contributor
Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3750
"alkuz2009" wrote:

"roman" wrote:

Выясните с какой версией клиентской библиотеки PG собран pgAdmin и OpenSCADA.

pgadmin3 1.10.5 libpq5 8.4.16
OpenSCADA 0.8.0.5 bd_PostgreSQL.so 0.9.2

bd_PostgreSQL.so тоже линкуется с библиотекой libpq, соответственно командой ldd к ней гляньте с какой.

"alkuz2009" wrote:

Может попробовать свалится на ALTLinux?

Можно просто загрузиться с живого диска ALTLinux и там проверить, хотя я не уверен, что модуль bd_PostgreSQL.so на живой диск ставится. Но если есть выход в интернет, то можно прямо на живом диске и доустановить.

Learn, learn and learn better than work, work and work.
Сообщение создано: 10. 04. 2013 [10:11]
alkuz2009
Алексей Кузьмичев
Создатель темы
Зарегистрирован(а) с: 14.01.2012
Сообщения: 12
Поборол!!!
Причиной всему стало тупое желание разрешить доступ к конкретной базе.
Попробовал все. Результат:
1) поле DATABASE должно быть обязательно all
2) поле CIDR-ADDRESS ip-адрес_клиента/32 или ip-подсети.0/24

В моем случае рабочие варианты:

host all all 192.168.141.190/32 md5
host all all 192.168.141.0/24 md5

#host all all 192.168.141.190/32 md5
host all all 192.168.141.0/24 md5

host all all 192.168.141.190/32 md5
#host all all 192.168.141.0/24 md5

Огромное Вам спасибо!!!



17556