pgAdmin 4提供了内置的轻量级连接池功能,适合小规模应用或测试环境。操作步骤如下:
http://<服务器IP>:5050
(默认端口),使用管理员账号登录。localhost
)、端口(默认5432
)、用户名/密码(具有数据库访问权限的账号)。10-50
)。1
)、“Timeout”**(连接超时时间,默认30
秒)。pgAdmin本身不提供高级连接池管理(如连接复用、负载均衡),建议使用PgBouncer(轻量级)或Pgpool-II(功能丰富)作为外部连接池。以下以PgBouncer为例:
在CentOS上通过yum
包管理器安装:
sudo yum install epel-release -y # 确保EPEL仓库可用
sudo yum install pgbouncer -y
编辑PgBouncer的主配置文件/etc/pgbouncer/pgbouncer.ini
:
[databases]
# 定义要池化的数据库(替换为你的数据库名)
mydb = host=localhost port=5432 dbname=mydb
[pgbouncer]
# 监听地址和端口(pgAdmin将连接至此)
listen_addr = 127.0.0.1
listen_port = 6432
# 认证方式(md5需配合userlist.txt使用)
auth_type = md5
auth_file = /etc/pgbouncer/userlist.txt
# 连接池模式(transaction/ session/ statement)
pool_mode = transaction # 推荐:事务级连接池(最常用)
# 连接数限制
max_client_conn = 100 # 最大客户端连接数
default_pool_size = 20 # 每个客户端的默认池大小
min_pool_size = 5 # 每个客户端的最小池大小(可选)
创建userlist.txt
(存放数据库用户凭证):
"myuser" "mypassword" # 格式:"用户名" "密码"
sudo systemctl start pgbouncer
sudo systemctl enable pgbouncer # 开机自启
在pgAdmin中创建新连接时,修改连接参数:
localhost
(PgBouncer监听地址)。6432
(PgBouncer端口,非PostgreSQL默认端口)。mydb
(pgbouncer.ini
中定义的数据库名)。myuser
/mypassword
(userlist.txt
中的数据库用户)。5432
端口),并使用md5
或scram-sha-256
加密认证。max_client_conn
(如100-500)和default_pool_size
(如10-50),避免连接数过多导致数据库负载过高。psql -h localhost -p 6432 -U postgres
)执行\l
查看池状态,或集成Prometheus+Grafana监控连接数、等待时间等指标。通过以上方法,可在CentOS上为pgAdmin配置高效的数据库连接池,提升应用性能并减少数据库负载。