Outils d’administration, de gestion, et de supervision pour MySQL
Ma fonction actuelle inclut (entre autre) l’administration et la gestion de plusieurs serveurs de bases de données : MySQL, PostgreSQL, et MS SQL. Pour assurer une gestion efficace et rapide de tâches récurrentes, il existe plusieurs moyens pour s’affranchir de l’administration en ligne de commande.
Je vais présenter dans ce billet 4 outils graphiques, vous permettant de gérer et de monitorer vos instances MySQL.
MySQL Administrator (gratuit)
MySQL Administrator est un logiciel gratuit édité et distribué par la société MySQL AB : il permet d’administrer, de gérer et de monitorer de multiples instances MySQL (un serveur physique peut héberger plusieurs instances MySQL).
Fonctionnalités :
- gestion des utilisateurs et des privilèges,
- monitoring de la santé de votre serveur : espace disque, nombre de requêtes, taille des index, etc.,
- gestion du schéma des bases de données,
- système de sauvegarde/restauration rapide,
- informations clés et détails sur le serveur,
- état des connexions,
- informations sur l’état de la réplication,
- visualisation des logs,
- etc.
Informations sur le serveur
Détails sur une table
Health Monitoring
Il est intéressant de noter que MySQL Administrator fait partie de MySQL Tools, une suite de 4 outils graphiques gratuits édités par MySQL AB :
- MySQL Administrator : logiciel vous permettant d’administrer et de monitorer vos serveurs MySQL,
- MySQL Migration Toolkit : framework doublé d’un assistant, Migration Toolkit vous permet de migrer d’une base propriétaire (MS SQL, Oracle, etc.) vers MySQL (voir image ci-dessous),
- MySQL Query Browser : outil de création (mode texte, ou par drag and drop), d’exécution et d’optimisation de requêtes MySQL,
- MySQL Workbench : outil de modélisation pour MySQL vous permettant également de faire du reverse-engineering.
Migration Toolkit : assistant pour migrer vos bases propriétaires vers MySQL
Navicat for MySQL (payant)
Navicat for MySQL est également un logiciel de gestion de vos bases de données MySQL : très complet, il apporte des fonctionnalités très appréciables comme l’import de données, ou encore la synchronisation (données et/ou structure) entre deux bases de données. Il vous en coûtera entre 95$ et 170$ pour acquérir une licence.
Fonctionnalités :
- plusieurs modes de connexion : SSL, tunnel SSH, tunnel HTTP,
- gestion des utilisateurs et des privilèges,
- gestion des bases de données et de leurs structures,
- synchronisation de données et de structure entre deux bases,
- assistant de sauvegarde/restauration : possibilité de programmer des sauvegardes,
- complétion de code,
- procédures stockées,
- import et export de données (à partir d’Access, d’Excel, XML, PDF, et TXT),
- etc.
Vue d’une base de données
Procédure de synchronisation entre deux bases de données
Note : il existe également une version de Navicat pour Postgres.
Spotlight on MySQL (gratuit)
Spotlight on MySQL est un outil un peu particulier, dans la mesure où il est dédié au monitoring, et dont les pré-requis sont assez stricts. Il ne fonctionne en effet que pour MySQL 5, et uniquement avec le moteur de stockage InnoDB.
Cependant, pour les personnes concernées, c’est l’outil idéal pour identifier les problèmes de performance et les goulots d’étranglement.
Vision globale et temps réel du comportement de votre MySQL
Graphiques détaillés de monitoring
A noter : son éditeur, Quest Software, propose également d’autres outils (Toad, Data Analysis, etc.) pour d’autres types de bases de données (Oracle, DB2, Sybase, SQL Server).
PhpMyAdmin (gratuit)
Enfin, the last but not the least, l’outil graphique de gestion MySQL le plus utilisé au monde, PhpMyAdmin : développé en PHP, il permet d’accéder à une gestion complète de vos bases grâce à un simple navigateur.
Quel outil utiliser ?
C’est à vous de décider : c’est essentiellement une question d’ergonomie et de fonctionnalités. PhpMyAdmin conviendra dans la majorité des cas, pour administrer des petites et moyennes bases de données, mais l’adoption d’un autre logiciel peut se faire en parallèle.
Mon choix se porte sur la suite d’outils MySQL Tools pour plusieurs raisons : ce sont des logiciels « officiels » édités par la société conceptrice de MySQL, ils sont complémentaires et permettent de faire 99% des tâches possibles. Cependant, je garde pour réflexe de toujours installer un PhpMyAdmin sur chaque serveur de bases de données.
Commentaire by Steve — 30 novembre 2007 @ 18:27
Je ne connaissais pas Spotlight, je testerai ca Lundi car au boulot, je suis sur un projet ou je dois gérer une base MySQL 5.0.45 InnoDB à forte volumétrie…
Merci !
Commentaire by Arkan — 30 novembre 2007 @ 18:35
Salut Romain,
sympa cette petit revue. J’aurai une question parce que ce genre d’outil peux m’intéresser pour un projet. Est-ce que tu pense que MySql Tools est adapté à quelqu’un qui se satisferait d’un PHPMyAdmin mais qui voudrait du « visuel »?
C’est pas moi qui gère la partie bdd sur ce projet mais visuellement j’arriverai surement mieux à situer ou se trouverai un éventuel soucis que je pourrai remonter rapidement à la personne concernée (qui n’est là que quand il y a soucis ^^)
Ping by Hot Links for 30/11/07 | Nowhere Else 2.0 — 30 novembre 2007 @ 22:52
[...] Outils d’administration, de gestion, et de supervision pour MySQL (Woueb2.0) [...]
Commentaire by Rémian — 30 novembre 2007 @ 22:55
Joli article et bien illustré. Pour ma part j’utilise SQLyog qui fournit des fonctionnalités de base comme MySQL Admin.
Ping by Revue de presse | Simple Entrepreneur — 8 décembre 2007 @ 7:09
[...] Outils d’administration, de gestion et de supervision pour MySQL Un très bon récapitulatif des différentes solutions disponibles sur le marché pour administrer un serveur de bases de données MySQL. Certains outils – même s’ils sont gratuits – se révèlent d’une efficacité incroyable (par exemple phpMyAdmin, très utilisé par les développeurs web). [...]
Commentaire by graffiti — 10 décembre 2007 @ 11:06
Ca aurait été pas mal, un complément d’article pour les gens sous mac
mais oui je sais google…
Commentaire by Julien — 10 décembre 2007 @ 19:33
Les « maceux » devront en revanche se contenter de PhPMyAdmin ou du minimaliste CocoaMySQL!
Commentaire by Julien — 10 décembre 2007 @ 19:34
Hum, en fait les outils AB sont compatibles Mac OS X… desole!
Commentaire by Tanhys — 12 octobre 2010 @ 8:26
Salut Romain,
merci pour cette petite revue. je pense que tu pourrais ajouter ceci dans la liste: Toad for MySQL qui est également gratuit et fort sympathique: http://www.quest.com/toad-for-mysql/
Commentaire by Romain — 14 octobre 2010 @ 8:50
Merci pour l’info Tanhys !
L’article a quelques années déjà, ce serait l’occasion de le défraichir je pense.
A l’époque, je crois me souvenir que Toad n’était pas gratuit.
Commentaire by Tanhys — 14 octobre 2010 @ 14:01
Oui c’est bien probable ou alors n’existait pas simplement pour MySQL mais seulement pour Oracle.
Actuellement, j’rencontre qu’une difficulté avec, c’est l’importation de gros fichiers CSV, ça fait planter l’appli (bien que toutes les données soient chargées). Mais hormis ça, nickel ! Je recommande!
Commentaire by Baptiste — 14 mars 2012 @ 12:28
Salut Romain,
l’article date un peu, mais il répond à une problématique que j’ai en ce moment : j’ai un serveur dédié, sur lequel apparaît un problème récurrent : des connexions qui ne se terminent pas, qui se foutent en « sleep » et du coup, elles s’accumulent et j’atteins rapidement le max.
Je pense que j’ai des requêtes mal foutues quelque part, mais sais-tu comment je pourrais les identifier ? Mon site est très fréquenté, il se base sur un WordPress (propre) et un phpBB plutôt très customisé. Il me faudrait simplement un indice pour savoir d’où viennent ces requêtes pour repérer le problème, sais-tu comment je pourrais faire ça ?
Merci d’avance pour tes idées
Commentaire by Romain — 14 mars 2012 @ 13:29
Salut,
alors, quelques idées en vrac :
- tu peux essayer d’identifier des requêtes plus longues avec le « slow query log » : tu définis un long_query_time, et toutes les requêtes qui dépassent sont mises dans le logs,
- idem avec un « show processlist »
- dans phpmyadmin > état du serveur tu as beaucoup d’informations sur les goulots d’étranglement,
- si tu sais quelles requêtes sont longues, tu peux les analyser avec un « query analyzer » pour voir comment mieux les formatter. Tu peux voir du coté de la commande « explain » aussi.
- dans la configuration de MySQL, tu as bien tout tuné (max connexions, etc.) ?
- tu es certain de n’avoir aucun problème autour (réseau, sécurité, swap, etc.) ?
Bon courage !