Django 1045 数据库连接错误解决及 SQLite 配置指南

Mason
Mason
发布时间:2026-10-13 | 4人浏览过
原创

本文详解 Django 运行 migrate 时出现的 1045 权限拒绝错误,提供修改 settings.py 中 DATABASES 配置的具体步骤。同时介绍无需预建库的 SQLite 配置方案,并补充解决 PostgreSQL 时区差异导致查询结果不一致的技巧,帮助用户快速排查数据库连接问题。

Django 1045 数据库连接错误分析与解决

在参考菜鸟教程学习 Django 开发时,执行 "python manage.py migrate" 命令后遇到报错信息。

django.db.utils.OperationalError: (1045, “Access denied for user ‘账号'@'localhost' (using password: YES)”)。

该报错即为典型的数据库连接失败提示。

此错误通常表明连接数据库时提供的用户名或密码不正确。

解决方法是修改 setting.py 文件中的 DATABASES 配置项,具体修改方式可参考相关图示注释。


DATABASES = {
  'default': {
    'ENGINE': 'django.db.backends.mysql', #引擎,根据使用数据库类型进行更换
    'NAME': 'test',#这里填写你的数据库名字
    'USER': 'test',#这里填写你的连接用户名
    'PASSWORD': 'test123',#填写你的连接密码
    'HOST':'localhost',#如果你的电脑没有联网,请把localhost换成127.0.0.1
    'PORT':'3306',
  }
}

需要注意的是,若使用 MySQL 等关系型数据库,必须先在数据库中手动创建好对应的数据库,才能建立连接。

SQLite 数据库配置与使用优势

此外,开发者也可以选择使用 SQLite 数据库,其 setting.py 配置方式如下所示。


DATABASES = {
  'default': {
    'ENGINE': 'django.db.backends.sqlite3',#引擎
    'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
  }
}

使用 SQLite 的优势在于无需预先创建数据库文件即可直接连接使用。

PostgreSQL 时区差异导致的查询结果不一致处理

补充知识:记录 Django 查询 PostgreSQL 时遇到的一个常见陷阱。

相同的 SQL 语句,在 Navicat 客户端中查询的结果与通过 Django 框架查询出的数据存在差异。起初未予重视,直到差异过大才引起注意。经过半小时排查,经同事提示发现是时区设置问题,随即调整 settings 文件中的配置。

USE_TZ = False

将该配置调整为 False 后,问题得到完美解决。

以上即为 Django 连接数据库出现 1045 错误的完整解决方案及 SQLite 配置说明,希望能为读者提供参考。

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表