postgresql的遠程鏈接出錯問題

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

希望以上對你有幫助.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章