Vidéo PHP et MySQL, édition 33

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

[Lire plus]
Plug-in du schéma d'information de MySQL

La semaine dernière, j'ai montré comment utiliser l'interface de plug-in de MySQL pour produire un plug-in de la base information schema, un 'Hello World' minimaliste. L'objectif de cet exemple était de montrer les pré-requis minimaux pour utiliser cette interface.
Dans ce nouvel article, je veux passer au niveau supérieur, et montrer comment écrire un plug-in du schéma d'information qui accède à des informations internes de MySQL. Pour cela, nous allons écrire un plug-in qui affiche les SAVEPOINT durant le débogage d'un script et de procédures stockées. Ce plug-in MYSQL_SAVEPOINTS pourra être utile pour déboguer des situations avec des scénarios complexes de transactions et point de sauvegarde.

[Lire plus]
Livre : construisez votre application en PHP

 

Réaliser une application en PHP, telle est la question que s'est posée Christophe Villeneuve. Cet auteur propose à partir de son ouvrage la réalisation d'une application. Il nous montre également, une autre approche pour réaliser un site internet, intranet ou extranet, avec l'utilisation d'un certain nombre de fonctions PHP disponibles.
Cette approche se présente sous la forme d'un cas pratique (exercice), dont l'application est disponible sur le site Internet de l'éditeur des Editions ENI. Ce cas pratique concerne tout simplement la gestion en ligne d'un carnet d'adresses. Ce carnet d'adresses est proposé avec trois formats de bases de données : MySQL - MySQLi - PDO. L'auteur propose des fichiers et une structure identique pour permettre à toutes les personnes désirants progressées de passer d'un format d'une base de donnée vers un autre format.
Bien sur un chapitre sur les principes de bases est présent …

[Lire plus]
Nouvelle extension PHP PECL OCI8 1.3.1 Beta

Christopher Jones publie une nouvelle version de l'extension OCI8, avec deux améliorations notables : le pooling de connexions et un système de messagerie interne rapide.
Le pooling de connexions est une solutions alternatives aux connexions permanantes : pour éviter le coût de connexion au serveur, ces dernières ne sont pas refermées à la fin du script, mais conservées par le processus apache, au cas où elle pourraient être réutiliser. Or, cela produit des effets indésirables, où des paramétrages de connexions d'un hit perturbent le hit suivant. Les pooling de connexions devraient résoudre au moins ce type de situation, et permettre une montée en puissance plus efficace. Oracle semble le seul à être doté de cette solution à l'heure actuelle.

[Lire plus]
Quel processus MySQL peut être tué innocemment?

Méfiez-vous de la commande KILL pour MySQL. Morgan Tocker a tenté de modifier une table (ALTER TABLE), sans réaliser que InnoDB allait reconstruire toute la table : pour une simple reconfiguration de auto_increment, cela fait beaucoup. Mais tuer le processus Alter Table conduit InnoDB à annuler la commande, et cela peut prendre encore 30 fois plus de temps. Au final, un redémarrage de MySQL est nécessaire, avec à la clé, une reconstruction de table... sic.
Bref, méfiez-vous des commandes à tuer : select ne pose aucun problème. UPDATE, DELETE et INSERT peuvent se révéler terriblement long, et, au pire, conduire à une table à réparer : REPAIR TABLE n'est pas un rapide...

Premières requêtes sur un serveur MySQL installé

Matt Reid publie les premières requêtes SQL qu'il exécute sur une nouvelle installation MySQL :

 
 
mysql> use mysql
 
mysql> delete from user where User='';
 
mysql> delete from db where User='';
 
mysql> update user set Password=password('password_here') where User=root;
 
mysql> flush privileges;
 


Cela modifie le mot de passe root (ligne 4), et supprime les utilisateurs anonymes (ligne 2), ainsi que les utilisateurs globaux (ligne 3).
J'ajouterai aussi avant la ligne 6, la suppression des utilisateurs sans mot de passe.

 
 
mysql> delete from user where Passwd='';
 


Et ceux qui ont suivi mes conférences sur la sécurité, sauront qu'il est bon de surveiller les connexions distantes, notamment celles qui contiennent des %. Je ne suggère pas de les …

[Lire plus]
PHP Québec innove avec le salon d'emploi PHP

Je transmet le message de Sylvain Mathon et Anna Filina sur la conférence PHP Québec, qui s'en vient à grands pas. Cette année, PHP Québec propose un salon d'emploi PHP, où les développeurs et les compagnies pourront se rencontrer durant une soirée, dans une ambiance décontractée.
Trouver une bonne entreprise pour faire évoluer ses compétences, et dénicher la perle rare qui s'intègre dans les équipes sont deux problèmes différents qui doivent se résoudre par le même accord. Avec des salons comme ceux-ci, bien ciblés, on peut rencontrer rapidement des développeurs et des responsables, et se faire une idée rapide de l'intérêt d'une candidature : dans les deux sens!
De notre coté, Philippe Gamache et moi-même mettons les dernières touches à une belle application pleine de trous de sécurité. Nous rions comme des lutins démoniaques à toutes les vulnérabilités et exploitations que nous envisageons, mais je …

[Lire plus]
MySQLfs : système de fichiers sur MySQL

MySQLfs est un système de fichiers qui enregistre les données dans une base MySQL. Les données sont découpées en portions réduites, puis archivées dans des tables. La navigation est identique à celle d'un système de fichiers, et vous pouvez alors utiliser la réplication ou le cluster MySQL pour mettre vos fichiers à l'abri des pannes.
Cela ressemble au projet Fuse, qui offre une interface de système de fichiers (avec dossiers et fichiers) universelles. MacFuse propose ainsi des accès aux RSS, webcam ou google docs avec une présentation de volume de fichiers.

[Lire plus]
Hypertable : base de données distribuée

Via le 451 group, voici l'annonce de HyperTable. HyperTable est un concurrent direct de BigTable, la technologie sur laquelle se base Google pour stocker et retrouver des milliards d'URL à l'aide de simples mots clés. Il s'agit d'une base de données distribuées : elle peut fonctionner sur des dizaines d'ordinateurs différents, et se charge de répartir les données et les traitements entre eux, de manière à ne pas souffrir du crash de l'un d'entre eux.
La priorité est celle de la montée en puissance : il semble que l'on puisse ajouter des machines comme on veut. À l'inverse, des fonctionnalités avancées comme les transactions ou encore le typage des colonnes (sic) sont considérées comme secondaires. Hypertable utilise Hadoop pour répartir le travail entre les différentes bases.
Le concept est intéressant. Reste à voir comment cela s'utilise en pratique. Il faudra bien sur pouvoir le tester sur plusieurs machines, pour …

[Lire plus]
10000 tables dans MySQL?

Malheureusement, que ce soit un choix de conception, ou un historique (bien) trop lourd, il se peut que vous atteignez de tels chiffres. Que faire?


  • S'assurer que vous avez suffisamment de pointeur de fichiers disponibles : comptez trois pointeurs par table.
  • Créez un cache de table suffisamment grand : +20% du nombre de tables attendu
  • Refermez les tables sur le disque une fois de temps en temps : le conseil de Ask est de le faire table par table, pour ne pas bloquer la base indéfiniment.