用户'root'@'localhost'因未输入密码而被拒绝访问。

5
这里有类似的问题,但是我找不到任何能解决我的问题的东西。
我正在开发一个 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 |

但是它说您没有使用密码。 - 101
没错。那我做错了什么?有没有一种方法可以在不使用密码的情况下授予权限?我试着把那部分留空,但这样做并没有防止出现错误。 - Matt Cremeens
common.py是什么,它如何被导入到您项目的其余部分中? - solarissmoke
@Aison可以直接使用root和密码登录mysql。这没有问题。 - Matt Cremeens
@solarissmoke,common.py 只是为了我本地机器而存在的。这是服务器寻找的第二个数据库对象。也许我应该从我的问题中删除 common.py。 - Matt Cremeens
显示剩余13条评论
1个回答

0

看起来你在使用 MySQL 的 socks 文件,尝试替换一下:

'HOST': '127.0.0.1',

使用这个:

'HOST': '/var/lib/mysql/mysql.sock',  # 'HOST': 'localhost',

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接