【Django】MySQLを設定する方法

アイキャッチ画像
  • DjangoでMySQLを設定するには?
  • SQLiteからMySQLへ変更するには?

本記事ではこのような疑問を解決します。


DjangoにおけるデフォルトのRDBMSはSQLite3です。

しかし、パフォーマンス等の観点からMySQLの方が良いという場合は多いと思います。


そこで今回はDjangoでMySQLを設定する方法を解説していきます。

MySQLをインストールする

まずはMySQLをインストールします。
※すでにMySQLがインストールされている場合は不要


MySQLのインストール方法には公式サイトからダウンロードする方法もありますが、
一般的には各々のOSのパッケージ管理ツールを使用する方法が手っ取り早いでしょう。

今回はmacOSへMySQLをインストールします。

$ brew install mysql

$ mysql –version
mysql  Ver 8.0.28 for macos11.6 on x86_64 (Homebrew)

MySQLデータベースを作成する

MySQLをインストールしたら、事前にMySQLでのデータベースを準備しておきましょう。

最初にMySQLを起動します。

$ mysql.server start
Starting MySQL
.. SUCCESS! 

起動後はMySQLへのログインです。

インストール直後に登録されているのはユーザー名が”root” でホスト名が”localhost”のユーザーのみであるため、ルートユーザーとしてログインします。

$ mysql -u root
・・・
mysql>

ログイン後、データベースを作成していきます。

以下のコマンドで、’my_database’の部分には任意のデータベース名を指定して実行しましょう。

mysql> create database my_database;
Query OK, 1 row affected (0.01 sec)

以下のコマンドでデータベースが作成されていることを確認しましょう。

mysql> show databases;
+ – – – – – – – – – – – – – – – – – – – – +
| Database
+ – – – – – – – – – – – – – – – – – – – – +
| information_schema
| my_database
| mysql
| performance_schema
| sys
+ – – – – – – – – – – – – – – – – – – – – +
5 rows in set (0.00 sec)

MySQLでの操作は以上なので、exitコマンドでログアウトします。

mysql> exit
Bye

ドライバーをインストールする

次にPythonでMySQLへ接続するためのドライバーをインストールします。

今回はDjango公式サイトでも推奨されているmysqlclientをインストールします。

$ pip install mysqlclient

settings.pyを編集する

settings.pyにてMySQLの設定を行います。

ここでは主に、先ほどMySQLで作成した情報を記述します。

なお、SQLite3の記述がある場合は削除してください。

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'my_database',
        'USER': 'root',
        'PASSWORD': '',# 未設定のため、ブランクにする
        'HOST': '',# 明示的に設定する場合に記述する(今回はブランクにする)
        'PORT': '',# 明示的に設定する場合に記述する(今回はブランクにする)
    }
}

各値の説明は以下の通りです。

ENGINE:DBの種類

NAME:DB名

USER:DBにアクセスするユーザー名

PASSWORD:DBにアクセスするユーザーのパスワード

HOST:DBのホスト名

PORT:DBのホストのポート番号

Django側でマイグレートを行う

ここまで完了したらデータベースにモデルを反映させるためにお馴染みのマイグレートを行いましょう。

$ python manage.py makemigrations

$ python manage.py migrate

これでDjangoにおけるMySQLの設定は完了です!

まとめ

以上がDjangoでMySQLを設定する方法になります。

中~大規模のWebアプリを開発する場合は、
プロジェクト作成時の最初にRDBMSを変更しておくことが望ましいでしょう。

本記事が、少しでもDjango開発の手助けになれれば幸いです。