【问题标题】:Improper configuration of mysql database in djangodjango中mysql数据库配置不正确
【发布时间】:2013-07-02 06:57:55
【问题描述】:

拜托,我正在尝试将数据库安装到我的 django 环境中。所以在 settings.py 文件中, 鉴于我习惯了 MySQL 数据库,我输入了以下内容。 引擎:django.db.backends.mysql NAME: /Applications/MAMP/db/ # 这是因为我的 'mysql' 存储在我的 mac 机器上的那个位置 USER: herodb #我只是给它起了这个名字,以便在 django 中使用..

现在,我的“mysql”中已经有了数据库,因为我一直在将它用于其他项目。所以,我不必创建任何数据库。然而,当我运行命令时:python manage.py syncdb,我得到了这些错误:

Traceback (most recent call last):
  File "manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/core/management/__init__.py", line 453, in execute_from_command_line
    utility.execute()
  File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/core/management/__init__.py", line 392, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/core/management/__init__.py", line 272, in fetch_command
    klass = load_command_class(app_name, subcommand)
  File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/core/management/__init__.py", line 77, in load_command_class
    module = import_module('%s.management.commands.%s' % (app_name, name))
  File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/utils/importlib.py", line 35, in import_module
    __import__(name)
  File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/core/management/commands/syncdb.py", line 8, in <module>
    from django.core.management.sql import custom_sql_for_model, emit_post_sync_signal
  File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/core/management/sql.py", line 9, in <module>
    from django.db import models
  File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/db/__init__.py", line 40, in <module>
    backend = load_backend(connection.settings_dict['ENGINE'])
  File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/db/__init__.py", line 34, in __getattr__
    return getattr(connections[DEFAULT_DB_ALIAS], item)
  File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/db/utils.py", line 93, in __getitem__
    backend = load_backend(db['ENGINE'])
  File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/db/utils.py", line 27, in load_backend
    return import_module('.base', backend_name)
  File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/utils/importlib.py", line 35, in import_module
    __import__(name)
  File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/db/backends/mysql/base.py", line 17, in <module>
    raise ImproperlyConfigured("Error loading MySQLdb module: %s" % e)
django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: No module named MySQLdb

仔细查看这个错误,我发现:raise ImproperlyConfigured("Error loading MySQLdb module: %s" % e) django.core.exceptions.ImproperlyConfigured:加载 MySQLdb 模块时出错:没有名为 MySQLdb 的模块

根据我之前采取的步骤,谁能指导我到我可能做了不正确配置的地方?我没有任何名为 MySQLdb 的 sql。那么,我该如何解决这个错误呢?

【问题讨论】:

  • 您需要配置中的数据库名称,也不需要存储二进制文件或数据的位置。
  • 给我们一份你的 django 数据库配置的副本,没有任何有意义的数据,以便我们更好地判断。
  • @Matthias,我的数据库在Applications目录下MAMP目录的db目录下。我需要进一步获取二进制文件吗?

标签: python django


【解决方案1】:

几件事:

1) MySQL 的数据库设置应如下所示:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'yourdbname',
        'USER': 'yourdbuser',
        'PASSWORD': 'yourdbpassword',
    }
}

2) 回溯告诉您缺少用于与 MySQL 交互的 python mysql 库。使用:sudo easy_install MySQL-pythonsudo pip install MySQL-python 安装它。

【讨论】:

  • 我猜我的路径可能是错误的。我的“mysql”文件夹位于应用程序目录中的 MAMP 的 db 文件夹中,但是当我运行它时,我得到了这个: sudo: mysql/: command not found cd /Applications/MAMP/db/ sudo mysql 任何帮助做对了吗?我从来不用从命令行使用 mysql。只在 myphp admin..现在卡住了
  • 根本没有人要求您从命令行运行 mysql。您需要运行pipeasy-install
  • Django 需要 MySQL-python 来与 mysql 交互,您需要做的就是安装它,然后 Django 就可以与您的 MySQL 数据库对话了。
猜你喜欢
  • 2021-07-24
  • 2016-03-11
  • 1970-01-01
  • 2021-10-21
  • 2012-06-06
  • 2015-07-29
  • 1970-01-01
  • 2018-06-04
  • 2013-11-16
相关资源
最近更新 更多