【发布时间】: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,它是如何导入到您项目的其余部分的?
标签: python mysql django django-1.5