You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

使用pgAdmin4连接PostgreSQL失败:readonly attribute错误

解决pgAdmin4连接本地PostgreSQL时出现"readonly attribute"错误的方案

我之前帮同事排查问题时遇到过完全一致的情况——pgAdmin3能正常连接,但pgAdmin4不管搭配PostgreSQL 9.6还是10版本,都报"readonly attribute"错误,而且还是全新安装的环境。结合经验判断,这基本是pgAdmin4自身的配置或权限问题,和数据库本身无关,你可以试试下面几个针对性的解决办法:

  • 检查pgAdmin4配置目录的读写权限
    pgAdmin4依赖本地的配置数据库(pgadmin4.db)存储连接信息等内容,如果这个文件或所在目录没有读写权限,就会触发readonly相关报错:

    • Linux/macOS下,配置目录一般在~/.pgadmin,执行以下命令赋予当前用户读写权限:
      chmod -R u+rw ~/.pgadmin
      
    • Windows下,配置目录通常是%APPDATA%\pgAdmin,右键该目录选择「属性」→「安全」,给当前登录用户添加「完全控制」权限。
  • 重置pgAdmin4的配置数据库
    有时候配置数据库损坏会引发奇怪的权限问题。先关闭pgAdmin4,找到配置目录里的pgadmin4.db文件,先备份一份以防万一,然后删除原文件。重新启动pgAdmin4后,它会自动重建一个干净的配置数据库,之后再尝试连接postgres用户。

  • 尝试以管理员身份启动pgAdmin4
    这招在Windows系统上经常奏效——右键pgAdmin4的快捷方式,选择「以管理员身份运行」,再去创建数据库连接。有时候系统的UAC限制会导致pgAdmin4无法写入配置文件,管理员权限能绕过这个限制。

  • 升级到最新版pgAdmin4
    如果你的pgAdmin4版本偏旧,可能存在已知的bug。下载最新的稳定版安装包覆盖安装后再测试连接,很多这类奇怪的小问题在新版本里都会被修复。

  • 兜底排查:确认pg_hba.conf的本地连接配置
    虽然pgAdmin3能正常连接,但还是可以快速检查一下PostgreSQL的pg_hba.conf文件,确保postgres用户的本地连接是允许的。比如可以将对应条目改成:

    local   all             postgres                                trust
    

    修改后记得重启PostgreSQL服务,不过这一步大概率不是问题根源,仅作为兜底排查项。

内容的提问来源于stack exchange,提问作者Ahmed Tawfik

火山引擎 最新活动