目的
djangoのチュートリアルなどは基本的に準備の要らないsqliteで行ってきたが、より実務に合わせたものにしたく、使われることの多いMySQLを今回は利用する
実施環境
ハードウェア環境
項目 | 情報 |
---|---|
OS | macOS Catalina(10.15.7) |
ハードウェア | MacBook Air (11-inch, Early 2015) |
プロセッサ | 1.6 GHz デュアルコアIntel Core i5 |
メモリ | 4 GB 1600 MHz DDR3 |
グラフィックス | intel HD Graphics 6000 1536 MB |
ソフトウェア環境
項目 | 情報 |
---|---|
homebrew | 3.3.8 |
mysql | Ver 8.0.27 for macos10.15 on x86_64 |
python | 3.8.12 |
django | 3.1.2 |
anaconda | 4.10.1 |
pip | 21.2.4 |
前提
・python3系
・django
・homebrew
等がインストール済みであること
概要
- MySQLのインストール
- MySQLの起動
- データベースの作成
- djangoのsettings.pyを修正
- ドライバのインストール
- sqliteの時と同様にマイグレーション
詳細
1. MySQLのインストール
homebrewでmysqlをインストールする
brew install mysql
今回は8.0.27(最新版)をインストール
2. MySQLの起動
インストールしたMySQLを起動する
mysql.server start
mysqlのアクセスユーザー名とパスワードを設定する
mysql -u root -p
3. データベースの作成
mysql> create database test_db;
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
| test |
+--------------------+
4. djangoのsettings.pyを修正
settings.py
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', # sqliteからMySQLに変更
'NAME': 'database_name', # 3で作成したプロジェクトで使用する予定のデータベース名
'USER': 'root', # MySQLのユーザー名
'PASSWORD': '', # ユーザー名と共にログインに利用したpassword
}
}
5. ドライバのインストール
ドライバって何?
こちらにも記載のあるように一般的には
マウスやキーボードやCPUやモニタなどのデバイスを動かすためのソフトのことをドライバという
pythonでMySQLを使う場合にもpythonがMySQLに接続するためのドライバが必要となる。
ドライバはいくつか種類があるが、推奨とされているmysqlclientを利用する
$ pip install mysqlclient
6. sqliteの時と同様にマイグレーション
python manage.py makemigrations
python manage.py migrate
マイグレーション完了といきたいところですが、
django.db.utils.OperationalError: (2059, "Authentication plugin 'caching_sha2_password' cannot be loaded: dlopen(/opt/anaconda3/envs/djangoenv/lib/plugin/caching_sha2_password.so, 2): image not found")
このようなエラーが表示された場合はこちらの記事を参考にユーザーの認証方法を変更する。
マイグレーションをもう一度実行する
python manage.py makemigrations
python manage.py migrate
Applying auth.0011_update_proxy_permissions... OK
Applying auth.0012_alter_user_first_name_max_length... OK
Applying sessions.0001_initial... OK
Applying tinder.0001_initial... OK
Applying tinder.0002_auto_20211219_1625... OK
気持ちいい!!!!
参考文献