DjangoのDBはデフォルトでSQLite3を使うようになっています。今回はDBをMySQLに変更する方法を記載します。
mysqlclientのインストール
0 1 2 |
$ sudo pip install mysqlclient==2.1.0 |
0 1 2 3 |
$ sudo pip install pymysql $ sudo python -m pip install cffi |
settings.pyの変更
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
# DATABASES = { # 'default': { # 'ENGINE': 'django.db.backends.sqlite3', # 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), # } # } DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'databasename', 'USER': 'username', 'PASSWORD': 'password', 'HOST': 'localhost', 'PORT': '3306', } } |
上記のようにMySQLの設定を記載します。元々書かれてあったSQLite3の設定はコメントアウトしておきます。(削除しても良い)
__init__.py
setting.pyだけの変更だとMySQLが正常に動きません。こちらのファイルにも記述が必要です。
0 1 2 3 |
import pymysql pymysql.install_as_MySQLdb() |
エラー対処
MySQLの設定がうまくいっていない場合、接続時にエラーが出ます。本サイトの下記ページでエラー例を記載してあります。
mysqlclientインストール時にエラーがでる場合、下記を試す。
0 1 2 |
$ sudo apt upgrade gcc |
runserver で
from cryptography.hazmat.bindings._openssl import ffi, lib
ModuleNotFoundError: No module named ‘_cffi_backend’
のエラーがでるときは下記を実行
0 1 2 3 4 5 |
$ sudo python -m pip install cffi #上記でうまく行かない場合は上記実行前に下記コマンドを実行 $ sudo apt remove cffi |