semanage 确认我的主机正在宽容模式下运行。
当我不使用这样的密码时,我可以以用户 puppetdb 的身份登录 postgresql:
[msk@puppet ~]$ su - postgres Password: Last login: Fri Jun 21 14:19:01 EDT 2019 on pts/1 bash-4.2$ psql -d puppetdb -U puppetdb psql: FATAL: Peer authentication failed for user "puppetdb"
netstat -tlpn |grep 邮政局长节目
tcp 0 0 127.0.0.1:5432 0.0.0.0:* LISTEN 22948/postmaster
我在 /var/log/puppetlabs/puppetdb/puppetdb.log 中看到的错误有数百个:
Pool - Connection is not available, request timed out after 3012ms.
2019-06-21T13:36:50.267-04:00 ERROR [p.p.c.services] Will retry database connection after temporary failure: java.sql.SQLTransientConnectionException: PDBMigrationsPool - Connection is not available, request timed out after 3000ms.
/var/lib/pgsql/11/data/pg_hba.conf 包含:
local all all peer
host all all 127.0.0.1/32 ident
host puppetdb puppetdb 127.0.0.1/32 peer
postgresql-Fri.log 充满了
FATAL: remaining connection slots are reserved for non-replication superuser connections
谢谢任何线索。
答案1
PuppetDB 无法连接到数据库。首先检查database.ini
文件,可能位于:/etc/puppetlabs/puppetdb/conf.d/database.ini
。它应该包含类似以下内容:
classname = org.postgresql.Driver
subprotocol = postgresql
subname = //localhost:5432/puppetdb
username = puppetdb
conn-max-age = 60
conn-keep-alive = 45
conn-lifetime = 0
确保在 PostgreSQL 实例中设置适当数量的连接,即postgresql.conf
:
max_connections = 64
重新启动 PostgreSQL。
现在以puppetdb
用户身份验证连接是否有效:
su - puppetdb -s /bin/sh -c "psql -h localhost puppetdb"
如果您使用 SSL,请务必检查PostgreSQL SSL 指南。
当调试数据库问题时,状态端点可能会有用:
curl -X GET http://localhost:8080/status/v1/services | jq .
答案2
/var/lib/pgsql/11/data/pg_hba.conf 希望将此行添加到其顶部。
主机 puppetdb puppetdb ::1/24 信任
我忘了发布这个问题了。谢谢你的帮助 :)