如何在外部服务器PgAdmin4中查看已创建的PostgreSQL13数据库
你在外部服务器安装的PgAdmin 4只是数据库客户端工具,不会自动同步你本地机器上的PostgreSQL数据库内容,哪怕登录凭据、服务器名设置得完全一样也不会自动关联,按以下步骤操作即可连接查看目标库:
一、先配置本地PostgreSQL 13,允许外部服务器连接
默认PostgreSQL安装后仅允许本地机器访问,需要先改3个配置:
- 修改监听地址:找到本地PostgreSQL 13数据目录下的
postgresql.conf文件,Windows默认路径为C:\Program Files\PostgreSQL\13\data\postgresql.conf,Linux默认路径为/var/lib/postgresql/13/main/postgresql.conf,找到listen_addresses参数,将默认值localhost修改为listen_addresses = '*',保存文件。 - 配置访问权限:打开同目录下的
pg_hba.conf文件,在文件末尾添加访问规则,允许外部服务器IP连接:
测试环境临时调试可以用全网访问规则(生产环境禁止使用):host all all 外部服务器的公网IP/32 scram-sha-256host all all 0.0.0.0/0 scram-sha-256 - 放行端口并重启服务:在本地机器的防火墙(如果本地是云主机还要改安全组规则)添加入站规则,放开5432端口(PostgreSQL默认端口)对外部服务器IP的访问权限。之后重启PostgreSQL 13服务:Windows在服务管理器找到
PostgreSQL-13服务右键重启,Linux执行命令sudo systemctl restart postgresql@13-main即可。
注意:如果你的本地机器在家庭/办公内网,没有独立公网IP,需要先在路由器做端口映射,或者用内网穿透工具把本地5432端口暴露出来,否则外部服务器无法定位到你的本地数据库机器。
二、在外部服务器的PgAdmin 4中添加连接
- 打开外部服务器上的PgAdmin 4,在左侧导航栏右键
Servers节点,选择Register->Server。 - 在弹出的配置窗口
General标签页,名称可以随便填,用你之前设置的相同服务器名也可以。 - 切换到
Connection标签页,按以下内容填写:Host name/address:填写你本地机器的公网IP(如果做了内网穿透就填穿透服务分配的公网地址)Port:默认填5432,如果你修改过PostgreSQL的监听端口就填写实际端口Maintenance database:默认填postgres即可Username:填写你本地PostgreSQL的登录用户名,默认管理员用户是postgresPassword:填写对应用户的登录密码,可勾选Save password避免下次重复输入
- 填写完成后点右下角
Save保存配置,连接成功后展开对应服务器节点下的Databases目录,就能看到你本地创建的所有目标数据库。
常见连接失败排查点
- 先在外部服务器上用
telnet 本地公网IP 5432测试端口是否能通,端口不通优先检查防火墙/安全组规则、PostgreSQL是否正常启动 - 端口能通但提示认证失败,检查
pg_hba.conf的规则是否添加正确、PostgreSQL服务是否重启过、用户名密码是否匹配 - 提示数据库不存在,检查填写的维护库名是否正确
内容的提问来源于stack exchange,提问作者Lotte Similon
相关产品推荐
相关产品推荐

