(最終更新月:2023年10月)
✔このような方へ向けて書かれた記事となります
「DjangoでMySQLデータベースを使いたい」
「MySQL側の設定ってどうすれば良いの?」
「Djangoの設定を具体的に見たい」
✔当記事を通じてお伝えすること
- DjangoでMySQLを使うための設定
- MySQLでデータベース・ユーザーを作成する
- Djangoのsettings.pyを書き換える方法
Djangoでは、デフォルトのsqlite3だけでなく、MySQLを使うことが可能。
その方法を具体例付きで丁寧に解説しています。
ぜひ最後までご覧ください。
MySQLの事前設定
こちらではMySQLにおける事前設定をご覧いただきます。
足りない箇所がないか確認しておきましょう。
- MySQLのインストール
- MySQLにログイン
- Django用のデータベース作り
- MySQLのユーザー作り
- ユーザーに権限を付与
- GRANTテーブルの再読込
MySQLのインストール
MySQLのインストールはこちらで確認できます。
mysql --version
インストールが必要な方は以下の記事を参考にしてください。
MySQLにログイン
mysql -u root -p
Django用のデータベース作り
CREATE DATABASE itcdb;
MySQLのユーザー作り
CREATE USER 'itcuser'@'localhost' IDENTIFIED BY 'Password1234@';
ユーザーに権限を付与
GRANT ALL ON itcdb.* TO 'itcuser'@'localhost';
もし権限を限定するなら以下から選択しましょう。
GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES, RELOAD on *.* TO 'itcuser'@'localhost' WITH GRANT OPTION;
GRANTテーブルの再読込
FLUSH PRIVILEGES;
Djangoの設定
MySQLの設定を終えたら、Django側の設定です。
settings.py上で、設定を書き換えましょう。
- 設定ファイルの書き換え
- mysqlclientのインストール
- mysqlclientのインストールエラー対策
設定ファイルの書き換え
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'itcdb',
'USER': 'itcuser',
'PASSWORD': 'Password1234@',
}
}
mysqlclientのインストール
mysqlclientをインストールしていないと、以下のようなエラーが発生します。
django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module.
Did you install mysqlclient?
mysqlclientのインストールをインストールしましょう。
pip install mysqlclient
mysqlclientのインストールエラー対策
以下のようにmysqlclientのインストールが上手くいかない場合があります。
note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for mysqlclient
Failed to build mysqlclient
ERROR: Could not build wheels for mysqlclient, which is required to install pyproject.toml-based projects
Ubuntuであれば以下のようにして解決できます。
sudo apt install python3-dev default-libmysqlclient-dev build-essential
ほかのOSでは、こちらのpypi.orgの文書を参考にしてください。
ただしコレでも動かない場合があります。
その場合は、Pythonのバージョンに合わせたpython3.xx-devをインストールしてください。
$ python --version
3.11.5
$ sudo apt install python3.11-dev
DjangoでMySQLを扱う場合の補足事項
以上でDjangoとMySQLの設定は完了です。
ただし以下のような補足事項も知っておくと便利です。
- Dockerコンテナ上で設定する場合
- テスト用のデータベースを設定
- PostgreSQLを使いたい場合
Dockerコンテナ上で設定する場合
Dockerで、Ubuntuのコンテナを使用する場合、以下のパッケージが必要です。
apt-get install pkg-config python3 python3-pip
テスト用のデータベースを設定
テスト用のデータベースでは特別な設定が必要です。
以下の記事の補足をご覧ください。