数据库PostgreSQL

时间:2018-08-27 10:31:08

标签: python django postgresql forgot-password

编辑跳过第一部分,我发现(好吧,他们告诉我)问题出在数据库\ 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,我右键单击它并选择connect,它要求我输入密码,但我却给出了错误:

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_keyhost_key是从外部文件导入的。

database_key也不同于我使用pgAdmin访问数据库所使用的密码。在我的另一台PC中,它可以工作。我试图用其他密码更改它,但是无论如何都会抛出相同的错误。

编辑 您可以在答案的注释中阅读解决方案,但是问题是我的用户没有确定的密码。

1 个答案:

答案 0 :(得分:1)

使用“ 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',                      
    }
}