创建一个与django一起使用的localhost mysql数据库

时间:2014-03-12 02:33:34

标签: mysql django macos

我一直在我的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

1 个答案:

答案 0 :(得分:4)

django tutorial的数据库设置部分说:

  

如果你正在使用PostgreSQL或MySQL,请确保你已经创建了一个   数据库到此为止。使用“CREATE DATABASE database_name;”执行此操作   在数据库的交互式提示中。

     

如果您使用的是SQLite,则无需事先创建任何内容 -   数据库文件将在需要时自动创建。

因此,您现在需要做的是通过mysql控制台创建数据库。然后,将该名称放在默认NAME设置中的DATABASES键下。

希望有所帮助。