Articles avec le tag ‘outils’

Securich – Darren Cassar

Dimanche 23 août 2009

Darren s’est occupé récemment d’une migration de Sybase vers MySQL. Et il s’est aperçu à cette occasion que la gestion des utilisateurs sous MySQL n’est pas sans défaut. Par exemple, il n’est pas possible de créer des rôles, il n’est pas possible de donner à un utilisateur des droits sur toutes les tables sauf une, il n’est pas possible de connaître le degré de complexité d’un mot de passe…

Pour essayer de pallier à tous ces défauts, Darren a créé un outil : Securich, installable sur tout serveur MySQL 5.1. Cet outil permet, à l’aide d’appels à des procédures stockées, de manipuler les utilisateurs et leurs droits. Attention tout de même, le développement de Securich a commencé il y a peu de temps et le code est encore expérimental. Il reste pas mal de fonctionnalités que Darren voudrait implémenter et quelques bugs gênants : par exemple, si vous installez Securich sur un serveur contenant des utilisateurs, Securich va effacer tous les utilisateurs sans vous en avertir…

L’initiative est en tout cas intéressante car il reste effectivement pas mal de travail pour que MySQL présente autant de fonctionnalités sur les utilisateurs et les droits que d’autres produits.

MySQL Sandbox 3 – Giuseppe Maxia

Dimanche 23 août 2009

Nous avons tous régulièrement besoin de monter rapidement un ou plusieurs serveurs MySQL pour tester telle ou telle fonctionnalité. Et évidemment, c’est toujours quand on veut aller vite qu’on fait des erreurs et qu’on se retrouve avec des serveurs qui ne démarrent pas. MySQL Sandbox a été créée pour nous aider dans cette situation. Giuseppe s’est en effet trouvé de nombreuses fois dans la situation où il perdait énormément de temps à monter des environnements jetables et il a imaginé un script permettant d’automatiser cette création d’environnements jetables.

Sans entrer dans le détail des commandes (voir pour cela la page sur Launchpad), MySQL Sandbox permet de créer en une ligne de commande des environnements complets et variés : un serveur, plusieurs serveurs indépendants, un maître-plusieurs esclaves…Il est même possible de créer, toujours en une seule ligne, une réplication circulaire entre N serveurs ! Le script permet également de démarrer, arrêter, effacer chacun des serveurs ainsi créés ou de faire une opération pour tous les serveurs à la fois.

Ca faisait un moment que je voulais prendre un peu de temps pour voir ce qu’il était possible de faire avec MySQL Sandbox, maintenant c’est sûr : je vais m’y mettre !

A voir également sur le sujet : un précédent article d’Arnaud, sur dbnewz bien sûr !

15 secondes pour installer une réplication MySQL avec MySQL Sandbox, pari tenu ?

Vendredi 10 octobre 2008

« Installez-moi une configuration MySQL composée d’un master et deux slaves, vous avez 15 secondes. Top chrono »…

Non, ça n’est pas la dernière énigme à la mode pour rentrer chez Google mais plutôt une question qui pourrait devenir presque banale pour un entretien d’embauche pour un DBA MySQL à l’avenir, qui sait ?

Face à un tel défi, trois solutions :

- La fuite (mais faites une croix sur la « recommandation » Linkedin)
- Le kernel panic
- MySQL Sandbox !

Bien vu, MySQL Sandbox est la réponse la plus stratégique pour la poursuite de votre carrière.

Giuseppe Maxia (dont le blog figure dans notre blogroll, allez y jeter un oeil) est l’auteur de cet outil vraiment très pratique.  Que propose t-il ?

L’idée est d’automatiser l’installation de plusieurs serveurs MySQL sur une même machine. Rien que nous ne puissions faire manuellement c’est vrai, cependant la procédure habituelle consistant à ne pas mélanger les répertoires d’installation, choisir un port différent par serveur, appliquer mysql_secure_installation… Tout cela gagnerait à être automatisé non ? De plus ces installations manuelles sont potentiellement sources d’erreurs.

MySQL Sandbox est compatible avec toutes les versions MySQL de la 3.23 à la 6.0. Les différentes installations effectuées sont indépendantes les unes des autres, on peut ainsi faire cohabiter sans risque de conflits plusieurs versions différentes de MySQL sur une même machine (ports, répertoires et sockets indépendants).

En plus d’automatiser ces processus d’installation (gain de temps), MySQL Sandbox ne s’arrête pas là et  propose également des commandes très simples pour gérer les serveurs une fois installés.

Concernant le gain de temps, son auteur promet (notamment en page 2 de cette présentation) l’installation d’une réplication MySQL en 15 secondes. Info ou intox ?

(Lire la suite…)

mysql_secure_installation, utile mais non paramétrable

Lundi 14 juillet 2008

Je n’avais pas prévu d’écrire un billet sur mysql_secure_installation, c’est en préparant le prochain article (installation du cluster MySQL) que m’est venue l’idée d’écrire quelques lignes sur le sujet.

Ce script, présent dans le répertoire « bin » de votre installation de MySQL, a pour but de « sécuriser » votre base une fois celle-ci installée. Il vous est d’ailleurs conseillé de l’exécuter une fois mysql_install_db lancé ou à défaut de passer par mysqladmin pour au moins modifier le mot de passe associé à l’utilisateur « root ».

Lors de l’installation du cluster, je pars du principe qu’un autre serveur MySQL est susceptible de tourner sur le SQL node, je choisis donc d’opter pour un port différent de celui assigné par défaut au serveur MySQL (3306). Je m’aperçois alors que je n’ai aucun moyen de faire pointer mysql_secure_installation vers mon serveur MySQL en 3307, le script pointant automatiquement vers le port par défaut…

Face à ce problème, au moins deux solutions, taper manuellement les requêtes automatisées de mysql_secure_installation, ou modifier le script.

(Lire la suite…)

mysqlslap et supersmack, deux outils de benchmark pour MySQL

Lundi 7 juillet 2008

Il est parfois reproché au serveur MySQL de ne pas fournir suffisamment d’outils de benchmark / profiling concernant les requêtes ou le fonctionnement du serveur lui-même. Des commandes telles que SHOW STATUS (affiche l’état du serveur à un instant t), ou bien encore EXPLAIN (plan d’exécution de la requête SQL) permettent néanmoins d’obtenir de précieuses informations.

Ceci étant dit, comment s’assurer que son serveur MySQL tiendra la charge ? 1000 requêtes /s en insertion sont prévues le jour de la sortie de votre prochain service internet : votre serveur sera t-il capable d’y faire face  ?

Les deux outils présentés aujourd’hui permettent de simuler la charge reçue par le serveur MySQL en fonction de différentes paramètres dont le nombre de connexions simultanées et le nombre de requêtes par utilisateurs. Avec de tels outils, vous pouvez par exemple tester mysqlslap sur une de vos requêtes clé, visualiser comment celle-ci réagit sous différentes configurations, et visualiser un « score » à base de temps d’exécution. Une fois ce « score » récupéré, comparez-le avec celui que vous obtiendriez avec la même requête modifiée par vos soins, avez-vous progressé ?
(Lire la suite…)

DBDesigner 4 : générer son MCD par reverse engineering

Dimanche 22 juin 2008

Disposer d’un MCD (modèle conceptuel de données) lorsqu’on travaille sur une requête SQL impliquant différentes tables représente un gain de temps.
Il est en effet plus rapide de jeter un coup d’oeil sur un MCD afin de repérer quels sont les champs qui lient une table à une autre plutôt que d’enchaîner les « DESC ma_table », puis repérer la clé primaire et les éventuelles clés étrangères, et rebolote sur la ou les tables de destination…

La prochaine série d’articles sur les index MySQL va nous amener à enchaîner quelques requêtes sur une des deux bases d’exemple disponibles sur le site de MySQL : world et sakila, le prétexte est donc tout trouvé pour évoquer ici la solution que j’ai retenu pour obtenir le MCD de ces tables : DBDesigner 4.

Cet outil n’est pas nouveau, son successeur officiel est même déjà connu, il s’agit de MySQL Workbench. Celui-ci n’étant pas encore disponible sous linux, nous utiliserons son ancêtre et plus particulièrement sa fonctionnalité de « reverse engineering » : une fois connecté à votre base, DBDesigner 4 va générer sous forme graphique vos tables, leurs descriptions, et si tout se passe bien, les relations entre vos tables.

(Lire la suite…)

DorsalSource

Jeudi 3 mai 2007

Je ne sais pas vous mais moi, si il y a une chose qui m’ennuie c’est bien de recompiler les sources de MySQL à chaque fois que je veux tester un patch. D’une part il va toujours me manquer quelque chose et de l’autre je perds un temps fou. La solution à ce problème est enfin là et s’appelle DorsalSource , la nouveauté de mon ami Jérémy Cole et de l’équipe provenscaling en association avec solid.

DorsalSource est une idée qui a germée peu après l’annonce fin 2006 des versions « communauté » et « entreprise », MySQL ne fournissant plus les binaires aussi souvent pour la version communauté, version pour tout utilisateur sans contrat de support.

(Lire la suite…)

Migration

Mercredi 11 avril 2007

Dans ma todo list de cette année, je dois m’occuper de la migration de bases de données IBM DB2 vers Oracle. Je n’entrerai pas dans la polémique sur le meilleur SGBD. Pour moi tout dépend de votre budget, de vos data mais aussi du niveau de compétence disponible dans votre équipe.
Je vais devoir regarder un peu plus en détail l’outil fourni par Oracle, je veux bien évidemment parler de Oracle Migration Workbench

Cet outil est sensé me simplifier la vie pour migrer des bases Sybase, Informix et DB2 vers de l’Oracle. (Oracle9i et Oracle10g). Il s’occupe du schéma, des triggers, des procédures stockées. Serait ce l’outil magique? Bon il n’est pas encore capable de modifier votre application client si vous utiliser du SQL spécifique à votre SGDB mais qui sait. :)

Premier bémol, il ne semble supporter que du DB2 sous Windows. En 8 ans de carrière je n’ai encore jamais joué avec des serveurs DB2 sous Windows, de l’AIX du Linux oui. Pour moi Windows s’arrête avec MSSQL serveur. La suite de cet aventure pour les mois à venir.