在使用IntelliJ IDEA和PostgreSQL时出现"ERROR: cannot execute UPDATE in a read-only transaction"错误。

3
我正在使用IntelliJ IDEA DB Navigator插件连接PostgreSQL数据库,连接已经建立,可以在不同的表中进行查询。但是当我尝试从控制台执行更新语句时,出现以下错误: enter image description here
Error executing UPDATE statement. ERROR: cannot execute UPDATE in a read-only transaction - Connection: *: 47ms 

有没有办法找出如何修复错误或检查为什么事务处于只读模式的方法?

版本:IntelliJ IDEA 2020.3.2(旗舰版) VM:JetBrains s.r.o.开发的OpenJDK 64位服务器VM。 DB Navigator版本3.2。

1个回答

1

在我的情况下,我最终连接到只读从库副本而不是主数据库。我们使用了多个主机的连接字符串,格式如下:

postgresql://host1:port1,host2:port2,host3:port3/

其中一台主机为从属副本。如果不设置targetServerType=master,JDBC将连接到只读副本。
在确认实例确实处于恢复模式或只读状态之后,我修改了连接字符串。添加targetServerType=master(或targetServerType=primary)的设置解决了这个问题:
jdbc:postgresql://hostmaster.com:5432,hostsecond.com:5432/dbName?&targetServerType=master

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接