MySQL Proxy, proposé par MySQL AB, est le genre d’outils dont le rôle semble si évident qu’on se demande pourquoi il n’existait pas avant. Comme tout proxy, il récupère les requêtes destinées à la base de données, effectue des traitements et adresse une requête modifiée au serveur MySQL. Bien entendu, l’opération inverse est aussi gérée : MySQL Proxy sait récupérer un résultat de requête et le transformer avant de l’adresser au client initial.
Fonctionnalités
Après cette petite présentation, on peut se demander pourquoi on aurait besoin d’un proxy, puisque les services applicatifs (s’ils sont correctement architecturés et codés…) devraient envoyer une requête optimisée au serveur MySQL. Une petite liste des fonctionnalités finit par convaincre de son intérêt :
- Analyse des requêtes
- Filtrage et modification des requêtes et des résultats
- Injection de requêtes
- Load balancing
- Exécution de scripts (basés sur le langage LUA)
Cas d’utilisation
Dans la pratique, on peut imaginer les situations suivantes :
- Corriger les erreurs de syntaxe communes.
- Garantir le fonctionnement d’anciennes applications utilisant des requêtes non supportées.
- Supprimer du résultat un mot de passe demandé dans la requête.
- Récupérer et fusionner avec le résultat des données externes à la base de données (fichiers, flux XML, RPC…)
- Router les requêtes vers un autre serveur MySQL ou vers une autre base de données du même serveur.
- Empiler un lot de requêtes et les contrôler avant de mettre à jour les tables.
- Dupliquer les requêtes en temps réel sur deux bases différentes.
- Exécuter un script shell avant ou après des modifications dans la base de données.
- Interdire certains motifs de requêtes.
- Verrouiller des tables selon le contexte.
- Contrer les injections SQL non désirées.
On le voit, les possibilités sont infinies et ne dépendent que des contextes de production et de l’imagination des développeurs. MySQL Proxy permet surtout d’éviter d’intégrer la gestion de l’exploitation des bases de données MySQL dans les services applicatifs. Voilà enfin une saine séparation du travail du développeur métier et de l’administrateur MySQL !
Mise en oeuvre
MySQL Proxy est encore en version alpha et son fonctionnement n’est garanti que pour les versions MySQL 5.0.x et ultérieures.
Pour découvrir ses possibilités, O’Reilly Network propose un didacticiel clair et très fourni : Getting Started with MySQL Proxy.
Source : Linuxfr.org