Skip to main content
Join the official 2019 Python Developers SurveyStart the survey!

A Buildout recipe to setup a MySQL database.

Project description

Recipe to install Mysql

Code repository:

It can be a problem getting both mysql and mysql’s python binding to install reliably on everyone’s development machine. Problems we encountered were mostly on the mac, as mysql gets installed into different locations by the official mysql distribution, macports and fink. And on the mac, the python binding needs a patch.

One solution: fix the underlying stuff and make mysql and mysql-python a dependency that has to be handled by the OS. Alternative solution: this ‘zest.recipe.mysql’ recipe. Warning: rough edges. It is not a properly documented and tested package as it originally was a quick need-to-get-something-working-now job.

Here’s a quick piece of buildout to get you started if you want to test it:

parts =

recipe = zest.recipe.mysql
# Note that these urls usually stop working after a while... thanks...
mysql-url =
mysql-python-url =

eggs =
  • This ought to download and install mysql and mysql-python.
  • Mysql and mysql-python end up in ‘…/parts/mysql’.
  • mysql-python is installed as a development egg by buildout.
  • The socket and the database are in ‘…/var/mysql’.


mysql-url – Download URL for the target version of MySQL (required).

mysql-python-url – Download URL for the target version of the Python wrappers (required)

python – path to the Python against which to build the wrappers (optional, currrently unused).

config-skeleton – path to a file used as a template for generating the instance-local my.cnf file (optional). If this option is not supplied, no configuration will be generated. If passed, the text from the indicated file will be used as a Python string template, with the following keys passed in the mapping to the % operator:


with-innodb – if set to a non-false value, will pass the --with-innodb option to the configure command.


1.0.4 (2010-02-23)

  • Moved options documentation to the README.txt file. [maurits]
  • Add a recipe option, with-innodb: if set to a non-false value, will pass the --with-innodb option to the configure command. [rafrombrc]

1.0.3 (2009-10-19)

  • Add a recipe option, config-skeleton: if passed, points to a file used as a template for generating an instance-local my.cnf file. Ensure that the generated wrapper scripts use this file, if generated; if not, ensure that the wrappers disable “standard” config file lookups. [tseaver]
  • Document existing recipe options in class docstring. [tseaver]
  • Delegate command line arguments from wrapper script to the real mysqld_safe, just as with other wrappers. [tseaver]

1.0.2 (2009-10-14)

  • Unchanged rerelease of 1.0.1 due to fix packaging error. [maurits]

1.0.1 (2009-10-13)

  • Fix support for newer MySQL releases, thanks to a patch send in by Tres Seaver. [jladage]

1.0 (2009-10-09)

  • Nothing changed yet.

1.0beta (2008-10-21)

  • Added bin/stop-mysql script. [reinout]

0.9.1 (2008-10-20)

  • README update.

0.9 (2008-10-15)

  • Better conditional downloading/extracting of the zipfiles. [reinout]
  • Changing update method to check for existance of /parts/mysql. If you’ve removed that parts directory the full install will be run. Handy for updating old installs. [reinout]

0.8 (2008-10-10)

  • Changed mysql-python egg handling: it no longer installs an egg in your global egg cache (which gives errors when you have two buildouts that use it). Instead it installs the egg locally as a development egg. This means you have to include it in your instance’s egg list as ${mysql:eggs}. [reinout]
  • Added example parts to the buildout config so that it can be tested that way. There are no real other tests. [reinout]

0.4.0 (2008-03-16)

  • Created recipe with ZopeSkel [Jean-Paul Ladage].
  • Learned from the varnish recipe and wrote the build recipe which downloads, compiles and install MySQL and created wrapper scripts in the bin folder of the buildout.

Todo list


  • Jean-Paul Ladage (Zest software): principal author
  • Reinout van Rees (Zest software): added development egg support.
  • Tres Seaver (Agendaless Consulting): bugfixes, config file generation.
  • Rob Miller: added ‘with-innodb’ option

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for zest.recipe.mysql, version 1.0.4
Filename, size File type Python version Upload date Hashes
Filename, size (17.2 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page