使用密码拒绝用户'root'@'localhost'的访问:否
Posted
技术标签:
【中文标题】使用密码拒绝用户\'root\'@\'localhost\'的访问:否【英文标题】:Access denied for user 'root'@'localhost' using password: NO使用密码拒绝用户'root'@'localhost'的访问:否 【发布时间】:2016-12-27 19:35:33 【问题描述】:这里有类似的问题,但我没有找到任何可以解决我的问题的问题。
我正在开发一个 django 项目并进行了数据库更改,并希望将数据库更改迁移到生产环境。所以我跑了
python manage.py migrate
但我收到此错误
OperationalError: (1045, "Access denied for user 'root'@'localhost' (using password: NO)")
据我了解,我一定没有运行迁移的权限,但我确实尝试过
grant all privileges on *.* to root@localhost identified by 'password' with grant option;
及其不同的组合,但无济于事。
在我的 local_settings.py 我有
DATABASES =
'default':
'ENGINE': 'django.db.backends.mysql',
'USER': 'root',
'PASSWORD': 'password',
'HOST': '127.0.0.1',
'NAME': 'stratinvnet',
,
我尝试将127.0.0.1
更改为localhost
,这似乎没有任何区别。我还尝试从DATABASES
对象中删除密码。
不管怎样,这是我在 mysql 中的GRANTS
表。
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY PASSWORD '*5FE8B16533FAE91D61522C9A6811F3F709147255' WITH GRANT OPTION |
| GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION
这是用户表。
user | host | password |
+------------+-----------+-------------------------------------------+
| root | localhost | *5FE8B16533FAE91D61522C9A6811F3F709147255 |
| root | 127.0.0.1 | |
| root | ::1 | |
| | localhost | |
| root | % | *944B67F866A66B9DDD96024A97EBFDC886FC41F6 |
| phpmyadmin | localhost | *5FE8B16533FAE91D61522C9A6811F3F709147255 |
【问题讨论】:
但是它说你没有使用密码。 没错。那么我做错了什么?有没有办法在不通过密码识别的情况下授予权限?我试图将该部分留空,但这样做并不能防止错误。 我是否需要运行迁移并将密码传递给 manage.py? 你应该尝试使用root和密码登录mysql,如mysql -u root -p,看看是否成功。 什么是common.py
,它是如何导入到您项目的其余部分的?
【参考方案1】:
好像你用 mysql 的 socks 文件,试试替换:
'HOST': '127.0.0.1',
用这个:
'HOST': '/var/lib/mysql/mysql.sock', # 'HOST': 'localhost',
【讨论】:
以上是关于使用密码拒绝用户'root'@'localhost'的访问:否的主要内容,如果未能解决你的问题,请参考以下文章
#1045 - 用户 'root'@'localhost' 的访问被拒绝(使用密码:YES)MAMP MySQL 访问被拒绝
用户''@'localhost'的访问被拒绝(使用密码:NO)phpmyadmin
使用密码拒绝用户'root'@'localhost'的访问:否
用户'root'@'localhost'的访问被拒绝(使用密码:YES)