mysql_secure_installation, utile mais non paramétrable

Monday 14 July 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.

(more…)

mysqlslap et supersmack, deux outils de benchmark pour MySQL

Monday 7 July 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Ă© ?
(more…)

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

Sunday 22 June 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.

(more…)

DorsalSource

Thursday 3 May 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.

(more…)

Migration

Wednesday 11 April 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.