文章目录
参考资料
stackflow帖子:https://stackoverflow.com/questions/39281594/error-1698-28000-access-denied-for-user-rootlocalhost
问题描述
报错:
c
"Access denied for user 'root'@'localhost'"
数据库拒绝root用户的连接
情况描述
settings.py中关于数据库的配置:
c
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密码
c
sudo mysql -u root -p
c
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
step2:重启mysql服务器
c
sudo service mysql stop
sudo service mysql start
之前尝试过重置密码,但是没有效果,实际上是需要重启服务器才能生效