🌐

XServerのMySQLにDjangoで接続

2024/10/12に公開

導入

XServerでDjangoからMySQLに接続できない問題がありました。
問題の内容と、解決策をお伝えします。
どなたかの参考になれば幸いです。

課題

DjangoからMySQLに接続する際、mysqlclientライブラリを使用します。
pip install mysqlclientを実行してもインストールができません。

解決策

インストールするライブラリ

mysqlclientの代わりにPyMySQLをインストールして使用します。
インストールはpip install pymysqlでインストールします。

データベース設定

setting.pyには通常のように以下の様な設定を記載します。

DATABASES = {
    "default": {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'データベース名',
        'USER': 'ユーザー',
        'PASSWORD': 'パスワード',
        'HOST': '127.0.0.1',
        'PORT': '3306',
    }
}

import追加

PyMySQLをインストールしただけではデータベースに接続できません。
処理を行うファイルに以下の文を追記する必要があります。

import pymysql
pymysql.install_as_MySQLdb()

最低でも以下の2ファイルに記載してください。

/
└─ mysite
   ├─ mysite
   │  ├─ __init__.py    <-このファイル
   │  ├─ asgi.py
   │  ├─ settings.py
   │  ├─ urls.py
   │  ├─ views.py
   │  └─ wsgi.py
   └─ manage.py         <-このファイル

__ init__.pyはアプリの起動時に使用します。
manage.pyはデータベースのマイグレーション時に使用します。

最後に

XServerのMySQLとDjangoを接続する方法をお伝えしました。
以下に参考にした資料を記載します。

誰かのお役に立てれば幸いです。

https://medium.com/@lebe_93/using-pymysql-to-connect-to-a-django-project-to-a-mysql-database-77bd5dade213

Discussion