Django(1045,“用户'root'@'localhost'的访问被拒绝(使用密码:NO)”)
Posted
技术标签:
【中文标题】Django(1045,“用户\'root\'@\'localhost\'的访问被拒绝(使用密码:NO)”)【英文标题】:Django (1045, "Access denied for user 'root'@'localhost' (using password: NO)")Django(1045,“用户'root'@'localhost'的访问被拒绝(使用密码:NO)”) 【发布时间】:2021-10-19 10:39:42 【问题描述】:我遇到了一个奇怪的问题,我已经将一个 django 站点部署到了一个 Ubuntu 20.04 LTS 服务器。问题是我的 django 应用程序无法连接到数据库,因为它没有使用在 app settings.py 中标识的数据库连接凭据。它使用没有密码的root。但是当我可以毫无问题地运行 manage.py db 操作时。
这是我的 settings.py
'default':
'ENGINE': 'django.db.backends.mysql',
'NAME': 'pplus_db',
'USER': 'pplus_user',
'PASSWORD': 'dfa@4GL-5qQU',
'HOST': 'localhost',
'PORT':'3306',
错误:
OperationalError at /accounts/login/
(1045, "Access denied for user 'root'@'localhost' (using password: NO)")
Request Method: POST
Request URL: http://IP_ADDRESS/accounts/login/
Django Version: 3.2.5
Exception Type: OperationalError
Exception Value:
(1045, "Access denied for user 'root'@'localhost' (using password: NO)")
【问题讨论】:
这能回答你的问题吗? django.db.utils.OperationalError: (1045:Access denied for user 'root'@'localhost' (using password: NO) 删除图像并粘贴文本输出数据是描述您的问题的必要条件。 @Sumithran 我已经尝试了几次该问题的公认答案,但仍然没有解决我的问题。可能有人可以帮助我理解为什么它不使用 settings.py 中提到的凭据。 manage.py 怎么能连接数据库,而app 不能? 你有多个设置文件吗? 【参考方案1】:你只需要运行
sudo mysqld_safe --skip-grant-tables
或将您的 MySQL 密码重置为 null
【讨论】:
【参考方案2】:我已经设法解决了这个问题,我认为问题在于兑现。遵循此解决方案后 django.db.utils.OperationalError: (1045:Access denied for user 'root'@'localhost' (using password: NO)
确保重新启动您的服务: sudo systemctl daemon-reload sudo systemctl 重启 gunicorn 或者,如果您可以重新启动服务器。
【讨论】:
以上是关于Django(1045,“用户'root'@'localhost'的访问被拒绝(使用密码:NO)”)的主要内容,如果未能解决你的问题,请参考以下文章
django.db.utils.OperationalError: (1045, “Access denied for user ‘root‘@‘localhost‘
django 远程数据库mysql migrate失败报error 1045之 解决方案
django.db.utils.OperationalError: (1045, "Access denied for user 'root'@'localhost&
Django链接Mysql 8.0 出现错误(1045:Access denied for user 'root'@'localhost' (using passwor