Python: Add MySQL support on Windows

I was starting work on migrating a project over to Django and needed access to an existing MySQL database. However, I couldn't as I was using Instant Django as a development server on Windows.

When trying to run Instant Django with MySQL, you're gonna see this error:

File "instant_django\Python27\lib\site-packages\django\db\backends\mysql\base.py", line 14, in <module>
raise ImproperlyConfigured("Error loading MySQLdb module: %s" % e)
django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: No module named _mysql

This is because Instant Django only ships with only sqlite support. If you want to run it with MySQL support, you'll have to add a few files your the setup.

Installation

Unfortunately, Instant Django is not installed so the installer for MySQL Python won't work because there is no registry value for Python.

  • Download and install the "MySQL-python-1.2.3.win32-py2.7.exe" from codegood.com.
  • Extract the contents of "MySQL-python-1.2.3.win32-py2.7.exe" (using WinRar or 7-zip) and you'll get a folder called "PLATLIB".
  • Move "_mysql.pyd" and "_mysql_exceptions.py" to "instant_django\Python27\Lib\site-packages\PIL".
  • Move "MySQLdb" to "instant_django\Python27\Lib\site-packages".
  • Try to start your Django server and it should actually work.

Just in case

Instant Django is running the 32bit version of Python 2.7 (at time of writing), which cannot load the MySQL-Python x64 libraries.

If you're trying to install the 64-bit version, you'll get this error:

File "instant_django\Python27\lib\site-packages\django\db\backends\mysql\base.py", line 14, in <module>
raise ImproperlyConfigured("Error loading MySQLdb module: %s" % e)
django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: DLL load failed: %1 is not a valid Win32 application.

Now that you're over this hurdle, happy coding!

1299240990_4-vault-jump

[ Download ]

 
Copyright © Twig's Tech Tips
Theme by BloggerThemes & TopWPThemes Sponsored by iBlogtoBlog