ошибка аутентификации при Django развертывании до Postgres - PullRequest
0 голосов
/ 28 апреля 2020

У меня проблема с выполнением миграции в мою недавно сконфигурированную базу данных на сервере Amazon. При запуске

python manage.py makemigrations

я получаю сообщение об ошибке:

   conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
django.db.utils.OperationalError: FATAL:  password authentication failed for user "ubuntu"
FATAL:  password authentication failed for user "ubuntu"

Я застрял и, честно говоря, начинающий, и я запутался, потому что хотя я запускаю виртуальную машину с Ubuntu для размещения моего django приложение, у меня нет пользователя "Ubuntu".

Вот мой файл .env:

SECRET_KEY = secretkey..
DEBUG = False
NAME = dbexostock
USER = pierre
PASSWORD = mypassword
HOST = hostnameprovidedbyamazonrds

settings.py

    'default': {
        'ENGINE': 'django_tenants.postgresql_backend',
        'NAME': config('NAME'),
        'USER': config('USER'),
        'PASSWORD' : config('PASSWORD'),
        'HOST': config('HOST'),
        'PORT': '5432',
    }
}

, и одну из моих форм необходимо записать в базу данных, например:

 engine = create_engine('postgresql://pierre:mypassword@:hostnameprovidedbyamazonrds:5432/dbexostock',
                               connect_args={'options': '-csearch_path={}'.format(dbschema)})
        metricsdb = metrics.to_sql('dashboard_metrics', engine, if_exists='replace')

Мне нечего проверять, я был бы признателен за любую помощь по этому вопросу

1 Ответ

0 голосов
/ 28 апреля 2020

Если это бесплатная sh установка Postgres, и предполагается, что вы создали базу данных и пользователя и дали этому пользователю права доступа к базе данных. Попробуйте войти в свой экземпляр в AWS с помощью имени пользователя и пароля, которые вы создали, если вы можете, это может быть настройка в Postgres, которую вы должны изменить.

При бесплатной sh установке Postgres, по умолчанию аутентификация установлена ​​на IDENT, это означает, что пользователь, которого вы используете для входа на ваш сервер, вероятно, UBUNTU в этом случае, это пользователь Postgres пытается использовать.

Чтобы заставить Postgres использовать свой пароль и имя пользователя, заданные в файле settings.py, вы должны отредактировать pg_hba.conf файл

Сначала определите, какой pg_hba.conf файл postgres использует войдите в систему Postgres $ psql postgres Затем запустите: postgres=# SHOW hba_file Это сообщит вам путь к файлу настроек, который используется Postgres.

Откройте этот файл для редактирования и убедитесь, что METHOD установите md5, а не идент или что-то еще. После сохранения файла, если его необходимо изменить, перезапустите postgres.

# TYPE  DATABASE        USER            ADDRESS                 METHOD

 # "local" is for Unix domain socket connections only
 local   all             all                                     ident
 # IPv4 local connections:
 host    all             all             127.0.0.1/32            ident
 # IPv6 local connections:
 host    all             all             ::1/128                 ident
 # Allow replication connections from localhost, by a user with the
 # replication privilege.
 local   replication     all                                     ident
 host    replication     all             127.0.0.1/32            ident
 host    replication     all             ::1/128                 ident
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...