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
Optimisation de MySQL, le script

Même si l’architecture de la base, les indexations des bons champs sont des paramètres essentiels, une base performante passe aussi par l’optimisation de MySQL en fonction de son utilisation. Les paramètres de MySQL par défaut ne correspondent sans doute pas à vos besoins, mais c’est très compliqué de trouver les bons réglages.
C’est là qu’intervient le script « MySQL Performance Tuning Primer Script » qui vous suggère les bons paramétrés, plus l’up-time est important est plus les suggestions seront pertinentes. Bien sûr cela ne vaut pas les préconisations d’un bon DBA mais celles-ci sont de qualités correctes.
Les points pris en compte sont :
Slow Query Log
Max Connections
Worker Threads
Key Buffer
Query Cache
Sort Buffer
Joins
Temp Tables
Table (Open & Definition) Cache
Table Locking
Table Scans (read_buffer)
Innodb Status
Pour l’utiliser il suffit de lui donner les droits d’exécution, de l’exécuter en root, cela prends quelques secondes :
Et il ne reste plus qu’à appliquer les préconisations dans le fichier my.cnf, puis de redémarrer MySQL.
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 […]