psycopg2.OperationalError: FATAL: password authentication failed for user "nouman"

psycopg2.OperationalError: FATAL: password authentication failed for user "nouman"

P.s。此问题已解决(我使用了错误的端口号)

我正在尝试在 WINDOWS OS 上使用 django 2.2 配置 Postgresql,但最终出现错误。这是我为我的项目配置 postgres 所做的:

  1. 使用所有默认配置安装了最新版本的 postgresql 并提供了我的密码
  2. 在 SQL Shell (psql) 中创建数据库
  1. 然后我将数据库的 settings.py 文件更新为:
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'blog',
        'USER': 'nouman',
        'PASSWORD': 'my password',
        'HOST': 'localhost',
        'PORT': '',
    }
}
  1. 我通过以下命令安装了 psycopg2:“pip install psycopg2”。
  2. 但是当我通过“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"

您需要使用命令

创建数据库用户
CREATE ROLE username WITH LOGIN PASSWORD 'quoted password';
CREATE DATABASE databasename;
GRANT ALL PRIVILEGES ON DATABASE databasename TO username;

阅读here

默认的 PostgresSQL 安装始终包括 postgres 超级用户。最初,您必须以 postgres 用户身份连接到 PostgreSQL,直到您创建其他用户(也称为角色)。

要创建 PostgreSQL 用户,请按照下列步骤操作:

  1. 在命令行中,以服务器的根目录键入以下命令 用户: su - postgres

  2. 您现在可以 运行 命令作为 PostgreSQL 超级用户。要创建用户,请键入以下命令: createuser --interactive --pwprompt

  3. 按照命令行上的说明进行操作。 PostgreSQL 使用您指定的设置创建用户。