如何配置PGAdmin4连接到psql对应的Postgres服务实例
问题排查与解决方法
一、确认当前PgAdmin连接的错误实例
你遇到的是典型的多PostgreSQL实例共存导致的连接错位问题,从你提供的日志可以确认,psql连接的是本地5432端口、数据目录为/usr/local/var/postgres的正确实例,而PgAdmin当前连接的大概率是以下两类实例之一:
- 本机上其他PostgreSQL服务:比如通过Docker、Postgres.app、其他包管理工具安装的额外Postgres实例,通常占用5433或其他非5432端口
- 非本地的远程PostgreSQL实例:之前配置的其他服务器上的Postgres服务
你可以通过以下步骤验证:
- 在psql中执行以下命令,获取正确实例的核心参数:
select inet_server_addr() 监听地址, inet_server_port() 端口, version() 版本, current_user 当前用户名;
- 在PgAdmin左侧选中当前连接的服务器,右键点击「属性」-「连接」,对比主机地址、端口、用户名参数,和psql查询到的结果不一致即可确认是连接配置错误。
二、重新连接到正确实例的操作步骤
步骤1:确认正确实例的连接参数
从你提供的启动日志和数据库列表,正确实例的固定参数如下:
- 监听地址:
127.0.0.1(也可填localhost) - 端口:
5432 - 用户名:
mainframe02 - 初始可连接数据库:
postgres
如果忘记了mainframe02用户的密码,可先在psql中执行以下命令重置:
ALTER USER mainframe02 PASSWORD '自定义密码';
步骤2:在PgAdmin中新增正确的服务器连接
- 先删除现有错误的连接:右键点击当前连接的服务器,选择「删除服务器」
- 右键点击左侧「服务器」根节点,选择「注册」-「服务器」
- 「常规」标签页:自定义填写服务器名称(比如「本地Postgres13」)
- 「连接」标签页:按如下参数填写:
- 主机名/地址:
127.0.0.1 - 端口:
5432 - 维护数据库:
postgres - 用户名:
mainframe02 - 密码:填写你重置后的密码,可勾选「保存密码」
- 主机名/地址:
- 点击「保存」,连接成功后刷新数据库列表,即可看到
que_live_dev、template0、template1三个额外数据库。
额外排查建议
如果操作后仍有问题,可在终端执行lsof -i :5432查看5432端口的进程信息,确认该端口确实是你用pg_ctl启动的Postgres实例,避免多个实例端口冲突。
内容的提问来源于stack exchange,提问作者Jason O.
相关产品推荐
相关产品推荐

