centos上pgadmin如何远程访问
导读:在CentOS上实现pgAdmin远程访问的完整步骤 一、前置准备:安装PostgreSQL数据库 pgAdmin是PostgreSQL的图形化管理工具,需先安装PostgreSQL作为后端数据库。 添加PostgreSQL官方Yum存储...
在CentOS上实现pgAdmin远程访问的完整步骤
一、前置准备:安装PostgreSQL数据库
pgAdmin是PostgreSQL的图形化管理工具,需先安装PostgreSQL作为后端数据库。
- 添加PostgreSQL官方Yum存储库(适用于CentOS 7/8/9):
sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-$(rpm -E %{ rhel} )-x86_64/pgdg-redhat-repo-latest.noarch.rpm - 安装PostgreSQL服务器(以PostgreSQL 15为例):
sudo yum install -y postgresql15-server postgresql15-devel - 初始化数据库并启动服务:
sudo /usr/pgsql-15/bin/postgresql-15-setup initdb # 初始化数据库集群 sudo systemctl enable --now postgresql-15 # 开机启动并立即启动服务 - 创建pgAdmin专用数据库用户(用于登录pgAdmin):
切换至postgres用户,执行SQL命令创建用户(如pgadmin)并授权:sudo -u postgres psql CREATE USER pgadmin WITH PASSWORD 'YourStrongPassword123!' CREATEDB; # 创建用户并允许创建数据库 GRANT ALL PRIVILEGES ON DATABASE postgres TO pgadmin; # 授权访问默认数据库 \q # 退出psql
二、安装pgAdmin(Web版,推荐)
pgAdmin Web版更适合远程管理,以下是安装步骤:
- 安装pgAdmin Web组件:
sudo yum install -y pgadmin4-web - 初始化pgAdmin配置:
运行初始化脚本,设置管理员邮箱(用于找回密码)和初始密码:
按提示输入管理员邮箱(如sudo /usr/pgadmin4/bin/pgadmin4-web-setup.shadmin@yourdomain.com)和密码(如PgAdminAdmin@123)。 - 启动pgAdmin服务:
初始化完成后,pgAdmin会自动启动。如需手动控制,可使用以下命令:sudo systemctl start pgadmin4 # 启动服务 sudo systemctl enable pgadmin4 # 开机自启动
三、配置PostgreSQL允许远程连接
要让pgAdmin远程访问PostgreSQL,需修改PostgreSQL配置文件:
- 修改
postgresql.conf(允许监听所有IP):
找到配置文件(路径通常为/var/lib/pgsql/15/data/postgresql.conf或/usr/pgsql-15/data/postgresql.conf),修改以下行:listen_addresses = '*' # 允许监听所有网络接口 - 修改
pg_hba.conf(允许远程IP访问):
找到配置文件(与postgresql.conf同目录),在文件末尾添加以下行(允许所有IP通过密码验证访问):host all all 0.0.0.0/0 md5 # 生产环境建议限制为客户端IP段(如192.168.1.0/24) - 重启PostgreSQL服务:
sudo systemctl restart postgresql-15
四、配置防火墙允许访问
若系统启用了firewalld,需开放HTTP(pgAdmin Web界面)和PostgreSQL(数据库连接)端口:
sudo firewall-cmd --permanent --add-service=http # 开放HTTP服务(默认80端口)
sudo firewall-cmd --permanent --add-port=5432/tcp # 开放PostgreSQL端口
sudo firewall-cmd --reload # 重新加载防火墙规则
若使用iptables,可执行以下命令:
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT # 允许HTTP流量
sudo iptables -A INPUT -p tcp --dport 5432 -j ACCEPT # 允许PostgreSQL流量
sudo service iptables save # 保存规则(CentOS 7及以下)
五、配置pgAdmin Web界面允许远程访问
默认情况下,pgAdmin Web界面仅允许本地访问,需修改Apache配置:
- 复制默认配置文件:
sudo cp /etc/httpd/conf.d/pgadmin4.conf.sample /etc/httpd/conf.d/pgadmin4.conf - 修改配置文件:
用文本编辑器(如vi)打开配置文件,确认以下设置:- 监听地址:将
Listen localhost:80改为Listen 80(允许所有IP访问); - 服务器名称:将
ServerName localhost改为服务器公网IP或域名(如ServerName pgadmin.yourdomain.com)。
保存并退出。
- 监听地址:将
- 重启Apache服务:
sudo systemctl restart httpd
六、访问pgAdmin Web界面并添加远程服务器
- 打开浏览器,输入服务器IP或域名(如
http://your_server_ip或http://pgadmin.yourdomain.com)。 - 登录页面:输入之前创建的pgadmin用户和密码(如
pgadmin/YourStrongPassword123!”),点击“登录”。 - 添加PostgreSQL服务器:
- 登录后,点击左侧导航栏的“+”号→“Servers”→“Create”→“Server”;
- 在“General”标签页输入服务器名称(如“My PostgreSQL Server”);
- 在“Connection”标签页填写:
- Host:PostgreSQL服务器IP或主机名(若pgAdmin与PostgreSQL在同一服务器,填
localhost); - Port:5432(默认端口);
- Username:pgadmin(之前创建的数据库用户);
- Password:YourStrongPassword123!”(用户密码);
- Host:PostgreSQL服务器IP或主机名(若pgAdmin与PostgreSQL在同一服务器,填
- 点击“Save”保存配置,即可连接并管理PostgreSQL数据库。
七、可选:Docker方式安装pgAdmin(快速部署)
若系统已安装Docker,可通过容器快速部署pgAdmin(无需配置Apache):
- 安装Docker:
sudo yum install -y docker sudo systemctl start docker sudo systemctl enable docker - 拉取pgAdmin镜像:
docker pull dpage/pgadmin4 - 启动pgAdmin容器:
docker run -p 5050:80 \ -e "PGADMIN_DEFAULT_EMAIL=admin@pgadmin.com" \ -e "PGADMIN_DEFAULT_PASSWORD=admin123" \ -d dpage/pgadmin4 - 访问容器:
浏览器输入http://your_server_ip:5050,使用admin@pgadmin.com/admin123登录。
注意事项
- 安全性:生产环境中,建议关闭PostgreSQL的远程连接(修改
postgresql.conf中的listen_addresses为localhost),并通过SSH隧道访问; - SELinux配置:若系统启用SELinux,需允许Apache访问PostgreSQL:
sudo setsebool -P httpd_can_network_connect_db 1 - 版本兼容:确保pgAdmin版本与PostgreSQL版本兼容(如pgAdmin 4.26+支持PostgreSQL 15)。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: centos上pgadmin如何远程访问
本文地址: https://pptw.com/jishu/737032.html
