ERROR 1577 (HY000) at line 1: Cannot proceed because system tables used by Event Scheduler were found damaged at server start

Nous continuons dans la série des erreurs MySQL consécutive à une migration de serveur.
Cette erreur m’est apparue lors de la même migration que l’article précédent, sous debian squeeze la version 5.1 de MySQL s’installe par défaut même si vous demandez la version 5.0, donc sur le coup je n’avais pas fait attention. Cette erreur n’est en fait simplement causé par la migration de la version 5.0 vers la 5.1 même si l’import a été fait via un import masse de fichiers sql en shell.
Voilà comment résoudre le problème :
mysql_upgrade -u root -h localhost -p –verbose –force
ou tout autre utilisateur qui a tous les privilèges (remplacer root par l’utilisateur)
Il ne reste plus qu’à redémarrer MySQL
/etc/init.d/mysql restart
Et l’erreur […]
ERROR 1045 (28000): Access denied for user ‘debian-sys-maint’@’localhost’ (using password: YES)

Lors d’un changement de serveur de base de données MySQL et l’import brut de la table ‘mysql’ pour avoir les mêmes privilèges. Le problème qui survient est que l’utilisateur ‘debian-sys-maint’ n’as pas le bon mot de passe.
Voilà comment résoudre le problème :
– récupérer le mot de passe du serveur :
vim /etc/mysql/debian.cnf
(ou tout autre éditeur) et copier le password dans la section [client]
- se connecter sur MySQL en shell :
mysql
UPDATE `mysql`.`user` SET password=PASSWORD(‘lemotdepasse’) WHERE `user`="debian-sys-maint";
- Il ne reste plus qu’à redémarrer MySQL
/etc/init.d/mysql restart
Vider la swap

Il m’arrive fréquemment de mettre mes PC en hibernation le soir, afin de reprendre ma session là où j’en étais tout en consommant moins d’électricité inutilement et puis il faut être un peu écolo aussi. Le problème est que la swap est fortement sollicitée à ce moment-là, et on peut constater un ralentissement. Dans d’autre situation la swap peut être sollicitée si trop de programmes gourmand sont lancés, ou sur un serveur lors de gros pics étant donné qu’Apache est très gourmand (il y a d’autre solution j’y reviendrais un peu plus tard).
L’idée est de remettre toutes ces données en RAM sans redémarrer la machine. Il existe une commande très simple :
sudo swapoff -a && sudo swapon -a
Le principe est de désactiver toues les partitions swap (en général une seule), toutes ces données sont […]
Les bases de MySQL

Lors de la création d’une base de données il est toujours bon d’avoir en mémoire les différents types de colonnes MySQL. (M décrit la taille maximale d’affichage du champ, D est mis pour décimal, UNSIGNED permet d’optimiser le stockage de chiffres positifs, ZEROFILL remplit les chiffres de zéros).
Type
Nb Octets
Commentaires
TINYINT[(M)] [UNSIGNED] [ZEROFILL]
1
Très petit entier. Va de -128 à 127, de 0 à 255 si non signé
SMALLINT[(M)] [UNSIGNED] [ZEROFILL]
2
Petit entier. Va de -32 768 à 32 767, de 0 à 65 535 si non signé
MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL]
3
Entier moyen. Va de -8 388 608 à 8 388 607, de 0 à 16 777 215 si non signé
INT[(M)] [UNSIGNED] [ZEROFILL]
4
Va de -2 147 483 648 à 2 147 483 647, de 0 à 4 294 967 295 si non signé
INTEGER[(M)] [UNSIGNED] [ZEROFILL]
4
Synonyme de INT
BIGINT[(M)] [UNSIGNED] [ZEROFILL]
8
Grand entier. Va de -9 223 372 036 854 775 808 à 9 223 372 036 854 775 […]
[Optimisation] Configurer l’en-tête Expires

Afin de ne pas surcharger inutilement Apache avec des contenus statiques (images, JavaScript, feuilles de style, …) à chaque chargement de page d’un visiteur, il est intéressant d’envoyer une durée de validité au navigateur client afin de solliciter son cache interne, ce qui nous donne un gain en nombre de hits et en bande passante. Par définition un contenu statique n’est pas fait pour être changé régulièrement, donc nous pouvons mettre une durée de validité très importante. Pour le visiteur l’accélération de la page peut être notable.
L’activation du module se fait en une seule ligne de commande pour de bons résultats, il faut bien sûr recharger Apache pour la prise en compte :
a2enmod expires
/etc/init.d/apache2 reload
Il ne reste plus qu’à configurer les durées, soit en l’appliquant à tous les sites du serveur dans un fichier de configuration de type […]