Macbook (OS X 10.5)にMySQL + Pythonの環境を構築する
Django用に環境を作ろうと思ったら、すごくハマったのでメモ。
方針としてはなるべく簡単にインストーラが使えればベストな方向で構築。
MySQL Serverのインストール
パッケージをダウンロードしてインストールします。
http://dev.mysql.com/downloads/mysql/5.1.html#macosx-dmg
今回はMySQL Community Serverの5.1をインストールしましたが、ポイントは64bitをインストールしない事です。インストールは可能ですが、これはPython側が32bitなために実行時(import時)にエラーとなりはまるので注意してください。
ダウンロードしたならばマウントし、
mysql-5.1.36-osx10.5-x86.pkg
MySQLStartupItem.pkg
の順にインストーラに従ってインストールします。
MySQL GUIツールのインストール
自分はコマンドラインでごにょごにょやるのはあまり好きではないので、GUIツールもインストールします。
http://dev.mysql.com/downloads/gui-tools/5.0.html
こちらは特にはまる箇所はありません。インストールが完了したならば、アプリケーションに登録されます。
Python-MySQLのインストール
MySQLdb (Python-MySQL)は、幾つかの方法でインストールできるようですが、インストールが失敗したり、色々と設定を変更したりと、一発で奇麗にインストールはできないようです。その中でも比較的に解りやすい方法を探してみました。
MySQLdbを、http://sourceforge.net/projects/mysql-python/よりダウンロードして、適当なディレクトリで解凍します。
tar -xvf MySQL-python-1.2.3c1.tar.gz
このままでは設定ファイル(mysql_config)の位置が異なりビルドに失敗するため、site.cfgを編集して以下の行を追加します。
※尚、念のため、MySQLのインストール先は確認してください。
後は、ビルドしてインストールします。
最後にPythonでimport して、エラーが起きなければ成功です。
Python 2.5.1 (r251:54863, Feb 6 2009, 19:02:12)
[GCC 4.0.1 (Apple Inc. build 5465)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import MySQLdb
>>>
import でエラーが発生する
>>> import MySQLdb
Traceback (most recent call last):
File "", line 1, in
File "build/bdist.macosx-10.5-i386/egg/MySQLdb/__init__.py", line 19, in
File "build/bdist.macosx-10.5-i386/egg/_mysql.py", line 7, in
File "build/bdist.macosx-10.5-i386/egg/_mysql.py", line 6, in __bootstrap__
ImportError: dynamic module does not define init function (init_mysql)
こんなエラーが発生した場合、おそらくは64bit版がインストールされています。
/usr/local/mysql/を削除の上、再度32bit版をインストールし、MySQLdbも再構築してください。
port でインストールする
port でインストールする事もできますが、パスが通らないためリンクを張るなどの回避策が必要です。ただ、インストール手順なども不透明ですし、無駄にportからもmysql5がインストールされてしまうため、行わない方がいいかもしれません。
こんな方法も
こちらにもインストール手順がありますが、どうしてインストールが成功するのか不明な為、自分は試しませんでした。