2

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

目前,我的 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

运行游标命令后,我收到此错误

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' is not defined”。当我在终端输入 MySQL 时,它显示 MySQL: command not found

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

    3. 我正在使用 Ubuntu

** * ***更新*更新* ** * ** * ** * ** * **

所以我相信由于我没有安装/下载 MySQL,我得到了我的错误。我所拥有的是 MySQL-Python,它不是一回事......但无论如何,我下载/安装了 MySQL 并使用“python manage.py shell”然后“from django.db import connection”和“cursor = connection”运行 python shell 。光标()'

但是,我收到以下错误

OperationalError: (1045, "Access denied for user 'bradford'@'localhost' (using password: YES)")

目前不知道该怎么做=/

4

3 回答 3

3

我猜你错过了Python MySQLDB

于 2012-11-11T08:42:01.733 回答
1

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

你应该使用

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        ....
    }
}
于 2012-11-11T08:12:08.770 回答
0

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

于 2013-03-09T23:32:11.433 回答