Pierre Porcheret




Voir la liste des articles



12 08 2015


Quand MySQL boude Debian

Il arrive qu'une panne de courant ai décidé de vous plomber votre serveur. Vous relancer votre base et la....ça ne marche plus. Adieu base de données remplies avec amour et heures perdues.

/etc/init.d/mysql start

[ ok ] Starting MySQL database server: mysqld ..

[info] Checking for tables which need an upgrade, are corrupt or were

not closed cleanly..

ERROR 1045 (28000): Access denied for user 'debian-sys-maint'@'localhost' (using password: YES)

Dans ce cas, soit on prend le PC et on tente une oeuvre sculturale en le lançant contre le mur, soit on tente de le réparer.

L'opération est en fait assez simple. Cela arrive lorsque le PC se coupe alors que des échanges sont en cours avec la base.

La coupure peut affecter les connexions en cours et les utilisateurs. Ici, l'utilisateur Debian, n'a plus le droit de faire des actions sur votre MySQL.

 

Pour parlier a cela, il faut redonner son GRANT (le roi de la base) aux tables.

Récupération de l'identification de Debian

nano /etc/mysql/debian.cnf (ou vi pour les intimes)
On trouve alors les informations suivantes :
 
# Automatically generated for Debian scripts. DO NOT TOUCH!
[client]
host     = localhost
user     = debian-sys-maint
password = jesuislemotdepasse
socket   = /var/run/mysqld/mysqld.sock
[mysql_upgrade]
host     = localhost
user     = debian-sys-maint
password = jesuislemotdepasse
socket   = /var/run/mysqld/mysqld.sock
basedir  = /usr
 
On se connecte a mysql avec le user root :
 
mysql -u root -pmotdepasseroot
Et on redonne les droits :
 
GRANT ALL PRIVILEGES ON *.* TO 'debian-sys-maint'@'localhost' IDENTIFIED BY 'jesuislemotdepasse';

FLUSH PRIVILEGES;

FLUSH HOSTS;
 
Il faudra ensuite passe un petit moment á redonner les bon privilèges aux utilisateurs et bases.

categorie :