pgAdmin是PostgreSQL的图形化管理工具,需先搭建PostgreSQL数据库集群(主从复制),再通过pgAdmin管理。以下是CentOS下的安装与配置步骤:
sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-$(rpm -E %{rhel})-x86_64/pgdg-redhat-repo-latest.noarch.rpm
sudo yum install -y postgresql15-server postgresql15-devel
sudo /usr/pgsql-15/bin/postgresql-15-setup initdb # 初始化数据库集群
sudo systemctl enable --now postgresql-15 # 开机启动并立即启动服务
编辑postgresql.conf文件:
sudo vi /var/lib/pgsql/15/data/postgresql.conf
找到listen_addresses行,修改为:
listen_addresses = '*'
编辑pg_hba.conf文件:
sudo vi /var/lib/pgsql/15/data/pg_hba.conf
在文件末尾添加(允许所有IP通过密码连接):
host all all 0.0.0.0/0 md5
sudo systemctl restart postgresql-15
切换至postgres用户,执行SQL命令:
sudo -u postgres psql
在psql命令行中输入:
CREATE USER pgadmin WITH PASSWORD 'YourStrongPassword123!' CREATEDB; -- 创建用户并允许创建数据库
GRANT ALL PRIVILEGES ON DATABASE postgres TO pgadmin; -- 授权访问默认数据库
\q -- 退出
若需搭建高可用集群,需配置主从复制(参考PostgreSQL官方文档或pgAdmin官方指南)。
pgAdmin Web版更适合远程管理集群,以下是CentOS下的安装步骤:
sudo yum install -y pgadmin4-web
运行初始化脚本,设置管理员邮箱(用于找回密码)和初始密码:
sudo /usr/pgadmin4/bin/pgadmin4-web-setup.sh
按提示输入管理员邮箱(如admin@yourdomain.com)和密码(如PgAdminAdmin@123)。
初始化完成后,pgAdmin会自动启动。如需手动控制:
sudo systemctl start pgadmin4 # 启动服务
sudo systemctl enable pgadmin4 # 开机自启动
pgAdmin Web版依赖Apache提供HTTP服务,需调整配置以允许外部访问:
sudo cp /etc/httpd/conf.d/pgadmin4.conf.sample /etc/httpd/conf.d/pgadmin4.conf
编辑配置文件(可选):
sudo vi /etc/httpd/conf.d/pgadmin4.conf
确认以下设置:
Listen localhost:80改为Listen 80;ServerName localhost改为服务器公网IP或域名(如ServerName pgadmin.yourdomain.com)。保存并退出,重启Apache服务:
sudo systemctl restart httpd
若系统启用了firewalld,需开放HTTP(80端口)和PostgreSQL(5432端口):
sudo firewall-cmd --permanent --add-service=http # 开放HTTP服务
sudo firewall-cmd --permanent --add-port=5432/tcp # 开放PostgreSQL端口
sudo firewall-cmd --reload # 重新加载防火墙规则
打开浏览器,输入服务器IP或域名(如http://your_server_ip或http://pgadmin.yourdomain.com),使用之前创建的pgadmin用户和密码登录。
登录pgAdmin后,按以下步骤添加PostgreSQL集群:
进入服务器配置界面。
My PostgreSQL Cluster),用于标识集群。192.168.1.100);5432);pgadmin用户;pgadmin用户的密码(如YourStrongPassword123!)。点击“Save”按钮,pgAdmin将尝试连接PostgreSQL集群。若连接成功,左侧导航栏将显示集群节点,可进一步管理数据库、表等对象。
若需多用户同时管理集群,可通过Docker部署多个pgAdmin实例,搭配Nginx实现负载均衡:
sudo yum install -y docker
sudo systemctl start docker
sudo systemctl enable docker
docker run -d --name pgadmin1 -p 8080:80 \
-e "PGADMIN_DEFAULT_EMAIL=admin1@example.com" \
-e "PGADMIN_DEFAULT_PASSWORD=123456" \
dpage/pgadmin4
docker run -d --name pgadmin2 -p 8081:80 \
-e "PGADMIN_DEFAULT_EMAIL=admin2@example.com" \
-e "PGADMIN_DEFAULT_PASSWORD=123456" \
dpage/pgadmin4
编辑Nginx配置文件(如/etc/nginx/conf.d/pgadmin.conf):
upstream pgadmin_cluster {
server 127.0.0.1:8080;
server 127.0.0.1:8081;
}
server {
listen 80;
server_name pgadmin.yourdomain.com;
location / {
proxy_pass http://pgadmin_cluster;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
重启Nginx服务:
sudo systemctl restart nginx
pgadmin4.db文件),避免单点故障;postgresql.conf中的listen_addresses为localhost),并通过SSH隧道访问;通过以上步骤,即可在CentOS下通过pgAdmin配置和管理PostgreSQL集群。如需更高级的高可用方案(如Patroni+etcd),可参考PostgreSQL官方文档或pgAdmin社区指南。