1

我们公司有一个旧的 linux 服务器,它运行一些 tomcat web 应用程序。其中一个应用程序正在连接到 PostgreSQL。虽然我是 C#.Net/Windows 编码员,但我需要使用 pGAdmin III(或任何建议的等效项)从我的计算机连接到该数据库。尝试连接时,pgAdmin 说 Server Not Listening。

在不太了解 linux 的情况下,我使用 WinSCP 连接到文件结构。我有关于旧应用程序、任何数据源或其数据连接的零文档。我已经能够确定以下内容,假设 Web 应用程序的位置实际上是合法的,而不是一些非运行副本。

PostgreSQL

在一个应用程序的连接信息中:

 jdbc:postgresql://localhost:5432/somename

经过一番挖掘,我在服务器文件结构上发现了以下可能的 postgresql 实例。

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

还有 \etc\postgresql-common 里面有非常不同类型的文件。

如果有其他实例或相关文件夹,我不知道也不知道去哪里找。这是一个迷宫般的野兽。

我在配置文件中确保了两个监听 =“*”,这应该是两个修复之一。它已经设置为 *,所以假设其中之一是正确的,我应该在那里很好。

我知道至少某些 postgresql 实例已打开,因为旧应用程序正在运行并获取数据,所以这是两个修复程序中的另一个。

pgAdmin

我在这里的一个单独的线程中听说重新安装 pgAdmin 可能会解决问题,但它没有。我尝试使用和不使用 ssl。

这是我尝试在 pgAdmin III 中设置连接的方式:

姓名:某名

主持人:我在这里尝试了一些组合。//servername/somename,或者只是 //servername

端口:5432(与预期匹配,也是连接的端口)

服务:空白

MaintenanceDB:我在 pgadmin、postgres 和我尝试连接的实际数据库中尝试了默认设置。

用户名和密码:旧应用程序中连接信息的凭据。

我得到服务器不听,表明它没有打开(嗯......一些数据源正在运行并且WEB-INF中的数据表明它是postgresql),或者它不接受TCP/IP连接,根据我能够找到的postgresql实例。

长话短说

在这一点上,我假设以下问题之一是问题......

  1. 我输入到 postgreSQL 的连接信息没有正确输入,但我不知道我做错了什么。

  2. 连接信息(Web 应用程序)的来源是坏/旧/不是来自正在运行的实例(在这种情况下,我不知道如何判断,而不是在 linux 中)。

  3. 我找到的 postgresql 的实例不是它正在使用的实例,我不知道如何找到它。

  4. 在网络方面有些可疑,但由于我的计算机和 linux 服务器都在同一个网络上,所以这似乎不太可能。

另外,每个人,请为未来的可怜灵魂记录你的东西。我非常感谢您能为我提供的任何帮助。

4

1 回答 1

1

您可能想使用隧道:

ssh -L 5432:localhost:5432 user@server

登录远程服务器后,您将计算机上的端口 5432 映射到远程服务器。然后,您可以使用 pgAdmin 连接到端口 5432 上的本地主机。确保您的计算机上的此端口上没有运行任何东西。

编辑:查看这些 示例,了解如何使用 putty 设置隧道

于 2015-05-21T19:13:39.963 回答