【GAE/Python】Goolge cloud sqlをローカルで動かす

サーバにアップした状態での動作は、

https://developers.google.com/cloud-sql/docs/developers_guide_python

を見ることで問題無く完了した。

しかし、ローカルで動作させるためにはいくつか手順が必要で、

それは上記サイトに詳しい説明はない。

なので、上記サイトを参考にしつつも、

インストールが必要な物を調べて、

動作までいったのでそれをメモ代わりに残す。

(※こちらの環境はmacで、windowsの方法とは違う可能性があります、

ご注意下さいm(_ _)m)

まず、

http://www.mysql.com/

より、MySQL Community Serverを落とし、インストール。

インストールは、

http://labs.torques.jp/2010/02/14/844/

が詳しく、参考にさせていただき、システム環境設定に出して起動し、

初期設定、テーブルの作成なども行う。

その後、GoogleAppEngineLauncherのEdit→Application Settingsの

Extra Flagsの部分に

--mysql_user=root --mysql_password=xxxxxxx

と上記で設定したパスワードを入れ、

起動時にオプション付きで起動するように設定しておく。

次に、MySQL-pythonをインストールする。

http://d.hatena.ne.jp/ama-ch/20080610/1213076652

mysql_configのパスは、自分の場合も、

mysql_config = /usr/local/mysql/bin/mysql_config

というパスで設定する必要があった。

※自分の場合、このMySQL-pythonのインストール先が、

/Library/Python/2.7/site-packages/MySQL_python-1.2.3-py2.7-macosx-10.7-intel.egg

になっていた。

GoogleAppEngineLauncherのPreferencesから確認出来る、python pathも

/usr/bin/python2.7 と、2.7になっているので特に何も変えなかったが、

2つのバージョンが違う場合、変える必要があるかも知れない。

その後、

/usr/local/bin/dev_appserver.py

の頭に(22行目辺りに)import MySQLdb の記述を追加。

http://googlecloudsql.blogspot.com/2012/03/re-rdbms-api-is-not-available-because.html

この状態で動かすと、

import MySQLdb

File "build/bdist.macosx-10.7-intel/egg/MySQLdb/__init__.py", line 19, in

File "build/bdist.macosx-10.7-intel/egg/_mysql.py", line 7, in

というエラーが出て、そもそも起動すら出来なかった。

なので、

http://www.rustyrazorblade.com/2011/11/installing-mysqldb-on-macos-lion/

にある、

sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib

sudo ln -s /usr/local/mysql/lib /usr/local/mysql/lib/mysql

という2つのコマンドをターミナルから実行、

その後起動してみると成功し、ローカルから動作を確認出来た。