尝试在数据库中创建用户,并告诉我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
答案 0 :(得分:1)
您的数据库正在恢复中。
要么是备用热备份(最有可能),要么SELECT pg_wal_replay_pause()
或recovery_target_action = 'pause'
中的recovery.conf
暂停恢复(请SELECT pg_is_wal_replay_paused()
检查),或者点 - 及时恢复仍在运行。
使用主要或完全恢复。