我正在尝试使用navicat通过SSH在我的EC2服务器上登录PostgreSQL。
我收到以下错误消息:
" 80070007:SSH隧道:连接时套接字错误。WSAGETLASTERROR返回10061($ 274D)"
在服务器上,"角色" Postgres已经存在,并且已经有一个名为Postgres的数据库。我已经为Postgres分配了一个密码(使用Putty使用Alter Name命令)。
我在Navicat中使用的SSH设置是:端口:5432用户名:[管理用户名]身份验证方法:公共密钥
连接设置是:主机名:localhost港口:3306初始数据库:Postgres用户名:Postgres密码:[密码]
当我连接到同一台计算机上的MySQL Server时,设置完全相同,除了:
ssh到港口22用户名(连接):root(带相应的密码)
我已经尝试了ssh到端口22,在这种情况下,错误消息是:
"无法连接到服务器:连接拒绝(0x0000274D/10061)服务器是否在主机" Localhost"上运行并接受端口60122上的TCP/IP连接?收到对SSL谈判的无效响应:4"
关于我需要更改以使其工作的任何想法?
您的配置似乎非常错误。
ssh端口不应为5432,而是22(ssh默认)。
PostgreSQL端口不应为3306(实际上是MySQL),而是5432(Postgres默认值)
要验证您的设置,请手动尝试进入EC2实例。SSH进入后,检查是否可以执行" Telnet Localhost 5432"。如果您立即看到错误,那意味着Postgres服务器未运行。如果您一无所获 - 这是好兆头,意味着Postgres正在运行。您可以通过ctrl-]退出,q,输入。
请注意,EC2实例可能需要您使用SSH公共密钥身份验证(而不是密码)。在这种情况下,您将必须在Navicat中找到选项才能提供此类密钥。