首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何让HeidiSQL第一次连接到Postgres数据库?

如何让HeidiSQL第一次连接到Postgres数据库?
EN

Database Administration用户
提问于 2017-03-25 13:14:14
回答 2查看 7K关注 0票数 1

对于两个不同的Linux服务器,我在它们上安装了Postgres,没有使用标准配置。他们在不同的网站以外的网络。

Postgres服务正在运行(正如我通过运行ps -ef | grep postgres检查的那样)。我已经在两个Linux服务器上安装了namp。

这些命令显示端口5432没有被阻塞:

代码语言:javascript
运行
复制
nmap -p 5432 x.x.x.x

我可以从我的Windows机器向任何一个Linux服务器发送SSH。我的Windows桌面上有Heidi SQL。当我尝试用HeidiSQL连接到这些服务器(使用端口5432)时,我得到“无法连接到服务器:连接refused...is --在主机”x.x上运行并在端口5432上接受TCP/IP连接的服务器。这以前从来没有起过作用。

如何让HeidiSQL连接到Linux服务器上的Postgres数据库?

EN

回答 2

Database Administration用户

回答已采纳

发布于 2017-03-25 15:57:38

首先,确保您可以从Linux机器本身连接到您的PostgreSQL数据库(如果有两个,那么这两台机器上的所有内容都有)。

您可以使用psql进行此操作:

代码语言:javascript
运行
复制
 psql -h localhost -p 5432 postgres

这假设psql在您的路径上;如果没有.它的位置取决于特定的Linux版本、PostgreSQL版本和安装方法;请指定它们。

如果无法从本地计算机连接到数据库.确保它正在运行,并且它是实际使用5432端口的进程。

接下来,您需要检查您的PostgreSQL配置文件设置。要检查的文件称为postgresql.conf。它的位置,同样,取决于您如何安装它。检查我的邮递员呢?*.conf文件?

在配置文件中,您需要检查参数listen_addressesport,这表明PostgreSQL应该连接到哪个TCP地址和端口。您可能阻止了端口5432,并且PostgreSQL在监听它,但只对您的127.0.0.1 (本地主机) IP地址进行监听,但不监听“外部世界”。默认设置(AFAIK)仅侦听“localhost”。

如果您的Linux盒通过端口192.168.1.2连接到外部世界,并且您想使用标准的5432端口,那么您应该拥有:

代码语言:javascript
运行
复制
listen_addresses = 'localhost, 192.168.1.2'
port = 5432

如果您更改了这些参数中的任何一个,则应该停止并重新启动PostgreSQL服务。有些替代方案不需要停止,但在这一点上,我认为这是最简单的方法。

一旦您让PostgreSQL监听了外部世界,您仍然需要允许来自用户的连接。这是通过皮卡_hba.conf文件完成的。您需要一些用户(S)允许从某个IP地址(或某个范围,或所有这些地址,.)连接到您的数据库(S)使用特定的身份验证方法。最常见的设置如下:

代码语言:javascript
运行
复制
# TYPE  DATABASE        USER            ADDRESS                 METHOD
# local net
host    all             all             192.168.1.0/24          md5

这意味着:所有用户都可以在地址192.168.1.0上使用TCP/IP主机连接到所有数据库。192.168.1.255,使用md5进行身份验证(意思是密码)。

如果您的Linux盒使用SELinux/iptable,请确保它们允许连接。检查,例如Linux: Iptables允许PostgreSQL服务器传入请求远程连接到Postgres,打开iptables中Postgres的端口5432

如果您需要为PostgreSQL连接设置SSL .检查使用SSL保护TCP/IP连接。我建议您只在成功地先拥有不安全(非SSL )连接之后才使用SSL。

检查Windows机器中的防火墙,以及/或Windows和Linux机器之间的任何外部防火墙。如果它们中的任何一个存在并处于活动状态,请确保它们允许通信到端口5432。您的具体情况在很大程度上取决于您的实际设置。资源:如何在Windows 10中打开防火墙端口

确保您可以在ping中使用您的Linux盒。如果您的windows机器上有telnet,请尝试telnet (ip-of-your-linux-box) 5432并检查是否可以连接(一旦键入什么,很可能会断开连接,没关系)。

此时,HeidiSQL应该能够连接到远程Linux机器。(现在,重复第二个)。

票数 1
EN

Database Administration用户

发布于 2017-04-03 17:21:08

冒着危险出去

使用两台不同的Linux服务器

其中之一就是Ubuntu。Ubuntu喜欢在5433上运行。在服务器pg_isready上运行它们的实用程序以找到端口,并确保它接受连接。

票数 0
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/168162

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档