我正在尝试使用 Navicat 通过 SSH 登录我的 EC2 服务器上的 PostgreSQL。
我收到以下错误消息:
“80070007:SSH 隧道:连接时发生套接字错误。WSAGetLastError 返回 10061($274D)”
在服务器上,“角色”postgres 已经存在,并且已经有一个名为postgres 的数据库。我已经为 postgres 分配了密码(通过 Putty 使用 ALTER NAME 命令)。
我在 Navicat 中使用的 SSH 设置是: 端口:5432 用户名:[管理员用户名] 认证方式:公钥
连接设置是: 主机名:本地主机 端口:3306 初始数据库:postgres 用户名:postgres 密码:[密码]
当我连接到同一台机器上的 MySQL 服务器时,设置完全相同,除了:
SSH 到端口 22 用户名(用于连接):root(对应密码)
我已经尝试通过 SSH 连接到端口 22,在这种情况下,错误消息是:
“无法连接到服务器:连接被拒绝 (0x0000274D/10061) 服务器是否在主机“localhost”上运行并在端口 60122 上接受 TCP/IP 连接? 收到对 SSL 协商的无效响应:4"
关于我需要更改哪些设置才能使其正常工作,有什么想法吗?
最佳答案
您的配置似乎有很大的错误。
ssh 端口不应为 5432,而应为 22(ssh 默认值)。
postgresql端口应该不是3306(这其实是MySQL),而是5432(postgres默认)
要验证您的设置,请尝试手动通过 ssh 连接到您的 EC2 实例。 ssh 登录后,检查是否可以执行“telnet localhost 5432”。 如果您立即看到错误,则表示 postgres 服务器未运行。 如果你什么也没看到 - 这是一个好兆头,意味着 Postgres 正在运行。 您可以通过 Ctrl-]、q、Enter 退出。
请注意,EC2 实例可能需要您使用 ssh 公钥身份验证(而非密码)。在这种情况下,你必须在 Navicat 中找到提供这样一个 key 的选项。
关于linux - 使用 Navicat 通过 SSH 登录 Postgresql - 正确的设置是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12989838/