Django 1045 数据库连接错误解决及 SQLite 配置指南
本文详解 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 配置说明,希望能为读者提供参考。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













