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
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)