Mysql ne démarre plus à cause de debian-sys-maint, que faire ?

Le message d'erreur est le suivant :

Starting MySQL database server (listening on 0.0.0.0:8035): mysqld.
Checking for corrupt, not cleanly closed and upgrade needing tables..
/usr/bin/mysqladmin: connect to server at 'localhost' failed
error: 'Accès refusé pour l'utilisateur: 'debian-sys-maint'@'@localhost' (mot de passe: OUI)'

La solution :

killall mysqld
./bin/pkgi-mysqltools init
./etc/init.d/mysql start

Voici l'explication : l'utilisateur debian-sys-maint est créé à l'initialisation de la base par le script bin/pkgi-mysqltools qui lui associe un mot de passe généré automatiquement. Cet utilisateur est stocké (comme tous les autres) dans la base de données dont le nom est mysql. Si cette dernière est supprimée ou écrasée par exemple suite à un import brutal d'une autre instance, alors le mot de passe de cet utilisateur sera remplacé et donc tous les scripts de contrôle du démon mysql ne fonctionneront plus.

Une solution pour éviter d'écraser la base de données mysql est de ne jamais la dumper lorsque vous utilisez mysqldump. Voila par exemple un petit script bash qui permet de dumper en douceur toutes les bases sauf mysql :

DATABASES=`echo "SHOW DATABASES;" | \
           ./usr/bin/mysql --user=root --password= | \
           grep -v "^Database$" | \
           grep -v "^information_schema$" | \
           grep -v "^mysql$"`
./usr/bin/mysqldump --user=root --password= --databases $DATABASES | gzip > ./dump.sql.gz
 
faq/mysql-start-error-debian-sys-maint.txt · Dernière modification: 2010/08/20 18:30 par kerphi
Recent changes RSS feed Powered by PHP Hosted on Debian Driven by DokuWiki Deployed by Pkgi