用MySQL设置Django,syncdb给出了分段错误?

时间:2014-12-11 20:39:36

标签: python mysql django

我目前正致力于构建Django应用。我正在使用Django 1.54的" tangowithdjango" 教程。在他们的教程中,他们使用Sql-lite,但我计划构建此应用程序以实现最强大的目的,这就是为什么我尝试连接MySQL。

毋庸置疑,这是一场噩梦。我不能让MySQL连接我的生活。

这是我的settings.py的样子:

DATABASE_PATH = os.path.join(PROJECT_PATH, 'app.db')

DATABASES = {
'default': {
    'ENGINE': 'django.db.backends.mysql',
    'NAME': 'rideb',
    'USER': 'root',
    'PASSWORD': 'nantucket',
    #'HOST': 'localhost',             # Empty for localhost through domain sockets or '127.0.0.1' for localhost through TCP.
    #'PORT': '',                      # Set to empty string for default.
    }
}

这是我的输出,我得到了......

(rideb)grantmcgovern@gMAC:~/Dropbox/Developer/Projects/RideB/master$ python manage.py syncdb
Segmentation fault: 11

我已经安装了python-mysqldb,现在我只是得到了这个,而且我至少可以说是非常困惑。它是一些Django兼容性问题吗?

一切正常,因为教程建议使用SQL-lite,但不希望使用它。

OS:

Mac OSX 10.10 Yosemite

MySQL(在Oracle网站上通过.dmg安装):

Server version: 5.6.19 MySQL Community Server (GPL)

2 个答案:

答案 0 :(得分:4)

我遇到了类似的问题,结果发现它与我Mac上的错误mysql实现有关(OS X 10.10 Yosemite)。我安装了“mysql-connector-c”而不是“mysql”。卸载“mysql-connector-c”(brew uninstall mysql-connector-c)并安装“mysql”(brew install mysql)立即解决了这个问题。

要查看您是否像我一样面对这个问题,请在Mac上打开控制台应用,转到用户诊断报告并查找崩溃报告(应从Python_开始)。在队列中,如果它显示“0 libmysqlclient.18.dylib”,那么你遇到了和我一样的问题。

答案 1 :(得分:0)

如前所述,您不需要DATABASE_PATH。 我的工作配置如下:

DATABASES = {
    'default': {
        'ENGINE': 'mysql.connector.django',
        'NAME': 'db_name',
        'USER': 'db_user',
        'PASSWORD': 'db_pass',
        'HOST': '127.0.0.1',
    }
}

我正在使用不同的引擎,因为它是Python3所必需的。 → see documentation

之后,您必须创建数据库和用户。不要忘记向用户提供所有需要的权利。

使用python manage.py migrate,您的数据库将填充您的模型。

syncdb迁移的前身是removed in Django 1.9