Tuesday, February 15, 2011

Using MySQL with Python/Django on Mac OS X (Snow Leopard)

Setting up MySQL with Python ( or Django ) can be a bit tricky since no database driver is officially provided by MySQL (as of Feb 2011). I had a couple of failed attempts, but finally got it working. A hit and trial method and troubleshooting guides from various websites helped. To sum it up, here is what worked for me:

Environment:

  1. Mac OS X 10.6.6
  2. Python 2.6.1 (Django supports this version and is installed on Mac by default if Xcode is installed)
  3. GCC 4.2.1
  4. MySQLdb 1.2.3 (Download from http://sourceforge.net/projects/mysql-python/)
  5. MySQL 5.1.x Server (Since MySQLdb supports upto this version as of Feb 2011)

Don't try to reuse the MySQL installed as part of MAMP because it doest match typical deployment environments if you would use Python/Django for professional application and secondly its overtly complicated.

Install MySQL:

See previous post Install/Uninstall MySQL 5.1 on Mac @ http://abhishekdev.posterous.com/installuninstall-mysql-51-on-mac

Perquisites: before installing MySQLdb

  1. Add the following line to the ~/.bash_profile or ~/.profile (Found by default on10.6.x) file under the User Home (if ~ is not known to you)
    PATH="${PATH}:/usr/local/mysql/bin" 
  2. Type in Terminal
    mysql --version
    Should read something similar to "mysql  Ver 14.14 Distrib 5.1.55, for apple-darwin10.3.0 (i386) using readline 5.1"

Install MySQLdb:

  1. Extract MySQLdb if it came archived/compressed
  2. Open Terminal
  3. Make the extracted folder as current working directory
    cd [Path if any]MySQL-python-1.2.3
  4. Type in Terminal
    python setup.py build sudo python setup.py install
  5. If no Errors get thrown. In Python Prompt type "import MySQLdb"
    python import MySQLdb

Posted via email from Abhishek Dev

Install/Uninstall MySQL 5.1 on Mac

Install

  1. Download a x64 bit (.dmg) copy from MySQL website
  2. Install it
  3. Also install the Preferences Pane

Troubleshoot if MySQL wont install or a version (previous/latest) is already installed.

Uninstall

  1. Make sure MySQL is not running
  2. Open Terminal
  3. Type in Terminal:
    sudo nano /etc/hostconfig
  4. Enter your password, if asked for.
  5. Delete the following line if its there: “MYSQLCOM=-YES-”
  6. CTRL+X (This is the command for closing NANO, Enter the “Y” key to save the file if you changed it and exit nano).
  7. Type in Terminal
    sudo rm /usr/local/mysql sudo rm -rf /usr/local/mysql* sudo rm -rf /Library/StartupItems/MySQLCOM sudo rm -rf /Library/PreferencePanes/My* sudo rm -rf /Library/Receipts/mysql* sudo rm -rf /Library/Receipts/MySQL* sudo rm /etc/my.cnf sudo rm -rf /var/db/receipts/com.mysql.mysql*

Posted via email from Abhishek Dev