В Postgres Google Cloud sql нет возможности сделать суперпользователя. Итак, я получаю:
psql --version
psql (PostgreSQL) 16.3 (Postgres.app)
psql postgres://postgres:password@ip/db
FATAL: permission denied to set parameter "log_min_messages"
когда я пытаюсь подключиться. Я установил для этого флага значение «информация», но при подключении он все равно пытается изменить значение, и эта ошибка является фатальной. Как я могу обойти это, не создав суперпользователя?
psql --version psql (PostgreSQL) 16.3 (Postgres.app)
Почему этот клиент пытается изменить log_min_statements? Это не поведение по умолчанию. Установлена ли у вас переменная среды PGOPTIONS? Это что-то в строке подключения? Это что-то в файле .psqlrc (хотя в моем тестировании это не кажется фатальным)?
нет, нет PGOPTIONS env var. Чтобы проверить, возможно, проблема в моей версии 16.3 (Postgres.app), я заварил install postgresql@15 и попытался подключиться к этому двоичному файлу psql v15. Но я неправильно понял путь, и после установки я снова запустил оригинальную версию 16.3 и... барабанная дробь, сам процесс установки Brew каким-то образом решил проблему!
Они называются «флагами базы данных». Вы можете изменить настройки с помощью Google Cloud Console.
После изменения вам придется перезапустить экземпляр, чтобы активировать новый флаг.
я сделал это. Все еще получаю ошибку. psql: ошибка: соединение с сервером, порт 5432 не удалось: FATAL: отказано в разрешении на установку параметра «log_min_messages»
В этом случае вам придется связаться с GCP, потому что они утверждают, что это должно сработать.
спасибо, есть идеи, почему я получил отрицательный голос?
Независимо от того, какое значение установлено по умолчанию для всего сервера, его клиент все равно пытается изменить этот параметр локально, и ему не разрешено это делать. Это необходимо исправить на стороне клиента.
Я сделал
brew install postgresql@15
и это как-то исправило это для меня. Несмотря на то, что я все еще использую свой оригинальный psql (PostgreSQL) 16.3 (Postgres.app). Теперь я могу войти в систему без этой ФАТАЛЬНОЙ ошибки, но понятия не имею, почему это исправило.
Это скорее проблема клиента, чем проблема сервера. Насколько я знаю, это ФАТАЛЬНО только если попытаться установить его через PGOPTIONS на клиенте. Поэтому измените конфигурацию клиента, чтобы этого не делать. Или расскажите, что такое клиент и как он настроен.