我一直在我的localhost上使用带有sqlite3的Django一段时间了,我理解如何正确使用sqlite(因为Zed Shaw在网上可用,我经历了“学习SQL的困难”。所以我理解如何创建数据库,用SQL代码等操作它。
我正在尝试将mysql设置为在我的localhost上运行,然后使用django运行它。我试图阅读尽可能多的文档,但文档或“如何”在我看来的每个地方看起来都不同。
_1。我下载了MySQL dmg
_2。我安装了随附的两个软件包(Mac Mavericks)
_3。 ...遵循文档中的一些不同的命令行说明......
_4。在我的命令行上执行了以下操作:
Nicholass-MacBook-Air:~ NickStefan$ cd /usr/local/mysql
Nicholass-MacBook-Air:mysql NickStefan$ sudo ./bin/mysqld_safe
140311 18:40:06 mysqld_safe Logging to '/usr/local/mysql-5.6.16-osx10.7-x86_64/data/Nicholass-MacBook-Air.local.err'.
140311 18:40:06 mysqld_safe A mysqld process already exists
_5。所以我想这意味着我已经运行了mysql服务器。但是,我仍然不明白我是如何以与sqlite3类似的本地方式实际使用mysql。
_6。接下来我找了_mysql:
Nicholass-MacBook-Air:mysql NickStefan$ dscl .list/Users|grep mysql
Nicholass-MacBook-Air:mysql NickStefan$ sudo dscl .
> cd Groups
/Groups > list . PrimaryGroupID
...
_mysql 74
_7。 如何创建可以插入localhost上的django设置的mysql数据库文件? 这是我目前在settings.py中的内容:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': ????????????????????,
'USER': '_mysql',
'PASSWORD': '',
'HOST': 'localhost',
'PORT': '3360',
}
}
全面回答: (到目前为止)
编辑我的.bash_profile
(影响命令行启动的隐藏系统文件)以获得这些额外的行:
alias mysql=/usr/local/mysql/bin/mysql
alias mysqladmin=/usr/local/mysql/bin/mysqladmin
以root用户身份进入mysql(在提示输入时输入空白):
mysql -u root -p
创建新用户,创建数据库,授予访问权限:
CREATE USER 'nick'@'localhost' IDENTIFIED BY 'mypass';
CREATE DATABASE mydb;
GRANT ALL ON mydb.* TO 'nick'@'localhost';
settings.py:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'mydb'),
'USER': 'nick',
'PASSWORD': 'mypass',
'HOST': 'localhost',
'PORT': '3360',
}
}
将此添加到.bash_profile
export PATH=$PATH:/usr/local/mysql/bin
export DYLD_LIBRARY_PATH=/usr/local/mysql/lib:$DYLD_LIBRARY_PATH
重新启动命令行并:
pip install mysql-python
终于可以运行了:
python manage.py schemamigration myapp --initial
python manage.py syncdb
./manage.py migrate
答案 0 :(得分:4)
django tutorial的数据库设置部分说:
如果你正在使用PostgreSQL或MySQL,请确保你已经创建了一个 数据库到此为止。使用“CREATE DATABASE database_name;”执行此操作 在数据库的交互式提示中。
如果您使用的是SQLite,则无需事先创建任何内容 - 数据库文件将在需要时自动创建。
因此,您现在需要做的是通过mysql控制台创建数据库。然后,将该名称放在默认NAME
设置中的DATABASES
键下。
希望有所帮助。