在寫一個在線編譯系統時打算用遠程的數據庫進行測試,但是鏈接出現了問題.
這裏先說一下遠程連接時需要修改的配置吧(只是針對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了.
希望以上對你有幫助.