如何配置PostgreSQL允许被远程访问

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何配置PostgreSQL允许被远程访问相关的知识,希望对你有一定的参考价值。

参考技术A

安装PostgreSQL数据库之后,默认是只接受本地访问连接。如果想在其他主机上访问PostgreSQL数据库服务器,就需要进行相应的配置。

配置远 程连接PostgreSQL数据库的步骤很简单,只需要修改data目录下的pg_hba.conf和postgresql.conf。

pg_hba.conf:配置对数据库的访问权限,

postgresql.conf:配置PostgreSQL数据库服务器的相应的参数。

下面 介绍配置的步骤:

1.修改pg_hba.conf文件,配置用户的访问权限(#开头的行是注释内容):

    # TYPE DATABASE  USER    CIDR-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

    host  all    all    192.168.1.0/24    md5

    # IPv6 local connections:

    host  all    all    ::1/128       trust

    其中,第7条是新添加的内容,表示允许网段192.168.1.0上的所有主机使用所有合法的数据库用户名访问数据库,并提供加密的密码验证。

    其中,数字24是子网掩码,表示允许192.168.1.0--192.168.1.255的计算机访问!

    2.修改postgresql.conf文件,将数据库服务器的监听模式修改为监听所有主机发出的连接请求。

    定位到#listen_addresses=’localhost’。PostgreSQL安装完成后,默认是只接受来在本机localhost的连接请 求。

    将行开头都#去掉,将行内容修改为listen_addresses=’*'来允许数据库服务器监听来自任何主机的连接请求

Postgresql允许远程访问配置修改

1、解决不能连接远程postgresql:

postgresql默认情况下,远程访问不能成功,如果需要允许远程访问,需要修改两个配置文件,说明如下:

1.postgresql.conf

将该文件中的listen_addresses项值设定为“*”,在9.0 Windows版中,该项配置已经是“*”无需修改。

2.pg_hba.conf

在该配置文件的host all all 127.0.0.1/32 md5行下添加以下配置,或者直接将这一行修改为以下配置

host    all    all    0.0.0.0/0    md5

如果不希望允许所有IP远程访问,则可以将上述配置项中的0.0.0.0设定为特定的IP值。

 

2、修改完毕后重启:

/PostgreSQL/9.3/bin/pg_ctl  stop

/PostgreSQL/9.3/bin/pg_ctl  start 

启动过程中如果报,pg_ctl: no database directory specified and environment variable PGDATA unset  则设置下环境变量

PGDATA=/PostgreSQL/9.3/data 
export PGDATA  

如果报CST LOG:  could not create IPv6 socket: 协议不支持的地址族,忽略,不影响连接

以上是关于如何配置PostgreSQL允许被远程访问的主要内容,如果未能解决你的问题,请参考以下文章

Postgresql 12.9如何配置允许远程连接

Postgresql允许远程访问配置修改

PostgreSQL 允许远程访问设置方法

PostgreSQL 允许远程访问设置方法

PostgreSQL 允许远程访问设置方法

Postgresql允许远程访问配置修改