3

我正在尝试使用 Navicat 通过 SSH 在我的 EC2 服务器上登录 PostgreSQL。

我收到以下错误消息:

“80070007:SSH 隧道:连接时出现套接字错误。WSAGetLastError 返回 10061($274D)”

在服务器上,“角色”postgres 已经存在,并且已经有一个名为 postgres 的数据库。我已经为 postgres 分配了一个密码(通过 Putty 使用 ALTER NAME 命令)。

我在 Navicat 中使用的 SSH 设置是:端口:5432 用户名:[管理员用户名] 身份验证方法:公钥

连接设置为: 主机名:localhost 端口:3306 初始数据库:postgres 用户名:postgres 密码:[密码]

当我连接到同一台机器上的 MySQL 服务器时,设置完全相同,除了:

SSH 到端口 22 用户名(用于连接):root(带有相应密码)

我已经尝试 SSH 到端口 22,在这种情况下,错误消息是:

“无法连接到服务器:连接被拒绝(0x0000274D/10061)服务器是否在主机“localhost”上运行并接受端口 60122 上的 TCP/IP 连接?收到对 SSL 协商的无效响应:4”

关于我需要更改哪些设置才能使其正常工作的任何想法?

4

1 回答 1

2

您的配置似乎非常错误。

ssh 端口不应该是 5432,而是 22(ssh 默认)。

postgresql 端口应该不是 3306(这实际上是 MySQL),而是 5432(postgres 默认)

要验证您的设置,请尝试手动 ssh-ing 到您的 EC2 实例。ssh 进入后,检查是否可以执行“telnet localhost 5432”。如果您立即看到错误,则意味着 postgres 服务器没有运行。如果你什么也没看到 - 这是一个好兆头,意味着 Postgres 正在运行。您可以通过 Ctrl-]、q、Enter 退出。

请注意,EC2 实例可能要求您使用 ssh 公钥身份验证(不是密码)。在这种情况下,你必须在 Navicat 中找到选项来提供这样的密钥。

于 2012-10-21T05:06:50.390 回答