使用密码拒绝用户'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)

如何修复 #1045 - 用户 'root'@'localhost' 的访问被拒绝(使用密码:否)

用户'root'@'localhost'的访问被拒绝(使用密码:是) - 没有权限?