Django第5章数据库引擎设置

时间:2012-11-11 07:59:44

标签: python mysql django

我很确定我准确地遵循了本教程的程序,但我仍然遇到错误= /

目前,我的settings.py DATABASES看起来像这样

DATABASES = {
    'default': {
        'ENGINE': 'mysql',  # Add 'postgresql_psycopg2', 'mysql','sqlite3' or 'oracle'.      
        'NAME': 'mydb',     # Or path to database file if using sqlite3.
        'USER': 'user',     # Not used with sqlite3.
        'PASSWORD': 'pwd',  # Not used with sqlite3.
        'HOST': '',         # Set to empty string for localhost. Not used with sqlite3.
        'PORT': '',         # Set to empty string for default. Not used with sqlite3.
    }
}

教程告诉我在ENGINE中有'mysql'。但是,当我尝试使用命令'python manage.py shell'时,我收到此错误

django.core.exceptions.ImproperlyConfigured: 'mysql' isn't an available database backend.
Try using django.db.backends.mysql instead.
Error was: No module named mysql.base

这就是为什么django.db.backends.mysql旁边有ENGINE

在这些设置之后,教程告诉我输入这些命令

'python manage.py shell'     <--- works fine

from django.db import connection      <--- works fine

cursor = connection.cursor()          <--- uh oh

运行cursor命令后,出现此错误

http://pastebin.com/8MtYq7rg

不确定这意味着什么= /

当我尝试使用python manage.py runserver运行我的服务器时出现此错误。不确定这意味着什么,但最后一个错误似乎是相同的。

http://pastebin.com/91U3dz73

我也在线查看使用python manage.py dbshell来测试我的数据库访问权限,这是我收到的消息。

Error: You appear not to have the 'mysql' program installed or on your path.

我在reddit上发布了这个问题,看看能否得到任何额外的帮助。我希望这些信息能够为这个问题提供额外的帮助。

  1. 在shell中键入MySQL并查看结果
  2. 发布你如何安装MySQL。你为Django制作了一张桌子吗?
  3. 你在使用什么操作系统?

    1. 在shell中输入MySQL时没有任何反应。当我输入命令'python manage.py shell'然后输入MySQL。我收到错误“NameError:name'MySQL'未定义”。当我在终端中输入MySQL时,它说MySQL:找不到命令

    2. 我如何安装MySQL是因为我下载了文件,然后解压缩了tar文件所在的位置。接下来,我将解压缩的文件夹放入/ home / Development目录。我的所有代码都存储在/ home / Development / djcode / mysite / mysite /

    3. 我正在使用Ubuntu

  4. ** * *** 更新 * 更新 * ** * ** * * * * ** * **

    所以我认为我的错误是因为我没有安装/下载MySQL。我所拥有的是MySQL-Python,这是不一样的......但是无论如何,我下载/安装了MySQL并运行python shell并使用'python manage.py shell'然后'从'django.db import connection'然后'cursor = connection .cursor()'

    但是,我收到以下错误

    操作错误:(1045,“访问被拒绝用户'bradford'@'localhost'(使用密码:是)”)

    此时不知道该怎么做= /

3 个答案:

答案 0 :(得分:3)

我猜你错过了Python MySQLDB

答案 1 :(得分:1)

看这里https://docs.djangoproject.com/en/dev/ref/settings/#engine

你应该使用

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        ....
    }
}

答案 2 :(得分:0)

这是对您的更新的回复。那是一个MySQL错误。 MySQL对用户能够访问数据库的方式和位置设置了限制。您可以找到文档here,但 tl; dr 是您需要确保用户存在,密码正确以及您是否从正确的域进行连接。< / p>