我正在尝试使用Navicat通过SSH登录我的EC2服务器上的PostgreSQL。
我收到以下错误消息:
“80070007:SSH隧道:连接时出现套接字错误.WSAGetLastError返回10061($ 274D)”
在服务器上,“角色”postgres已经存在,并且已经有一个名为postgres的数据库。我已经为postgres分配了一个密码(通过Putty使用ALTER NAME命令)。
我在Navicat中使用的SSH设置是: 港口:5432 用户名:[admin用户名] 身份验证方法:公钥
连接设置为: 主机名:localhost 港口:3306 初始数据库:postgres 用户名:postgres 密码:[密码]
当我连接到同一台机器上的MySQL服务器时,设置完全相同,除了:
SSH到端口22 用户名(用于连接):root(带有相应的密码)
我尝试过SSH到端口22,在这种情况下错误信息是:
“无法连接到服务器:连接被拒绝(0x0000274D / 10061) 服务器是否在主机“localhost”上运行并接受端口60122上的TCP / IP连接? 收到对SSL协商的无效回复:4“
有关我需要更改哪些设置以使其生效的任何想法?
答案 0 :(得分:2)
您的配置似乎非常错误。
ssh端口不应该是5432,而是22(默认为ssh)。
postgresql端口应该不是3306(这实际上是MySQL),但5432(postgres默认)
要验证您的设置,请尝试手动ssh到您的EC2实例。 ssh in后,检查是否可以执行“telnet localhost 5432”。 如果你立即看到错误,那就意味着postgres服务器没有运行。 如果你什么也看不见 - 这是好兆头,意味着Postgres正在运行。 您可以通过Ctrl-],q,Enter退出。
请注意,EC2实例可能要求您使用ssh公钥身份验证(而不是密码)。在这种情况下,您必须在Navicat中找到提供此类密钥的选项。