AWS RDS: ошибка: не удалось пройти аутентификацию по паролю для пользователя «ubuntu» из EC2

У меня есть экземпляр postgres RDS, к которому мое веб-приложение Node.js, работающее на экземпляре EC2, не может подключиться. Ошибка в журналах моего узла EC2: ошибка: не удалось выполнить аутентификацию по паролю для пользователя «ubuntu».

Я могу подтвердить, что у меня есть правильное имя пользователя, пароль, имя базы данных и т. д., потому что он правильно работает в сборке для разработки на моем компьютере. Я скопировал все параметры .env точно на свою машину ec2 для производственной сборки. При попытке подключения к RDS на веб-странице моего производственного приложения происходит сбой. Я несколько раз перезапускал свой сервер Node.js и перезагружал всю машину ec2. Я подтвердил, что переменные env есть в printenv.

Что бы вы порекомендовали попытаться исправить эту проблему?

РЕДАКТИРОВАТЬ для получения более подробной информации: моя настройка nodejs должна быть правильной, потому что мой сервер nodejs будет вызывать некоторые внешние API, которые не требуют моей базы данных postgres, и эти вызовы работают правильно.

EDIT2: это странно, потому что мое имя пользователя для RDS — postgres, а мое имя пользователя для EC2 — ubuntu. Интересно, есть ли конфликт между переменными env? Я проверил printenv, но ничего не нашел

EDIT3: см. комментарии для моего обходного пути.

Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно...
Flatpickr: простой модуль календаря для вашего приложения на React
Flatpickr: простой модуль календаря для вашего приложения на React
Если вы ищете пакет для быстрой интеграции календаря с выбором даты в ваше приложения, то библиотека Flatpickr отлично справится с этой задачей....
В чем разница между Promise и Observable?
В чем разница между Promise и Observable?
Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
Четыре эффективных способа центрирования блочных элементов в CSS
Четыре эффективных способа центрирования блочных элементов в CSS
У каждого из нас бывали случаи, когда нам нужно отцентрировать блочный элемент, но мы не знаем, как это сделать. Даже если мы реализуем какой-то...
0
0
15
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я бы предложил проверить учетные данные базы данных, напрямую подключившись к базе данных RDS с помощью клиента psql на экземпляре EC2.

Проблема заключалась в том, что по какой-то причине pg пытается подключиться к RDS, используя имя пользователя ubuntu вместо postgres, хотя мой код указывает, что он должен подключаться как пользователь postgres. Я думаю, что что-то переопределяет эту конфигурацию, но я не могу понять, что. В итоге я реализовал хакерское решение, в котором я создал нового пользователя в моей базе данных pg с именем ubuntu и предоставил ему доступ для чтения и записи, и это в итоге сработало.

Eduguy 10.04.2022 18:30

Другие вопросы по теме