nyroBlog
Bannière NyroBlog, par DëuG
Image par DëuG - ?

Tag : Programmation


Réparer des bases de données MySQL

Il arrive dans certains cas que des bases de données, plus particulièrement des tables, soit rendu illisibles suite à un crash du serveur.

MySQL a tout prévu avant la commande REPAIR TABLE qui permet de récupérer une table crashée, avec généralement une perte de données, la dernière ligne ajoutée (d'où l'utilité des backups récurents).

Rien que ça, c'est bien utile quand on se retrouve dans un phpMyAdmin qui nous sort plein d'erreurs dont ont ne sait pas vraiment d'où elles sortent et dont on ne comprend pas forcément le sens.

Mais imaginez qu'on ait affaire à un serveur dédié avec un nombre conséquent de base de données. Le serveur a crashé, donc on suppose des erreurs sur les tables de toutes les bases. Comment faire pour ne pas avoir à regarder manuellement dans chaque base de données ?

Utilisez la commande mysqlcheck comme suit, à exécuter en SSH par exemple :

mysqlcheck -A --user=USER --password=PASSWORD

Bien sûr, vous aurez pris soin de changer USER et PASSWORD avec ce qui convient, sûrement root pour l'utilisateur.

Ensuite, vous allez voir toutes les tables de chaque base de données défiler, avec la plupart du temps marqué OK sur la ligne, pour vous indiquer qu'il n'y pas d'erreur.

Pour n'afficher que les tables qui sont crashées, vous n'aurez qu'à rajouter un grep :

mysqlcheck -A --user=USER --password=PASSWORD | grep -v "OK"

Enfin, vous n'aurez qu'à exécuter les REPAIR TABLE sur les tables qui ressortent avec des erreurs et vous en aurez terminer. Normalement, la commande mysqlcheck accepte comme paramètre --auto-repair, mais elle n'a pas fonctionnée dans mon cas, je ne sais pas pourquoi.

PHP : utiliser les références

Pour ceux qui ont fait du C++ ou qui savent faire la différence entre référence et valeur, vous pouvez passer au dernier paragraphe pour directement trouver le lien.

Lorsqu'on utilise des variables, celle-ci a besoin d'espace mémoire. L'espace mémoire est adressée, c'est à dire que la valeur de la variable se trouve à telle adresse (ou référence). Autrement dit, une variable pointe sur une ADRESSE, où est stockée véritablement la VALEUR de la variable. En PHP, tous les passages de variable (pour les fonctions, classes ou copie) se font par VALEUR. Etudions

$var = 'abc';
$var2 = $var;

La Première ligne : Lorsqu'on fait ceci, $var est associée à 1 référence mémoire (adresse), dans laquelle on met la valeur 'abc'. La seconde ligne : comme je vous l'ai dit, la copie se fait par valeur. Donc, en faisant ça, $var2 est associée à 1 nouvelle référence, dans laquelle on stocke la valeur de $var, 'abc'. Jusque là, rien de bien compliqué, c'est juste pour être plus clair et que vous compreniez mieux la suite.

Maintenant, si nous faisons ceci :

$var = 'abc';
$var2 = &$var;

(La seule différence est le &, marqueur de la référence) Pour la première ligne, rien ne change évidemment. Pour la seconde, qu'est-ce qu'on fait ? Une nouvelle référence est crée pour $var2, mais au lieu d'y stockée une valeur (celle de $var), on y stocke la référence de $var. Pour le dire différemment, $var2 est un alias de $var, qui pointe tous les 2 vers la même valeur dans l'espace mémoire. Vous suivez ?

Je voulais juste faire ce petit rappel, avant de vous donner l'adresse d'un très bon article de JDNet, qui montre plusieurs exemples qui vous seront très pratique. Peut-être que vous n'en voyez pas l'utilité tout de suite, mais cela pourra vous permettre de vous sortir de mauvaises passes dans certains cas.

Ca m'est arrivé il y a pas très longtemps, et je ne sais pas comment j'aurai fait sans ça.

TinyMce : plusieurs configs de l'éditeur sur la même page

Pendant longtemps, il était impossible (ou du moins, j'ai jamais vraiment cherché) d'afficher plusieurs éditeurs WYSIWYG TinyMce sur la même page, mais avec des configurations différentes.

Les exemples de TinyMce viennent d'être mises à jour, et parmi elles, la 10ème nous montre comment faire simplement, grâce à editor_selector (que je n'avais jamais vu auparavant). Pour le faire fonctionner, il faut que l'élément à mettre en éditeur ai la classe donné par ce paramètre

De plus, l'inverse existe aussi editor_deselector, montré en exemple sur un autre exemple.

Enfin, avec les exemples 7 et 8, on peut facilement faire un load de l'éditeur à la demande lors du clic dans le textarea, et le décharger lorsqu'on en sort avec les événements onBlur et onFocus.

Une bonne nouvelle qui me ravit, car c'est un des éléments qui manquait selon moi à TinyMce, qui est l'éditeur WYSIWYG que j'utilise dans mes admins, pour son aspect pro et sa robustesse.

WebWag sort son WOD

WebWagDepuis 3 jours déjà, les utilisateurs de WebWag (la même chose que netvibes pour ceux qui ne connaissent pas) peuvent créer leur propre Widgets en 2 étapes seulement.

  1. Je rentre l'url du site sur lequel je veux faire mon widget
  2. Je séléctionne la zone à partir de laquelle mon widget doit être fait

Et voilà, le WOD (Widget On Demand) est en place sur votre page. Un régal pour tout le monde. Et on imagine très bien les possibilités qu'offrent ce genre de service. Rien que pour ça, je crois que je vais me mettre à utiliser ce genre de portail, et ce sera WebWag.

Exemples d'utilisation :

  • Avoir toujours son positionnement dans google pour un mot clé
  • Afficher la météo de meteo.fr de sa région
  • Afficher les derniers messages d'un forum (et oui, le RSS fait encore trop souvent défaut sur ces derniers)
  • etc...

L'annonce des WOD
Le retour d'expérience

SRC, infos et projets

SRC [*] M?diaSamedi dernier avait lieu à l'IUT de Montbéliard la journée des anciens, rassemblement des diplômés du DUT SRC Montbéliard (Services et Réseaux de communication) pour parler de leurs expériences avec les prochains diplômés.

Et puis cela nous a permis de nous revoir et de bien fêter nos retrouvailles le soir.

Mais ce fut aussi l'occasion pour un groupe de projet collectif de parler de la nouvelle communication du département, qui a été renommé SRC [*] Média. Si vous ne connaissez pas ce DUT, je vous conseille cette animation, qui résume rapidement ce qu'on y fait.

Et encore, la distribution du numéro 2 du [Frigo], journal édité par le département, rédigé par des él?êves sous la houlette d'un professeur de communication, Jean-Claude Domenget. Et j'ai eu droit à un interview en double page (page 28/29), où je parle de mes études et de mon activité professionnelle. Un beau projet qui, je l'espère, continuera même avec le départ des étudiants qui s'en occupent pour le moment.

Et ce fut aussi l'occasion pour M. Viezzi, le chef de département actuel, de me demander de référencer au mieux son nouveau nom de domaine, srcmontbeliard.com. Mais comme c'est une redirection, je ne sais pas si un référencement là dessus peut être aussi efficace qu'un véritable nom de domaine. Vous avez une expérience là-dessus ?