Postgres TX出错

时间:2017-12-07 19:35:03

标签: postgresql

尝试在数据库中创建用户,并告诉我cannot execute **** in a read-only transaction。我不知道是什么原因造成的?这是数据库或连接中的错误状态吗?为什么这说明它不是在交易中,而是告诉我这是一个只读交易? “交易”是指同一件事吗?

$ psql --host localhost --port 5432 --username **** postgres --no-password -v dbuser=root -t -X
psql (10.1, server 9.4.13)
SSL connection (protocol: TLSv1.2, cipher: ECDHE-RSA-AES256-GCM-SHA384, bits: 256, compression: off)
Type "help" for help.

postgres=# set transaction read write;
WARNING:  SET TRANSACTION can only be used in transaction blocks
ERROR:  cannot set transaction read-write mode during recovery
postgres=# CREATE USER root WITH PASSWORD 'root';
ERROR:  cannot execute CREATE ROLE in a read-only transaction

1 个答案:

答案 0 :(得分:1)

您的数据库正在恢复中。

要么是备用热备份(最有可能),要么SELECT pg_wal_replay_pause()recovery_target_action = 'pause'中的recovery.conf暂停恢复(请SELECT pg_is_wal_replay_paused()检查),或者点 - 及时恢复仍在运行。

使用主要或完全恢复。