psycopg2.OperationalError: FATAL: аутентификация по паролю не удалась для пользователя "nouman" - PullRequest
0 голосов
/ 17 января 2020

Ps ЭТА ПРОБЛЕМА РЕШЕНА (Я БЫВАЛ ГЛУБОКОЙ ОШИБКОЙ)

Я пытаюсь настроить Postgresql с django 2.2 на WINDOWS ОС, но в итоге получаю ошибку. Вот что я сделал, чтобы настроить postgres для моего проекта:

  1. Установил postgresql последнюю версию со всеми настройками по умолчанию и дал мой пароль
  2. Создана база данных в SQL Shell (psql), выполнив

    • CREATE USER nouman;

    • CREATE DATABASE blog OWNER nouman;

  3. Затем я обновил файл settings.py для базы данных следующим образом:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'blog',
        'USER': 'nouman',
        'PASSWORD': 'my password',
        'HOST': 'localhost',
        'PORT': '',
    }
}
Я установил psycopg2 по команде: "pip install psycopg2". Но когда я обновляю базу данных с помощью "python manage.py migrate", она выдает эту ошибку:
Traceback (most recent call last):
  File "C:\Users\nouma\Desktop\djano2byexample\myenv\lib\site-packages\django\db\backends\base\base.py", line 217, in ensure_connection
    self.connect()
  File "C:\Users\nouma\Desktop\djano2byexample\myenv\lib\site-packages\django\db\backends\base\base.py", line 195, in connect
    self.connection = self.get_new_connection(conn_params)
  File "C:\Users\nouma\Desktop\djano2byexample\myenv\lib\site-packages\django\db\backends\postgresql\base.py", line 178, in get_new_connection
    connection = Database.connect(**conn_params)
  File "C:\Users\nouma\Desktop\djano2byexample\myenv\lib\site-packages\psycopg2\__init__.py", line 126, in connect
    conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
psycopg2.OperationalError: FATAL:  password authentication failed for user "nouman"


The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "manage.py", line 21, in <module>
    main()
  File "manage.py", line 17, in main
    execute_from_command_line(sys.argv)
  File "C:\Users\nouma\Desktop\djano2byexample\myenv\lib\site-packages\django\core\management\__init__.py", line 381, in execute_from_command_line
    utility.execute()

-----------snip--------

  File "C:\Users\nouma\Desktop\djano2byexample\myenv\lib\site-packages\psycopg2\__init__.py", line 126, in connect
    conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
django.db.utils.OperationalError: FATAL:  password authentication failed for user "nouman"

Ответы [ 2 ]

2 голосов
/ 17 января 2020

Вам необходимо создать пользователя БД с помощью команды

CREATE ROLE username WITH LOGIN PASSWORD 'quoted password';
CREATE DATABASE databasename;
GRANT ALL PRIVILEGES ON DATABASE databasename TO username;

читать здесь

0 голосов
/ 17 января 2020

Установка по умолчанию PostgresSQL всегда включает суперпользователя postgres. Сначала необходимо подключиться к PostgreSQL как пользователь postgres, пока вы не создадите других пользователей (которые также называются ролями).

Чтобы создать пользователя PostgreSQL, выполните следующие действия:

  1. В командной строке введите следующую команду как root пользователь сервера: su - postgres

  2. Теперь вы можете запускать команды как PostgreSQL суперпользователь. Чтобы создать пользователя, введите следующую команду: createuser --interactive --pwprompt

  3. Следуйте инструкциям в командной строке. PostgreSQL создает пользователя с указанными вами настройками.

...