En avant pour OSCON

Ce soir, départ pour OSCON, à Portland Oregon. Si vous y êtes, comme Tarek Ziade, faîtes moi signe. J'y serais lundi et mardi, juste le temps de voir une conférence de Damian Conway (encore un qui massacre mon prénom ;)), sur l'art de faire des présentations.
J'y suis pour donner un atelier de 3h30 sur la sécurité : 'Hack this App' sera la première publication anglaise de l'atelier de sécurité que nous avons monté avec Philippe Gamache. Il faut bien tout ce temps pour prendre en compte toutes les vulnérabilités que nous avons inséré dans un petit blogue communautaire. C'est un atelier particulièrement vivant, où les stagiaires réalisent eux-même les attaques... et les défenses. Je crois que c'est encore le meilleur moyen pour bien comprendre les mécanismes de sécurité actuels.
Enfin, il y aura une belle brochette d'acteurs de PHP et MySQL, que je compte bien aller rencontrer.

  •   …
[Lire plus]
Concours d'utilisateurs MySQL 5.1

MySQL 5.1 n'a jamais été aussi près d'être publié en version finale, et MYSQL AB recherche maintenant des cas d'utilisateurs : si vous avez déjà adopté MySQL 5.1, pour ses nombreuses capacités nouvelles (Partitions, Plug-ins, Programmateur d'événements, Fonctions XML, Logs en tables, performances, sécurité, etc.) vous pouvez envoyer un mail tout simple, et gagner un souper avec Monty (en tête à tête avec 4 autres utilisateurs) ou des peluches de Shakila.
Dans tous les cas, jetez un oeil sur cette nouvelle mouture, elle est particulièrement riche et pratique.

Installation du MySQL Cluster

Le but de ce billet est d’installer rapidement une configuration permettant de tester le cluster MySQL.
Il existe plusieurs façons de faire, en voici une basée sur les binaires de la dernière version à ce jour, la cluster 6.2.15. Rappelez-vous que depuis la version 5.1.25 de MySQL, les binaires du cluster ne sont plus inclus mais disposent de leur propre branche.

Haute disponibilité (redondance), montée en charge et haute performance (données en mémoire vive), une architecture en “shared-nothing” (aucun élément du cluster ne partage le même hardware) et un serveur mysql doté d’un nouveau moteur de stockage (NDB encore appelé NDBCLUSTER), voici quelques caractéristiques du cluster MySQL. Voyons comment l’installer en un minimum …

[Lire plus]
je deteste show warnings

Une des choses à laquelle il faut faire spécialement attention sont les warnings. MySQL est une base de données très permissive et beaucoup d’opérations réussies le sont grâce à la souplesse qu’il permet. J’ai vu des bases de données rouler pendant plusieurs jours, voir années, avec des erreurs sans que personne ne s’en rende compte.

Pourquoi je déteste “show warnings”? Parce que c’est un feature qui manque d’utilité. La documentation qui y fait référence est aussi défaillante. Elle n’indique même pas que le statement est par connexion. C’est un gros manque à mon avis. Si une base de données est exclusivement utilisée via une application, les requêtes sont toujours les mêmes. Pour un DBA en charge de s’assurer que tout fonctionne bien, il faudrait être capable d’obtenir ces warnings.

Je travaillais récemment sur un serveur, connecté avec le client command line. J’effectuais ce que …

[Lire plus]
MySQL patché par Percona

Percona est une société spécialisé dans les missions d'expertise MySQL. Ils publient régulièrement sur le blogue de MySQL Performance Blog ainsi que des patchs. Comme MySQL met beaucoup de temps à publier ces patchs dans le code du serveur, Percona a décidé de publier ses propres versions de MySQL, avec ses patchs préférés.


  • patch microslow patch (permet d'identifier les requêtes lentes à la micro-seconde près)
  • Plan d'éxecution (affiche des informations sur l'exécution de la requête dans le log de requêtes lentes)
  • Statistiques InnoDB statistic (plus de détails sur l'utilisation InnoDB)
  • Patch Google avec des statistiques utilisateurs et l'utilisation des index


Les versions 5.1.26 et 5.0.62 sont disponibles (la version communauté actuelle est la 5.0.51)

  •   …
[Lire plus]
Vidéo PHP et MySQL, édition 52

Voici les 5 dernières vidéos PHP et MySQL.



Ces …

[Lire plus]
Auditer les données en MySQL

"Un client m'a demandé récemment de l'aide pour enregistrer l'historique de modification de certaines tables. Comme pour de nombreux problèmes, la solution n'est pas unique, et dans ce cas, il y a même plusieurs solutions. J'ai été capable de fournir une solution totalement en base de données, avec un impact minimal sur le schéma.
Voici mon approche : votre avis et solutions alternatives sont toujours les bienvenues."
L'audit de données en base consiste à avoir un journal de toutes les modifications et lectures des données. Les audits sont de plus en plus courants dans les bases, où le système de droits n'est pas suffisant pour garantir la pérennité des informations : il faut parfois aussi fournir à un organisme certificateur des listes d'utilisations et d'utilisateurs.

[Lire plus]
Ne donnez pas trop de processeurs à InnoDB

Matt Yonkovit et Yves Trudeau ont mesuré l'impact du nombre de processeurs sur les performances InnoDB. Il est connu que InnoDB n'aime pas les machines à 16 coeurs, et via la commande taskset, Matt et Yves ont testé la progression des performances de 1 à 16.
Au final, il semble bien que 6 coeurs soient capables de fournir le même travail que 9. 8 coeurs est donc le maximum d'éfficacité actuellement pour un serveur MySQL sur InnoDB.

Sauvegarde MySQL sur SSH

Garry Van Burren publie une (longue) ligne de commande pour sauvegarder des bases MySQL sur un serveur distant, via SSH. mysqldump et mysql sont appelé à la rescousse, et ssh se charge du transport. Rien de difficile (hormis les 3 jeux de noms d'utilisateurs), mais une astuce pratique pour une sauvegarde.

Auditer les données en MySQL

"Un client m'a demandé récemment de l'aide pour enregistrer l'historique de modification de certaines tables. Comme pour de nombreux problèmes, la solution n'est pas unique, et dans ce cas, il y a même plusieurs solutions. J'ai été capable de fournir une solution totalement en base de données, avec un impact minimal sur le schéma.
Voici mon approche : votre avis et solutions alternatives sont toujours les bienvenues."
L'audit de données en base consiste à avoir un journal de toutes les modifications et lectures des données. Les audits sont de plus en plus courants dans les bases, où le système de droits n'est pas suffisant pour garantir la pérennité des informations : il faut parfois aussi fournir à un organisme certificateur des listes d'utilisations et d'utilisateurs.

[Lire plus]