![](/img/trans.png)
[英]AWS - DJANGO - Error in formatting: OperationalError: fe_sendauth: no password supplied
[英]django.db.utils.OperationalError: fe_sendauth: no password supplied when migrating django app
我是 Django 的初学者,从事一个开源项目,这非常具有挑战性,因为它只为 Mac 提供构建说明,而不是 Linux。 因此,在我的 Ubuntu 服务器上,我已经成功安装了所有软件包并修复了一些初始错误,但是现在,当我执行python manage.py migrate
时,我遇到了这个错误: django.db.utils.OperationalError: fe_sendauth: no password supplied
我完全被困在这里:我很难理解错误消息,其他解决方案也没有多大帮助。 其他解决方案表明您必须更改 settings.py 中的 DATABASES 设置,但该设置没有 PASSWORD 属性,并且仅链接到 sqlite:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
DATABASES['default'] = dj_database_url.config()
该错误不会追溯到任何特定的代码行,所以我猜测它与 psycopg2 或 django 的关系比代码本身更重要,但我不确定如何修复它。 我正在使用 Python 2.7.17 和 Ubuntu 18.04.5。 这是完整的错误消息:
Traceback (most recent call last):
File "manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 364, in execute_from_command_line
utility.execute()
File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 356, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 283, in run_from_argv
self.execute(*args, **cmd_options)
File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 330, in execute
output = self.handle(*args, **options)
File "/usr/local/lib/python2.7/dist-packages/django/core/management/commands/migrate.py", line 83, in handle
executor = MigrationExecutor(connection, self.migration_progress_callback)
File "/usr/local/lib/python2.7/dist-packages/django/db/migrations/executor.py", line 20, in __init__
self.loader = MigrationLoader(self.connection)
File "/usr/local/lib/python2.7/dist-packages/django/db/migrations/loader.py", line 52, in __init__
self.build_graph()
File "/usr/local/lib/python2.7/dist-packages/django/db/migrations/loader.py", line 210, in build_graph
self.applied_migrations = recorder.applied_migrations()
File "/usr/local/lib/python2.7/dist-packages/django/db/migrations/recorder.py", line 65, in applied_migrations
self.ensure_schema()
File "/usr/local/lib/python2.7/dist-packages/django/db/migrations/recorder.py", line 52, in ensure_schema
if self.Migration._meta.db_table in self.connection.introspection.table_names(self.connection.cursor()):
File "/usr/local/lib/python2.7/dist-packages/django/db/backends/base/base.py", line 254, in cursor
return self._cursor()
File "/usr/local/lib/python2.7/dist-packages/django/db/backends/base/base.py", line 229, in _cursor
self.ensure_connection()
File "/usr/local/lib/python2.7/dist-packages/django/db/backends/base/base.py", line 213, in ensure_connection
self.connect()
File "/usr/local/lib/python2.7/dist-packages/django/db/utils.py", line 94, in __exit__
six.reraise(dj_exc_type, dj_exc_value, traceback)
File "/usr/local/lib/python2.7/dist-packages/django/db/backends/base/base.py", line 213, in ensure_connection
self.connect()
File "/usr/local/lib/python2.7/dist-packages/django/db/backends/base/base.py", line 189, in connect
self.connection = self.get_new_connection(conn_params)
File "/usr/local/lib/python2.7/dist-packages/django/db/backends/postgresql/base.py", line 176, in get_new_connection
connection = Database.connect(**conn_params)
File "/usr/local/lib/python2.7/dist-packages/psycopg2/__init__.py", line 127, in connect
conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
django.db.utils.OperationalError: fe_sendauth: no password supplied
同样,我对 Django 和 Postgres 很陌生,所以我可能会遗漏一些明显的东西。 该代码同样可能无法在 Linux 上运行,或者其中存在一些未修复的错误。 任何帮助,将不胜感激。
正如 Vineet 指出的那样, DATABASES['default'] = dj_database_url.config()
行覆盖了配置,因此 'PASSWORD' 和其他属性存在并且为空白。 我在它之后添加了这一行:
del DATABASES['default']['PASSWORD'], DATABASES['default']['HOST'], DATABASES['default']['PORT']
并且问题已经解决了。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.