要通过pgAdmin连接到远程PostgreSQL服务器,需完成远程服务器配置(允许PostgreSQL接受远程连接)、防火墙设置(放行端口)及pgAdmin客户端配置(创建服务器连接)三个核心步骤。
要让远程客户端(如pgAdmin)访问PostgreSQL,需修改其核心配置文件,允许监听所有网络接口并授权远程IP连接。
修改postgresql.conf文件(开启远程监听)
打开PostgreSQL的主配置文件(路径通常为/etc/postgresql/<版本号>/main/postgresql.conf或/var/lib/pgsql/<版本号>/data/postgresql.conf),找到listen_addresses参数,将其值从默认的localhost(仅本地访问)修改为*(监听所有IP地址),示例如下:
listen_addresses = '*'
保存并关闭文件。
修改pg_hba.conf文件(授权远程IP连接)
打开PostgreSQL的客户端认证配置文件(路径与postgresql.conf同级,通常为pg_hba.conf),添加或修改以下行,允许指定IP段(如0.0.0.0/0代表所有IP,建议替换为实际客户端IP以提高安全性)通过密码(md5加密)方式访问所有数据库:
host all all 0.0.0.0/0 md5
保存并关闭文件。
重启PostgreSQL服务使配置生效
执行以下命令重启PostgreSQL服务,使上述配置生效:
sudo systemctl restart postgresql
(若系统使用其他服务管理工具,如service,可替换为sudo service postgresql restart)。
PostgreSQL默认使用5432端口,需确保远程服务器的防火墙允许该端口的传入连接。
ufw防火墙(Ubuntu常用):sudo ufw allow 5432/tcp
sudo ufw enable
iptables防火墙(通用):sudo iptables -A INPUT -p tcp --dport 5432 -j ACCEPT
(若需永久保存规则,需根据系统类型执行iptables-save或对应命令)。完成远程服务器配置后,即可通过pgAdmin创建远程连接。
打开pgAdmin并添加服务器
启动pgAdmin应用程序,在左侧导航栏的“Servers”节点上右键点击,选择“Create” -> “Server…”(创建服务器)。
填写服务器连接信息
在弹出的“Create - Server”窗口中,切换至“General”(常规)标签页,输入以下信息:
192.168.1.100或example.com);5432,若修改过需填写修改后的端口);postgres或自定义用户);postgres,若留空需后续手动选择)。保存并测试连接
点击“Save”(保存)按钮保存配置,随后双击左侧“Servers”下的新创建服务器节点,pgAdmin将尝试连接远程服务器。若配置正确,将显示远程服务器的数据库列表;若连接失败,需检查上述步骤中的配置是否正确(如postgresql.conf、pg_hba.conf、防火墙规则、网络连通性)。
0.0.0.0/0(允许所有IP连接),建议替换为实际客户端的IP地址或IP段(如192.168.1.0/24);可启用SSL加密(在pgAdmin连接配置的“SSL”标签页中勾选“Require”)以提高数据传输安全性。GRANT语句授予,如GRANT CONNECT ON DATABASE mydb TO myuser;)。ping <服务器IP>测试)。