📑
[Django] MySQLに接続する方法
DjangoでMySQLを使いたい
DjangoはデフォルトでSQLiteを使うのですが、MySQLを使いたいので設定していきます。
設定手順
ライブラリをインストール
pip install mysqlclient
poetry add mysqlclient
settings.pyを書き換える
settings.pyを書き換えます。調べてみると最低限しか書いてない感じだったり、細かく設定してたりと色々な方がいました。ここ以外の記事も参考にすることをお勧めします。
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'myapp',
'USER': 'root',
'PASSWORD': 'password',
'HOST': 'localhost',
'PORT': '3306',
}
}
キー | 説明 |
---|---|
ENGINE | どのエンジンかを指定する MySQLかSQLiteかPostgreSQLかなど |
NAME | DB名を指定する あらかじめDBを作成しておく必要がある |
USER | DBにアクセスするユーザー名 |
PASSWORD | DBにアクセスするユーザーのパスワード |
HOST | DBのホスト名 docker-composeなどを使っているならサービス名を指定する。’db’とか |
PORT | DBのホストのポート番号 |
OPTIONS | 今回書いてないけど、色々設定できるっぽい |
DBを作成する
MySQLサーバにDBを作成します。
mysql> CREATE DATABASE myapp;
(必要に応じて) DBのユーザーの設定
個人の実験環境なら良いですが、やはりrootを基本操作のユーザーにするのもよろしくないです。特定のユーザーに該当のDBの操作権限だけを与えるのが良いので、その操作方法を下記に示します。
mysql> GRANT ALL ON myapp.* TO user;
接続できているか確かめる
dbshellもrunserverもDBの接続がうまくできないとエラーが出ちゃうのでそれらを実行して確かめてみましょう。
python manage.py dbshell
python manage.py runserver
完了
ここまでできれば完了です。
参考
Discussion