错误:连接到数据库时无法在只读事务中执行SELECT

时间:2019-02-12 10:56:57

标签: postgresql pgadmin-4

当尝试连接到我的Amazon PostgreSQL数据库时,出现上述错误。使用pgAdmin,我得到了“错误保存属性”。

我看不到为什么要连接到服务器,我会执行任何写操作吗?

2 个答案:

答案 0 :(得分:3)

这是一个已修复的错误,此修复程序将在下一版本中提供。

https://redmine.postgresql.org/issues/3973

如果您想尝试,则可以使用Nightly build并检查:https://www.postgresql.org/ftp/pgadmin/pgadmin4/snapshots/2019-02-17/

答案 1 :(得分:1)

有几个原因导致您收到此错误:

  1. PostgreSQL集群处于恢复状态(或处于流复制备用状态)。您可以通过运行

    来了解情况是否如此。
    SELECT pg_is_in_recovery();
    
  2. 参数default_transaction_read_only设置为on。诊断

    SHOW default_transaction_read_only;
    
  3. 当前交易已开始

    START TRANSACTION READ ONLY;
    

    您可以使用未记录的参数来查明是否存在这种情况

    SHOW transaction_read_only;
    

如果您理解了这一点,但仍然想知道为什么会收到此错误,因为您不知道尝试进行任何数据修改,这意味着您用于连接的应用程序会尝试进行某些修改(但是pgAdmin应该不会)这样做)。

在这种情况下,请查看日志文件以找出导致错误的语句。