Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 使用Navicat通过SSH登录Postgresql-正确的设置是什么?_Linux_Postgresql_Ssh_Amazon Ec2_Navicat - Fatal编程技术网

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

Linux 使用Navicat通过SSH登录Postgresql-正确的设置是什么?,linux,postgresql,ssh,amazon-ec2,navicat,Linux,Postgresql,Ssh,Amazon Ec2,Navicat,我正在尝试使用Navicat通过SSH登录EC2服务器上的PostgreSQL 我收到以下错误消息: “80070007:SSH隧道:连接时发生套接字错误。WSAGetLastError返回10061($274D)” 在服务器上,“角色”postgres已经存在,并且已经有一个名为postgres的数据库。我已经给postgres分配了一个密码(通过Putty使用ALTER NAME命令) 我在Navicat中使用的SSH设置有: 港口:5432 用户名:[管理员用户名] 认证方式:公钥 连接设

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


关于我需要更改哪些设置才能使其正常工作,您有什么想法吗?

您的配置似乎非常错误

ssh端口不应为5432,而应为22(ssh默认值)

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

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


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

谢谢。我是一个非常初级的人,在这些港口附近游荡。正如您所建议的,我使用了SSH端口22和postgresql端口5432,这是正确的组合,现在可以工作了。(我在访问的pg_hba.conf设置中遇到了另一个问题——现在也解决了——我对IPv4和IPv6使用了“md5”访问。)