Python – MySQL (via MAMP sous Mac OS X)

Je suis actuellement à la découverte de Python. A cet effet, je regardais la méthode pour me connecter à une base de données MySQL. J’ai passé pas mal de temps à configurer mon environnement, j’en profite donc pour vous faire profiter de mes remarques pour l’installation et la configuration du module permettant l’intéraction BDD <-> langage. Je travaille sous Mac OS X (Snow Leopard) avec MAMP et voici les différentes étapes permettant de se connecter à une base de donnée MySQL depuis Python.

Etape 1 : installé MySQL depuis les sources

Récupère la version suivante de MySQL : MySQL Server 5.1.55

Décompresser le fichier depuis le dossier où se trouve le fichier :

tar xzvf mysql-5.1.55.tar.gz

cd mysql-5.1.37

./configure –prefix=/usr/local/mysql –with-extra-charsets=complex –enable-thread-safe-client –enable-local-infile –enable-shared –with-plugins=innobase

make (cette étape prends quelques minutes, on est tout de même en train de compiler MySQL)

sudo make install

On s’arrête maintenant là pour la partie Server de MySQL.

Etape 2 : installé le module Python MySQLdb

On commence tout d’abord par définir dans l’environnement où se trouve les commandes MySQL via cette command

export PATH=$PATH:/usr/local/mysql/bin/

Vérifier ensuite que vous avez installé setuptools, le cas échéant, vous pouvez télécharger sur le site.

Il faut ensuite télécharger et décompresser le fichier suivant : MySQLdb

Effectuer ensuite les commandes suivantes :

sudo python setup.py clean

sudo python setup.py build

sudo python setup.py install

Testez ensuite le module est bien installé. Pour cela, faites les commandes suivantes:

cd (il est conseillé d’être dans un autre dossier que celui où se trouve le module MySQLdb)

python

>>> import MySQLdb

Si aucune erreur ne s’affiche, c’est que le module est bien disponible.

Etape 3 : connexion depuis un script Python

Tout est prêt maintenant, je vais tenter de me connecter via le script de base (via la documentation)

import MySQLdb

conn = MySQLdb.connect(host = “localhost”, user = “root”,passwd = “root”,db = “mysql”)

cursor = conn.cursor()

cursor.execute (“DESCRIBE user”)

rows = cursor.fetchall()

for row in rows:

print row

cursor.close ()

conn.close ()

Cependant une exception se lève

_mysql_exceptions.OperationalError: (2002, “Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (2)”)

En effet, vous n’utilisez pas le mysql compilé précédemment mais celui de MAMP, il faut donc rajouter un paramètre supplémentaire :

conn = MySQLdb.connect(host = “localhost”, user = “root”,passwd = “root”,db = “mysql”, unix_socket=”/Applications/MAMP/tmp/mysql/mysql.sock”)

Relancez votre script et le tour est joué, vous êtes connecté à votre base de donnée MySQL MAMP.

Source :

Installing MySQL on Snow Leopard

Installing Python MySQLdb 1.2.2 on Mac OS X

Writing MySQL Scripts with Python DB-API

Documentation officielle

1 thought on “Python – MySQL (via MAMP sous Mac OS X)

  1. Soso

    J’ai vu qu’il existait un add-on pour MAMP pour faire ça en quelques click, ça intègre Python, PIL, Mysqldb, django. Python4MAMP mais c’est payant (9euros)

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.