読者です 読者をやめる 読者になる 読者になる

牌語備忘録 -pygo

あくまでもメモです。なるべくオフィシャルの情報を参照してください。

牌語備忘録 -pygo

Django で ささっと MySQL 使う場合のメモ

Python Django MacOSX MySQL

※ 追記:DEFAULT CHARACTER SET utf8;
※ 修正:pasword変更、 port selectの記述を追加

[Pytho2.7, Django1.4, MacOSX10.8 (Python, pip, MySQLMacPorts でインストール済)]

ささっと実験的なDjangoのプロジェクトを作ろうとしたら、想定外に問題発生したのでメモ

MySQL ユーザとDB作成

$ mysql -u root -p

grant all privileges on djangodev.* to djangodev@localhost identified by 'password';
select user,host from mysql.user;
create database djangodev DEFAULT CHARACTER SET utf8;
show databases;
show variables like 'port';

quit;

setting.py

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'djangodev',
        'USER': 'djangodev',
        'PASSWORD': 'password',
        'HOST': 'localhost',
        'PORT': '3306',
    }
}

問題発生

runserver したら

$ python manage.py runserver
:
Error loading MySQLdb module: No module named MySQLdb
:

なので mysql-python をインストールしてみるが

$ sudo pip-2.7 install mysql-python
:
EnvironmentError: mysql_config not found
:

またエラー

原因と解決策

Macportsmysqlをイストールすると mysql_config5 とかなる。
なのでシンボリックリンクでリネーム

$ sudo ln -s /opt/local/bin/mysql_config5 /opt/local/bin/mysql_config

再び mysql-python をインストールしてみる

$ sudo pip-2.7 install mysql-python
:
Successfully installed mysql-python
Cleaning up...
$ python manage.py runserver

オケ

参考リンク

と思ったけど port select でよいかも

追記: 2013-09-17
シンボリックリンクぢゃなくてこっちかも

$ sudo port select mysql mysql55