【问题标题】:creating a localhost mysql database to use with django创建一个 localhost mysql 数据库以与 django 一起使用
【发布时间】: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。看起来这并没有阻碍你。

标签: mysql django macos


【解决方案1】:

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

如果您使用的是 PostgreSQL 或 MySQL,请确保您已经创建了一个 数据库到此为止。使用“CREATE DATABASE database_name;”来做到这一点 在数据库的交互式提示中。

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

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

希望对您有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-01-16
    • 2023-03-16
    • 2017-09-30
    • 2015-12-19
    • 2011-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多