我目前正致力于构建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)
答案 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