PostgreSQL через pgAdmin III — сервер не слушает

В нашей компании есть старый Linux-сервер, на котором запущено несколько веб-приложений tomcat. Одно из этих приложений подключается к PostgreSQL. Хотя я кодер C#.Net/Windows, мне нужно подключиться к этой базе данных с моего компьютера с помощью pGAdmin III (или любого предложенного эквивалента). При попытке подключения pgAdmin говорит, что сервер не прослушивается.

Не зная много о Linux, я использую WinSCP для подключения к файловой структуре. У меня нет документации по старым приложениям, любым источникам данных или их подключениям к данным. Я смог определить следующее, предполагая, что местоположение веб-приложения действительно законно, а не какая-то не работающая копия.

PostgreSQL

В информации о соединении одного приложения:

 jdbc:postgresql://localhost:5432/somename

Немного покопавшись, я нашел следующие возможные экземпляры postgresql в файловой структуре сервера.

\etc\postgresql\8.3\main
\etc\postgresql\8.4\main

Там также есть \etc\postgresql-common с очень разными типами файлов.

Если есть другие экземпляры или связанная папка, я не знаю и не знаю, где искать. Это лабиринтный зверь.

Я обеспечил в файле конфигурации для обоих это listen="*", которое должно было быть одним из двух исправлений. Он уже был установлен на *, поэтому, если предположить, что один из них правильный, у меня все должно получиться.

Я знаю, что по крайней мере какой-то экземпляр postgresql включен, потому что старое приложение работает и извлекает данные, так что это другое из двух исправлений.

pgAdmin

Я слышал в отдельной ветке здесь, что переустановка pgAdmin может решить проблему, но это не так. Пробовал с ssl и без.

Вот как я пытаюсь настроить соединение в pgAdmin III:

Имя: SomeName

Ведущий: Я пробовал здесь несколько комбинаций. //имя_сервера/какое-то имя или просто //имя_сервера

Порт: 5432 (соответствует ожидаемому, также порт от соединения)

Сервис: пустой

MaintenanceDB: я попробовал значения по умолчанию в pgadmin, postgres и фактической базе данных, к которой я пытаюсь подключиться.

имя пользователя и пароль: учетные данные из информации о подключении в старом приложении.

Я получаю сообщение «Сервер не слушает», предполагая, что либо он не включен (ну... какой-то источник данных включен и работает, а данные в WEB-INF предполагают, что это postgresql), либо он не принимает соединения TCP/IP, который соответствует экземплярам postgresql, которые мне удалось найти.

Короче говоря

На данный момент я предполагаю, что проблема заключается в одном из следующих...

  1. Информация о подключении, которую я ввожу в postgreSQL, вводится неправильно, но я не знаю, что я делаю неправильно.

  2. Источник информации о подключении (веб-приложение) плохой/старый/не из работающего экземпляра (и в этом случае я не знаю, как сказать, не в Linux).

  3. Экземпляры postgresql, которые я нашел, не являются экземплярами, которые он использует, и я понятия не имею, как его найти.

  4. Что-то подозрительное в сети, но поскольку и мой компьютер, и сервер Linux находятся в одной сети, это маловероятно.

Кроме того, все, пожалуйста, документируйте свои вещи для бедных душ в будущем. Я очень ценю любую помощь, которую вы можете мне предложить.


person shubniggurath    schedule 21.05.2015    source источник


Ответы (1)


Вы можете использовать туннель:

ssh -L 5432:localhost:5432 user@server

После того, как вы войдете на удаленный сервер, вы сопоставите порт 5432 на своем компьютере с удаленным. Затем вы можете использовать pgAdmin для подключения к вашему локальному хосту через порт 5432. Убедитесь, что на этом порту на вашем компьютере ничего не запущено.

Изменить: посмотрите на эти примеры настройки туннелей с помощью шпатлевки

person Cornel Ghiban    schedule 21.05.2015
comment
Очень полезно, имеет смысл. Спасибо! Однако теперь я получаю отказ в доступе. В нем говорится, что сначала вы должны предоставить первичный доступ к серверу для своего клиента (аутентификация на основе хоста), что я не совсем понимаю, но я продолжу исследования. - person shubniggurath; 22.05.2015