Se connecter à MySQL

La réalisation de petit programme en python (quelquesoit le système) peut nécessiter l’utilisation d’une base de donnée. L’utilisation de fichier xml peut rapidement devenir ennuyante et une base de donnée comme MySQL peut être un bon moyen d’enregistrer et partager des données sur un réseau. La connexion se fait aisément en important une bibliothèque.

Installation complète

Bien entendu, vous allez avoir besoin d’installer un mysql, voir ce tuto, pour l’installation d’un serveur web complet ou bien :

sudo apt-get instal mysql-server

Après cela, il faudra installer le paquet suivant :

sudo apt-get install python-mysqldb

Utilisation

Une fois le paquet installé, nous allons commencer.

Importer la bibliothèque

Au début de votre script python, il faudra mettre :

import MySQLdb

Connexion à sa base de donnée

Nous allons maintenant ouvrir la connexion avec la base de donnée :

bdd = MySQLdb.connect(host="localhost",user="utilisateur",passwd="mot_de_passe",db="nom_de_la_base");

Je ne pense pas qu’il y ait besoin de plus d’explication que ça. Pour les commandes de base de mysql, aller voir cet article.

Fermeture de la connexion

A la fin de votre script, pensez à fermer votre connexion :

if bdd: 
   bdd.close()

Exécution d’une requête

Afin d’exécuter une requête, nous devons ouvrir un curseur, puis on exécute la requête :

curseur = bdd.cursor()
curseur.execute("SELECT VERSION()")

ver = curseur.fetchone()
print "version : ", ver

Cette requête va afficher la version en cours et l’afficher.

Gestion des erreurs

Voici le code complet de ce qui a été vu avant avec la gestion des erreurs :

#!/usr/bin/python
# -*- coding: utf-8 -*-

import MySQLdb
import sys

try:
     bdd = MySQLdb.connect('localhost', 'testuser', 'test623', 'testdb');

    curseur = bdd .cursor()
     curseur .execute("SELECT VERSION()")

     ver = curseur .fetchone()

     print "Database version : %s " % ver

except MySQLdb.Error, e:

     print "Error %d: %s" % (e.args[0],e.args[1])
     sys.exit(1)

finally: 

     if bdd : 
          bdd .close()

Les requêtes

Je mettrai à jour cette article au fur et à mesure que je rencontre les requêtes pour ne mettre que celles qui fonctionnent.

Laisser un commentaire