文章目录
- 参考资料
- 问题描述
- 情况描述
- 解决方案
- step1:管理员权限进入mysql,重置root密码
- step2:重启mysql服务器
参考资料
stackflow帖子:https://stackoverflow.com/questions/39281594/error-1698-28000-access-denied-for-user-rootlocalhost
问题描述
报错:
"Access denied for user 'root'@'localhost'"
数据库拒绝root用户的连接
情况描述
settings.py中关于数据库的配置:
DATABASES = {'default': {'ENGINE': 'django.db.backends.mysql','NAME': 'mysite3','USER': 'root','PASSWORD': '123456','HOST': '127.0.0.1','PORT': '3306'}
}
可以看到root用户的密码为123456
但是在mysql数据库里面查看用户信息,root的密码为空
这样的不匹配导致连接失败
解决方案
step1:管理员权限进入mysql,重置root密码
sudo mysql -u root -p
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
step2:重启mysql服务器
sudo service mysql stop
sudo service mysql start
之前尝试过重置密码,但是没有效果,实际上是需要重启服务器才能生效