ОШИБКА: невозможно выполнить SELECT в транзакции только для чтения при подключении к БД - PullRequest
0 голосов
/ 12 февраля 2019

При попытке подключиться к моей базе данных Amazon PostgreSQL я получаю вышеуказанную ошибку.С pgAdmin я получаю «свойства сохранения ошибок».

Я не понимаю, зачем подключаться к серверу, я бы сделал какие-либо действия по записи?

Ответы [ 2 ]

0 голосов
/ 17 февраля 2019

Это была ошибка, которая теперь исправлена, исправление будет доступно в следующем выпуске.

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

Если вы хотите попробовать, вы можете использовать Nightly build и проверить: https://www.postgresql.org/ftp/pgadmin/pgadmin4/snapshots/2019-02-17/

0 голосов
/ 12 февраля 2019

Существует несколько причин, по которым вы можете получить эту ошибку:

  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 не должен этого делать).

В этом случае, загляните в файл журнала, чтобы узнать, какой оператор вызывает ошибку.

...