![](/img/trans.png)
[英]Postgres in docker-compose can't find/mount /etc/postgresql/postgres.conf
[英]postgres not using postgres.conf file?
我的 ubuntu 18.04 服務器上有一個 postgres 設置。 我已將listen_addresses
屬性更改為'*'
但似乎 postgres 服務器並未遵循此操作。
當前文件的第一部分:
# - Connection Settings -
listen_addresses = '*' # what IP address(es) to listen on;
# comma-separated list of addresses;
# defaults to 'localhost'; use '*' for all
# (change requires restart)
port = 5432 # (change requires restart)
max_connections = 100 # (change requires restart)
#superuser_reserved_connections = 3 # (change requires restart)
unix_socket_directories = '/var/run/postgresql' # comma-separated list of directories
# (change requires restart)
#unix_socket_group = '' # (change requires restart)
#unix_socket_permissions = 0777 # begin with 0 to use octal notation
# (change requires restart)
#bonjour = off # advertise server via Bonjour
# (change requires restart)
#bonjour_name = '' # defaults to the computer name
# (change requires restart)
作為測試,我將port
設置更改為不同的端口並重新啟動 postgres 服務器,並且 psql 無法連接到正在運行的服務器,因此psql
命令似乎遵循配置文件,但服務器本身不是?
我該如何調試這個問題?
我曾嘗試使用psql -U postgres -c 'SHOW config_file'
但它只顯示我編輯過的配置文件?
文件末尾是:
include_dir = 'conf.d' # include files ending in '.conf' from
# a directory, e.g., 'conf.d'
但是這個 conf.d 文件夾是空的
您需要進行兩項更改才能使 PostgreSQL 接受遠程連接:
首先就是您所做的,修改/etc/postgresql/<VERSION>/main/postgresql.conf
listen_addresses
以偵聽所有接口:
listen_addresses = '*'
其次,您需要修改/etc/postgresql/<VERSION>/main/pg_hba.conf
以允許遠程連接。 如果您查看默認的pg_hba.conf
您將看到如下所示的一行:
host all all 127.0.0.1/32 md5
127.0.0.1/32
阻止 PostgreSQL 接受遠程連接,所以讓我們改變它:
host all all 0.0.0.0/0 md5
進行這兩項更改后重新啟動 PostgreSQL 數據庫,您應該能夠從遠程計算機連接到它。
如果您仍然無法遠程連接到數據庫,我會檢查防火牆,如 iptables 等。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.