数据库 PostgreSQL 中的访问错误
Access error in database PostgreSQL
编辑跳过第一部分,我发现(好吧,他们告诉我)问题出在数据库 \edit
我有一个 python+django 项目,我将其保存在两台计算机上。我的意思是有两个相同项目的副本,有时我在一个上工作,有时在另一个上工作。使用复制粘贴,我丢失了 settings.py 中的密钥(它们不同但我覆盖了)。我不知道密钥的生成和存储是如何工作的,但为了恢复,我开始了一个新项目,拿了密钥并像这样复制了文件:
1) 复制项目
2) 删除原项目但保留副本
3) 启动了一个同名的新项目(所以,在与原来相同的文件夹中)
4) 复制了新密钥
5) 将旧项目副本中的文件复制到新项目中(所以 settings.py 丢失了,新密钥也随之丢失,但我有一个副本)
6) 用新密钥更改密钥
但这不起作用,它会给出与之前相同的错误:
System check identified no issues (0 silenced).
Unhandled exception in thread started by <function check_errors.<locals>.wrapper
at 0x0000000004ADAEA0>
Traceback (most recent call last):
File "C:\Users\Fabio\Envs\possedimenti\lib\site-packages\django\db\backends\ba
se\base.py", line 216, in ensure_connection
self.connect()
File "C:\Users\Fabio\Envs\possedimenti\lib\site-packages\django\db\backends\ba
se\base.py", line 194, in connect
self.connection = self.get_new_connection(conn_params)
File "C:\Users\Fabio\Envs\possedimenti\lib\site-packages\django\db\backends\po
stgresql\base.py", line 174, in get_new_connection
connection = Database.connect(**conn_params)
File "C:\Users\Fabio\Envs\possedimenti\lib\site-packages\psycopg2\__init__.py"
, line 130, in connect
conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
psycopg2.OperationalError: FATALE: autenticazione con password fallita per l'ut
ente "gm"
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "C:\Users\Fabio\Envs\possedimenti\lib\site-packages\django\utils\autorelo
ad.py", line 225, in wrapper
fn(*args, **kwargs)
File "C:\Users\Fabio\Envs\possedimenti\lib\site-packages\django\core\managemen
t\commands\runserver.py", line 120, in inner_run
self.check_migrations()
File "C:\Users\Fabio\Envs\possedimenti\lib\site-packages\django\core\managemen
t\base.py", line 442, in check_migrations
executor = MigrationExecutor(connections[DEFAULT_DB_ALIAS])
File "C:\Users\Fabio\Envs\possedimenti\lib\site-packages\django\db\migrations\
executor.py", line 18, in __init__
self.loader = MigrationLoader(self.connection)
File "C:\Users\Fabio\Envs\possedimenti\lib\site-packages\django\db\migrations\
loader.py", line 49, in __init__
self.build_graph()
File "C:\Users\Fabio\Envs\possedimenti\lib\site-packages\django\db\migrations\
loader.py", line 209, in build_graph
self.applied_migrations = recorder.applied_migrations()
File "C:\Users\Fabio\Envs\possedimenti\lib\site-packages\django\db\migrations\
recorder.py", line 61, in applied_migrations
if self.has_table():
File "C:\Users\Fabio\Envs\possedimenti\lib\site-packages\django\db\migrations\
recorder.py", line 44, in has_table
return self.Migration._meta.db_table in self.connection.introspection.table_
names(self.connection.cursor())
File "C:\Users\Fabio\Envs\possedimenti\lib\site-packages\django\db\backends\ba
se\base.py", line 255, in cursor
return self._cursor()
File "C:\Users\Fabio\Envs\possedimenti\lib\site-packages\django\db\backends\ba
se\base.py", line 232, in _cursor
self.ensure_connection()
File "C:\Users\Fabio\Envs\possedimenti\lib\site-packages\django\db\backends\ba
se\base.py", line 216, in ensure_connection
self.connect()
File "C:\Users\Fabio\Envs\possedimenti\lib\site-packages\django\db\utils.py",
line 89, in __exit__
raise dj_exc_value.with_traceback(traceback) from exc_value
File "C:\Users\Fabio\Envs\possedimenti\lib\site-packages\django\db\backends\ba
se\base.py", line 216, in ensure_connection
self.connect()
File "C:\Users\Fabio\Envs\possedimenti\lib\site-packages\django\db\backends\ba
se\base.py", line 194, in connect
self.connection = self.get_new_connection(conn_params)
File "C:\Users\Fabio\Envs\possedimenti\lib\site-packages\django\db\backends\po
stgresql\base.py", line 174, in get_new_connection
connection = Database.connect(**conn_params)
File "C:\Users\Fabio\Envs\possedimenti\lib\site-packages\psycopg2\__init__.py"
, line 130, in connect
conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
django.db.utils.OperationalError: FATALE: autenticazione con password fallita p
er l'utente "gm"
已翻译:用户 'gm'
的密码验证失败
我不确定它第一次发生的时间,但我有另一个问题,可能与此有关:我无法访问数据库。也许这是第一个问题的原因而不是密钥。
我使用 PostgreSQL 并使用实用程序标准 pgAdmin III 访问它。它给了我服务器的初始屏幕:PostgreSQL 9.5,我右键单击它并 select 连接,它要求我输入密码,我给了但它抛出一个错误:
An error has occurred. Error connecting to the server: FATALE: autenticazione con password fallita per l'utente 'postgres'.
已翻译:用户 'postgres'
的密码验证失败
我只创建了一个数据库和用户,所以我有标准的 postgres 和我的数据库 'possedimenti_db' 以及一个名为 'gm'.
的用户
我能做什么?我不介意目前的数据,我可以删除所有但如果它不让我访问我不知道如何删除。
谢谢
我的settings.py
:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'possedimenti_db',
'USER': 'gm',
'PASSWORD': database_key,
'HOST': host_key,
'PORT': '5432',
}
}
database_key
和 host_key
从外部文件导入。
另外 database_key 与我使用 pgAdmin 访问数据库时使用的密码不同。在我的另一台电脑上它可以工作。我试图在另一个密码中更改它,但它仍然抛出相同的错误。
编辑
您可以在答案的评论中阅读解决方案,但问题是我的用户没有确定密码。
使用 'django.db.backends.postgresql_psycopg2' 代替 'django.db.backends.postgresql'。
您必须安装 psycopg2。使用此命令:
pip 安装 psycopg2
示例如下:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'team_db',
'USER': 'jason',
'PASSWORD': 'abcd',
'HOST': 'localhost',
'PORT': '5432',
}
}
编辑跳过第一部分,我发现(好吧,他们告诉我)问题出在数据库 \edit
我有一个 python+django 项目,我将其保存在两台计算机上。我的意思是有两个相同项目的副本,有时我在一个上工作,有时在另一个上工作。使用复制粘贴,我丢失了 settings.py 中的密钥(它们不同但我覆盖了)。我不知道密钥的生成和存储是如何工作的,但为了恢复,我开始了一个新项目,拿了密钥并像这样复制了文件:
1) 复制项目
2) 删除原项目但保留副本
3) 启动了一个同名的新项目(所以,在与原来相同的文件夹中)
4) 复制了新密钥
5) 将旧项目副本中的文件复制到新项目中(所以 settings.py 丢失了,新密钥也随之丢失,但我有一个副本)
6) 用新密钥更改密钥
但这不起作用,它会给出与之前相同的错误:
System check identified no issues (0 silenced).
Unhandled exception in thread started by <function check_errors.<locals>.wrapper
at 0x0000000004ADAEA0>
Traceback (most recent call last):
File "C:\Users\Fabio\Envs\possedimenti\lib\site-packages\django\db\backends\ba
se\base.py", line 216, in ensure_connection
self.connect()
File "C:\Users\Fabio\Envs\possedimenti\lib\site-packages\django\db\backends\ba
se\base.py", line 194, in connect
self.connection = self.get_new_connection(conn_params)
File "C:\Users\Fabio\Envs\possedimenti\lib\site-packages\django\db\backends\po
stgresql\base.py", line 174, in get_new_connection
connection = Database.connect(**conn_params)
File "C:\Users\Fabio\Envs\possedimenti\lib\site-packages\psycopg2\__init__.py"
, line 130, in connect
conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
psycopg2.OperationalError: FATALE: autenticazione con password fallita per l'ut
ente "gm"
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "C:\Users\Fabio\Envs\possedimenti\lib\site-packages\django\utils\autorelo
ad.py", line 225, in wrapper
fn(*args, **kwargs)
File "C:\Users\Fabio\Envs\possedimenti\lib\site-packages\django\core\managemen
t\commands\runserver.py", line 120, in inner_run
self.check_migrations()
File "C:\Users\Fabio\Envs\possedimenti\lib\site-packages\django\core\managemen
t\base.py", line 442, in check_migrations
executor = MigrationExecutor(connections[DEFAULT_DB_ALIAS])
File "C:\Users\Fabio\Envs\possedimenti\lib\site-packages\django\db\migrations\
executor.py", line 18, in __init__
self.loader = MigrationLoader(self.connection)
File "C:\Users\Fabio\Envs\possedimenti\lib\site-packages\django\db\migrations\
loader.py", line 49, in __init__
self.build_graph()
File "C:\Users\Fabio\Envs\possedimenti\lib\site-packages\django\db\migrations\
loader.py", line 209, in build_graph
self.applied_migrations = recorder.applied_migrations()
File "C:\Users\Fabio\Envs\possedimenti\lib\site-packages\django\db\migrations\
recorder.py", line 61, in applied_migrations
if self.has_table():
File "C:\Users\Fabio\Envs\possedimenti\lib\site-packages\django\db\migrations\
recorder.py", line 44, in has_table
return self.Migration._meta.db_table in self.connection.introspection.table_
names(self.connection.cursor())
File "C:\Users\Fabio\Envs\possedimenti\lib\site-packages\django\db\backends\ba
se\base.py", line 255, in cursor
return self._cursor()
File "C:\Users\Fabio\Envs\possedimenti\lib\site-packages\django\db\backends\ba
se\base.py", line 232, in _cursor
self.ensure_connection()
File "C:\Users\Fabio\Envs\possedimenti\lib\site-packages\django\db\backends\ba
se\base.py", line 216, in ensure_connection
self.connect()
File "C:\Users\Fabio\Envs\possedimenti\lib\site-packages\django\db\utils.py",
line 89, in __exit__
raise dj_exc_value.with_traceback(traceback) from exc_value
File "C:\Users\Fabio\Envs\possedimenti\lib\site-packages\django\db\backends\ba
se\base.py", line 216, in ensure_connection
self.connect()
File "C:\Users\Fabio\Envs\possedimenti\lib\site-packages\django\db\backends\ba
se\base.py", line 194, in connect
self.connection = self.get_new_connection(conn_params)
File "C:\Users\Fabio\Envs\possedimenti\lib\site-packages\django\db\backends\po
stgresql\base.py", line 174, in get_new_connection
connection = Database.connect(**conn_params)
File "C:\Users\Fabio\Envs\possedimenti\lib\site-packages\psycopg2\__init__.py"
, line 130, in connect
conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
django.db.utils.OperationalError: FATALE: autenticazione con password fallita p
er l'utente "gm"
已翻译:用户 'gm'
的密码验证失败我不确定它第一次发生的时间,但我有另一个问题,可能与此有关:我无法访问数据库。也许这是第一个问题的原因而不是密钥。
我使用 PostgreSQL 并使用实用程序标准 pgAdmin III 访问它。它给了我服务器的初始屏幕:PostgreSQL 9.5,我右键单击它并 select 连接,它要求我输入密码,我给了但它抛出一个错误:
An error has occurred. Error connecting to the server: FATALE: autenticazione con password fallita per l'utente 'postgres'.
已翻译:用户 'postgres'
的密码验证失败我只创建了一个数据库和用户,所以我有标准的 postgres 和我的数据库 'possedimenti_db' 以及一个名为 'gm'.
的用户我能做什么?我不介意目前的数据,我可以删除所有但如果它不让我访问我不知道如何删除。
谢谢
我的settings.py
:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'possedimenti_db',
'USER': 'gm',
'PASSWORD': database_key,
'HOST': host_key,
'PORT': '5432',
}
}
database_key
和 host_key
从外部文件导入。
另外 database_key 与我使用 pgAdmin 访问数据库时使用的密码不同。在我的另一台电脑上它可以工作。我试图在另一个密码中更改它,但它仍然抛出相同的错误。
编辑 您可以在答案的评论中阅读解决方案,但问题是我的用户没有确定密码。
使用 'django.db.backends.postgresql_psycopg2' 代替 'django.db.backends.postgresql'。
您必须安装 psycopg2。使用此命令: pip 安装 psycopg2
示例如下:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'team_db',
'USER': 'jason',
'PASSWORD': 'abcd',
'HOST': 'localhost',
'PORT': '5432',
}
}