DjangoのDBはデフォルトでSQLite3を使うようになっています。今回はDBをMySQLに変更する方法を記載します。
mysqlclientのインストール
$ sudo pip install mysqlclient==2.1.0
$ sudo pip install pymysql
$ sudo python -m pip install cffi
settings.pyの変更
# 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が正常に動きません。こちらのファイルにも記述が必要です。
import pymysql
pymysql.install_as_MySQLdb()
エラー対処
MySQLの設定がうまくいっていない場合、接続時にエラーが出ます。本サイトの下記ページでエラー例を記載してあります。
mysqlclientインストール時にエラーがでる場合、下記を試す。
$ sudo apt upgrade gcc
runserver で
from cryptography.hazmat.bindings._openssl import ffi, lib
ModuleNotFoundError: No module named ‘_cffi_backend’
のエラーがでるときは下記を実行
$ sudo python -m pip install cffi
#上記でうまく行かない場合は上記実行前に下記コマンドを実行
$ sudo apt remove cffi