LoginSignup
23
24

More than 5 years have passed since last update.

(Djangoメモ)データベースにMySQLを設定

Posted at

Vagrant環境で実験。MySQLは既に入っていて、Djangoのテストページまで表示できているのが前提。

まずsettings.pyのデータベースをMySQLに。

settings.py
DATABASES = {
     'default': {
         'ENGINE': 'django.db.backends.mysql',
         'NAME': 'myproject',
         'USER':'vagrant',
         'PASSWORD':'**************',
         'HOST':'',
     }
 }

で、

python manage.py sql [APPNAME]

すると以下のエラーとなり上手くいかない。

django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: No module named MySQLdb

MySQLdb っていうモジュールが無いよと言われているわけだが、pip search MySQLdbで見つからないので少しハマった。そこでググる。

・・・これかな?
http://stackoverflow.com/questions/15312732/django-core-exceptions-improperlyconfigured-error-loading-mysqldb-module-no-mo

とりあえずそれらしいものを実行。

pip install mysql-python

だがこのインストールがそもそも失敗してしまう。

UnicodeDecodeError: 'ascii' codec can't decode byte 0xe3 in position 40: ordinal not in range(128)

おまけに何を言われているのかよく分からない(文字コード?)ので、ノータイムで即ググる。

・・・・これ?
http://momijiame.tumblr.com/post/30661437311/centos-6-3-pip-mysql-python-mysqldb

ということで真似してみる。

sudo yum -y install python-devel mysql-devel

ちなみにオプションの -y は全部YESにしますよってこと。

Complete!

インストール完了。そこでもう一度。

pip install mysql-python

Successfully installed mysql-python
Cleaning up...

お、できた。一応pip freezeで確認したが問題なし。

満を持して最初のコマンドに戻ってみる。

python manage.py sql [APPNAME]

django.db.utils.OperationalError: (1049, "Unknown database 'myproject'")

あれ?できないじゃないか・・・・と思ったがよく考えたらまだデータベースを作っていないからそのせいだった。 生成はMySQL側でやらないといけない

実は MySQL の使い方はまだちょっとしか勉強していなくてしかも勉強したことも忘れていたので過去の自分に教えてもらった。彼もまだほんの触りしかやっていなかったようだが、ひとまず データベースの生成まで出来ればあとはDjangoが上手いことやってくれる のである意味これでちょうどいい気もする。

三度目の正直。

python manage.py sql [APPNAME]

上手くいった。

23
24
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
23
24