Python3とDjangoでmysql接続する

unrealEngineが進まないので、昨日に引き続きDjango RESTful webserviceという本を読み進めました。

この本では、はじめSqliteをDBとして使っていて、これからもsqliteを使う的なことが書いてあったんですが、途中からpostageSqlとDjangoを連携させる方法が紹介されました。

自分は、MYSQLしか触ってことがないし、契約しているサーバーにもMYSQLを入れているので、MYSQLに置き換えてやろうと思って、調べてみると、
結構な数、やり方が載っていたので、楽勝かと思いきや、

Can’t connect to MySQL server on ‘127.0.0.1’ (61)

とlocalhostのMYSQLサーバーに接続できないなどのエラーが出て詰まってしまいました。

で、最終的には、以下の環境にして、MYSQLとDjango環境を接続しました。

まず、mysql-connector-pythonをインストールします。

pip install mysql-connector-python

次に、プロジェクトファイルのsettings.pyのDATABASESを以下のように変更します。

DATABASES = {
  'default': {
  'ENGINE': 'mysql.connector.django',
  'NAME': 'データベース名',
  'USER': 'ユーザ名(rootなど)',
  'PASSWORD': 'mysqlに設定したpassword',
  'HOST' : '', # なにも設定しないとlocalhostらしい
  'PORT': '',  # ポート番号
  }
} 

これで、python manage.py migrate ‘database名’

と打ち込むと、MYSQLが正常に動きました。

定かではないですが、ポート番号に適当な番号を入れていて、それをからにしたら接続できたので、たまたま使われていたのかも。

この接続件で結構時間を使ったんですが、MYSQLに接続できないんだったら、エラーログみればいいんじゃないの?

と家に帰る途中で思ったんですが、色々新しい環境が絡むとそういう基本的なことも頭の中から抜けてしまって、ついネットで原因を検索してしまうのは、
ダメですね。

ちゃんと理解していない証拠。

というわけで、無事接続ができて、ちょっと前に進みました。

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です