我尝试将我们的 Discourse 实例配置为通过 pg_bouncer 连接到托管在 Azure 上的独立 Postgres 数据库(设置方法如此处所述),但遇到了问题。
我们的 Discourse 托管在 Azure 的虚拟机上。我已在该虚拟机上安装并配置了 pg_bouncer,并且可以通过以下方式验证可以从该虚拟机连接到托管的数据库:
psql -h 127.0.0.1 -p 5432 -U [username] -d [database]
在我的 app.yml 中,我将数据库主机名更改为使用 127.0.0.1:
DISCOURSE_DB_HOST: [原为主机名,已尝试改为 127.0.0.1]
在重新构建应用时,我收到以下错误:
I, [2020-09-18T20:48:51.653890 #1] INFO -- : > cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate'
rake aborted!
PG::ConnectionBad: could not connect to server: Connection refused
Is the server running on host "127.0.0.1" and accepting
TCP/IP connections on port 5432?
我能想到的唯一区别是,在 app.yml 中指定了密码,而在 psql 中不需要指定密码,因为该密码已在 pg_bouncer 的 userlist 中设置。
任何帮助都将不胜感激。