MySQL Connector / python在django中不起作用

时间:2014-09-23 13:24:52

标签: python mysql django mysql-python mysql-connector

我正在学习Django和MySQL作为后端。我安装了Oracle的mysql连接器来连接mysql。但是,当我运行python manage.py时出现此错误

  

追踪(最近一次通话):     文件“C:\ Python33 \ lib \ site-packages \ django \ db \ backends \ mysql \ base.py”,第14行,in       将MySQLdb导入为数据库   ImportError:没有名为'MySQLdb'的模块

这有点奇怪。我在想是否安装了mysql connector / python我不再需要MySQLdb了。

有人可以帮忙解释一下吗?谢谢!

我的数据库设置:

DATABASES = {
'default': {
    'ENGINE': 'django.db.backends.mysql',
    'NAME': "djangolearn",
    'USER': 'root',
    'PASSWORD': '',
    'HOST': '127.0.0.1',
    'PORT': '3306',
}}

4 个答案:

答案 0 :(得分:4)

# for mysql connector use this

DATABASES = {
'default': {
    'ENGINE': 'mysql.connector.django',
    'NAME': 'dbname',               
    'USER': 'user',
    'PASSWORD': '',
    'HOST': '127.0.0.1',
    'PORT': '3306',
},

}

答案 1 :(得分:2)

如果您使用的是Oracle的连接器,则需要使用他们的Django数据库后端。

请参阅their documentation

答案 2 :(得分:1)

尝试:pip install mysql-python

如果这不起作用:确保您可以连接到您的数据库(使用phpmyadmin或mysql workbench来测试)

答案 3 :(得分:1)

  

尝试使用在django中运行的 MySQL Connector

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'djangolearn',
        'USER': 'root',
        'PASSWORD': '',
        'HOST': '127.0.0.1',
        'PORT': '3306',
    }
}
  

或尝试使用在django中运行的 MySQL Connector pool

DATABASES = {
    'default': {
        'ENGINE': 'PyMysqlPool.mysql.connector.django',
        'NAME': 'djangolearn',
        'USER': 'root',
        'PASSWORD': '',
        'HOST': '127.0.0.1',
        'PORT': '3306',
        'OPTIONS': {
            'autocommit': True,
            'pool': {
                #use = 0 no pool else use pool
                "use":0,
                # size is >=0,  0 is dynamic pool
                "size":10,
                #pool name
                "name":"local",
            }
        },
    }
}