在写一个在线编译系统时打算用远程的数据库进行测试,但是链接出现了问题.
这里先说一下远程连接时需要修改的配置吧(只是针对Linux用户).
需要修改pg_hba.conf和postgresql.conf这两个文件.
PS:如果你在安装数据库时,在进行数据库初始化操作(以centos6.X版本为例),如下:
sudo service postgresql-9.5 initdb
在初始化数据库时可以指定参数 –PGDATA=“/data”,该参数是用于指明数据库的数据文件的存放路径,默认是在/var/lib/pgsql/9.5/data路径下。
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all ident
# IPv4 local connections:
host all all 127.0.0.1/32 ident
# IPv6 local connections:
host all all ::1/128 ident
# Allow replication connections from localhost, by a user with the
# replication privilege.
#local replication postgres peer
#host replication postgres 127.0.0.1/32 ident
#host replication postgres ::1/128 ident
刚刚安装完成的postgresql是这样的.
只是针对自己本机登录识别.
需要修改如下:
# "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 0.0.0.0/24 trust
# IPv6 local connections:
host all all ::1/128 trust
另一个要改的就是postgresql.conf文件.
将listen_address =”localhost” 引号里面改为*,即对所有地址监听.
在ipv4下面添加的0.0.0.0/24这个是对全网段的许可,24表示的是子网掩码.
这里很多人都将后面的ident改为MD5的认证方式,导致FATAL: password authentication failed for user “postgres”错误的出现.
其实这个错误的根本原因就是:用户密码认证错误引起的,因为postgresql安装完成之后,默认的就是md5的认证方式,正确的方式就是直接时候trust就ok了.
希望以上对你有帮助.