从局域网访问PostgreSQL server

从局域网访问PostgreSQL server,postgresql,postgresql-9.3,Postgresql,Postgresql 9.3,我一直在尝试编辑pg_hba.conf文件,以便能够仅使用IP地址访问服务器,但迄今为止没有成功 例如,我可以使用«localhost»进行访问,但我想使用路由器给我的IP地址进行访问,该地址类似于192.168.1.X 这是mi pg_hba.conf: # TYPE DATABASE USER ADDRESS METHOD # "local" is for Unix domain socket connections on

我一直在尝试编辑pg_hba.conf文件,以便能够仅使用IP地址访问服务器,但迄今为止没有成功

例如,我可以使用«localhost»进行访问,但我想使用路由器给我的IP地址进行访问,该地址类似于192.168.1.X

这是mi pg_hba.conf:

# TYPE  DATABASE        USER            ADDRESS                 METHOD
# "local" is for Unix domain socket connections only
local   all             all                                     trust
# IPv4 local connections:
host    all             all             127.0.0.1/32            trust
# IPv6 local connections:
host    all             all             ::1/128                 trust
# Allow replication connections from localhost, by a user with the
# replication privilege.
#local   replication     postgres                                trust
#host    replication     postgres        127.0.0.1/32            trust
#host    replication     postgres        ::1/128                 trust
host all all 0.0.0.0/0 trust

有什么帮助吗?

首先,编辑postgresql.conf文件,然后设置。“localhost”的默认值将仅侦听环回适配器。您可以将其更改为“*”,这意味着侦听所有地址,或者具体列出您希望其接受连接的接口的IP地址。请注意,这是接口分配给它的IP地址,您可以使用
ifconfig
IP addr
命令查看该地址

您必须重新启动postgresql才能使更改侦听地址生效

接下来,在中,您将需要如下条目:

# TYPE  DATABASE        USER            ADDRESS                 METHOD
host    {dbname}        {user}          192.168.1.0/24          md5
{dbname}是您允许访问的数据库名称。您可以为所有数据库设置“全部”

{user}是允许连接的用户。请注意,这是postgresql用户,不一定是unix用户

地址部分是您希望允许的网络地址和掩码。我指定的掩码将按照您的要求为192.168.1.x工作

方法部分是要使用的身份验证方法。这里有很多选择。md5意味着它将使用md5哈希密码。”您在示例中使用的“信任”表示根本没有身份验证-这绝对不推荐


对pg_hba.conf的更改将在重新加载服务器后生效。您可以使用
pg_ctl reload
(或通过init脚本,具体取决于您的操作系统发行版)来完成此操作

这里需要几条信息。您的路由器正在为您提供LAN IP,因此您将无法从LAN外部访问您的计算机。我不熟悉PostgreSQL,但我知道Ubuntu上的MySQL要求我重新启动Ubuntu上的MySQL服务。你在用什么操作系统?最后,你是否有一个防火墙可以阻止访问PostgreSQL使用的端口?我没有防火墙,我知道它只能通过局域网访问。我正在使用Linux 3.12(Manjaro)@gabe@simon只是想确保你意识到局域网的局限性,因为你的标题到处都是。对不起,我帮不上忙了,我用的是Ubuntu和MySQL。我建议您将PostgreSQL和OS添加到您的问题中,以便将来希望帮助您的人不会错过它。祝你好运。如果你真的展示了你的
pg_hba.conf
,那会很有帮助。另外,在
postgresql.conf
中,什么是
listen\u addresses
设置为?@CraigRinger编辑以添加pg\u hba.conf实际上,您只需重新加载
pg\u ctl
即可生效,而不是完全重新启动。或者
选择pg\u reload\u conf()
@CraigRinger侦听地址需要重新启动(手册上说“此参数只能在服务器启动时设置”)。正如我所说,pg_hba可以通过重新加载进行更改。啊,我的错-我错过了postgresql.conf部分。谢谢。重新启动自制安装的Postgres的简单方法是:
brew服务重新启动postgresql