linux - 使用 Navicat 通过 SSH 登录 Postgresql - 正确的设置是什么?

标签 linux postgresql ssh amazon-ec2 navicat

我正在尝试使用 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/

相关文章:

postgresql - pg_dump 是否需要 -C 参数来恢复数据库?

node.js - 使用直通表更改 Sequelize 默认外键

java - 命令完成后 JSch 会退出吗?

node.js - Hastebin 服务器的 NPM 保持运行

linux - 为什么直接打印到控制台/终端比重定向慢?

ruby-on-rails - su - $USER -p -c "$CMD"未访问路径

linux - 我怎样才能找到 main() 的返回地址在堆栈中的位置?

android - 使用 PID 查找应用程序标签的 Linux 命令。

postgresql - Postgres 选择 WHERE col1, col2 IN 与 2d golang slice

macos - OS X 使用 ssh_config 在 sudo 下运行 rsync