我刚刚开始使用MySQL作为我的项目的数据库。以前我一直在使用SQLite。
我想知道如何像SQLite那样指定SQLite数据库的位置。目前,默认情况下它会自动保存到/usr/local/mysql/data。但我相信这会引起问题,当我试图上传到我的生产环境。
我的旧SQLite设置
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'database/db.sqlite3'),
}
}这将数据库保存到我的项目中的一个数据库文件夹中,我可以上传和下载到www-data。这似乎是一个简单的解决方案,我想用MySQL进行复制。
我的新MySQL设置
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
#'NAME': 'django_db',
'NAME': os.path.join(BASE_DIR, 'database/django_db'),
'USER': 'root',
'PASSWORD': 'myPassword',
'HOST': 'localhost',
'PORT': '3306',
}
}然而,当我尝试使用这个syncdb时,我会得到以下错误
(1059,“标识名'/users/user/workspace/bias_experiment/src/database/django_db‘太长”) (bias_experiment)localhost:src用户$
我还尝试在我的项目中创建数据库
mysql> CREATE DATABASE /Users/user/workspace/bias_experiment/src/database/django_db;但这让我犯了个错误
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '/Users/brendan/Dropbox/workspace/bias_experiment/src/database/django_db' at line 1
mysql>因此,我可以在我的项目中创建DB并以与以前使用SQLite相同的方式链接到它吗?如果不是,上传到它并链接到它的正确方式/位置是什么?
任何帮助都是非常感谢的。
发布于 2014-08-17 15:52:17
MySQL不是一个基于文件的数据库:您不给它一个文件路径。事实上,设置文件本身非常清楚您需要在NAME属性中放入什么,即数据库本身的名称(并不令人惊讶)。这与创建数据库所需的相同,但您同样没有给出路径:只是一个名称。
发布于 2014-08-17 15:52:48
您不能直接访问mysql文件。您必须创建一个数据库(给它一个名称,而不是路径)并访问它。
SQL> CREATE DATABASE django_dbhttps://stackoverflow.com/questions/25350854
复制相似问题