2017-10-07 115 views
1

当我使用命令“python manage.py makemigrations”时“python manage.py runserver”),它抛出了这个错误。然后我检查了用户的权限。代码和结果如同fllows。django.db.utils.OperationalError:(1045,“拒绝用户'root'@'localhost'(使用密码:YES)”)

mysql> select host,user from mysql.user; 
+-----------+---------------+ 
| host  | user   | 
+-----------+---------------+ 
| %   | root   | 
| %   | zhuxin  | 
| localhost | mysql.session | 
| localhost | mysql.sys  | 
| localhost | root   | 
| localhost | zhuxin  | 
+-----------+---------------+ 


mysql> show grants for 'zhuxin'@'%'; 
+---------------------------------------------------------------+ 
| Grants for [email protected]%           | 
+---------------------------------------------------------------+ 
| GRANT ALL PRIVILEGES ON *.* TO 'zhuxin'@'%' WITH GRANT OPTION | 
| GRANT ALL PRIVILEGES ON `blogdb`.* TO 'zhuxin'@'%'   | 
+---------------------------------------------------------------+ 

mysql> show grants for 'root'@'%'; 
+--------------------------------------------------+ 
| Grants for [email protected]%        | 
+--------------------------------------------------+ 
| GRANT USAGE ON *.* TO 'root'@'%'     | 
| GRANT ALL PRIVILEGES ON `blogdb`.* TO 'root'@'%' | 
+--------------------------------------------------+ 

我已经尝试了一切来解决它,但没有用。

回答

1

您需要更改项目settings.py。为你的数据库

DATABASES = { 
    'default': { 
     'ENGINE': 'django.db.backends.mysql', 
     'NAME': 'myproject', 
     'USER': 'root', 
     'PASSWORD': 'rootpassword', 
     'HOST': 'localhost', 
     'PORT': '', 
    } 
} 
+0

噢提供USERPASSWORD,我已经改变了settings.py这样的:数据库= { '默认':{ 的 '发动机': 'django.db.backends.mysql', 'NAME': 'blogdb', '用户': '根', 'PASSWORD': '1234', 'HOST': '', 'PORT': '', } }。但是错误仍然是 – Krimony

+0

@朱朱鑫,你是否可以用这个用户和密码检查你是否可以通过mysql服务器进行身份验证? –

+0

Thks。我知道了 !我授权后将“localhost”更改为“127.0.0.1”。但我不知道为什么。也许这就像你说我迷惑用户。 – Krimony

相关问题