无法通过 django 连接 mysql

Posted

技术标签:

【中文标题】无法通过 django 连接 mysql【英文标题】:Unable to connect mysql via django 【发布时间】:2015-11-24 19:16:48 【问题描述】:

我知道这是许多论坛上的一个老问题,答案建议执行刷新权限和重置密码,但在我的情况下,没有任何答案有效。

场景如下:

我可以通过以下命令连接到 mysql

mysql -u root -p -hlocalhost

我也可以使用以下脚本通过 python 连接

import MySQLdb
Con = MySQLdb.Connect(host="127.0.0.1", port=3306, user="root", passwd="mypass", db="mydb")
Cursor = Con.cursor()
sql = "SELECT * FROM test"
Cursor.execute(sql) #### gives 1L

但我无法通过 Django 连接。 Django settings.py 包含

DATABASES = 
    'default': 
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'mydb',
        'USER': 'root',
        'PASSWD': 'mypass',
        'HOST': 'localhost',
        'PORT': '3306',
    

以下是主要错误

django.db.utils.OperationalError: (1045, "Access denied for user 'root'@'localhost' (using password: NO)")

请提出建议。

【问题讨论】:

你认真地遵循了these 的所有步骤? 试试127.0.0.1 不是本地主机。 @Drew 是的。 :-( 我唯一的疑问是 /usr/bin/mysqld_safe 和 /usr/sbin/mysqld 是否应该同时运行?在恢复 root 密码时,我尝试了 mysqld_safe。之后我关闭/重新启动了 mysql很多次。 @GlynJackson 不起作用 您的错误提示密码为“否”,但您在 OP 中指定了密码。 【参考方案1】:

数据库设置中密码值的键应该是“PASSWORD”,而不是“PASSWD”。

【讨论】:

我注意到了。否则有其他答案的参考。一定要试试……这很容易被抛出 NO PASSWORD 也打败了我 :) 错误表明他没有发送密码。

以上是关于无法通过 django 连接 mysql的主要内容,如果未能解决你的问题,请参考以下文章

无法使用便携式 Xampp 通过 Django 连接到 MySQL

django连接mysql数据库

我用的python+django,在尝试连接mysql数据库时候,输入cursor=connection.cursor()测试总是不能通过

Django---Pycharm连接数据库

如何通过 django 模型查询创建与组的左连接

Django---Django连接Mysql数据库