【发布时间】:2014-04-15 23:01:10
【问题描述】:
我已经在我的本地主机上使用带有 sqlite3 的 Django 有一段时间了,并且我了解如何很好地使用 sqlite(我经历了与 Zed Shaw 在线提供的一样多的“艰难学习 SQL”。所以我了解如何创建一个数据库,用 SQL 代码等操作它。
我正在尝试将 mysql 设置为在我的本地主机上运行,然后使用 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。 如何创建一个 mysql 数据库文件,我可以将其插入到本地主机上的 django 设置中? 到目前为止,这就是我在 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
【问题讨论】:
-
只是指出这一点,MySQL 的默认端口是 3306,而不是 3360。看起来这并没有阻碍你。