Remettre le service mysql opérationnel à la suite d’une mise à jour

09.02.2009 | Mis à jour le 28.09.2009 | marcori
362 visiteurs  -  3 visiteurs aujourd'hui  -  Aucun commentaire

A la suite d’une mise à jour via apt, j’ai droit à un joli message d’erreur : Access denied for user ’debian-sys-maint’@’localhost’

Comment remettre debout mon service mysql ?

En fait, assez simplement. Le tout est de procéder avec méthodes...

En premier lieu, recherchez tous vos processus mysql et en tant qu’utilisateur root, tuez les tous ! Recherchez vos processus par un ps -ef | grep mysql...

Dès lors que plus aucun processus mysql ne fonctionne, vous allez lancer mysql dans un mode particulier :


# mysqld --safe-mode
InnoDB: Database was not shut down normally!
InnoDB: Starting crash recovery.
InnoDB: Reading tablespace information from the .ibd files...
InnoDB: Restoring possible half-written data pages from the doublewrite
InnoDB: buffer...

Suivi d’un tas d’inepties, et surtout sans que vous n’ayez plus la main sur votre shell. CX’est normal, nous avons "oublié" de lancer mysqld en le détachant du processus shell courant...

Attention, si la première commande ne fonctionne pas plus, utilisez celle-çi :


# mysqld --skip-grant-tables --skip-networking

Donc, ouvrez une nouvelle session SSH, ou un nouveau terminal, puis affichez le contenu du fichier /etc/mysql/debian.cnf :


# cat /etc/mysql/debian.cnf
[client]
host     = localhost
user     = debian-sys-maint
password = 56RN7ekd409X2rVO
socket   = /var/run/mysqld/mysqld.sock
[mysql_upgrade]
user     = debian-sys-maint
password = 56RN7ekd409X2rVO
socket   = /var/run/mysqld/mysqld.sock
basedir  = /usr

Dans ce fichier, repérez bien la ligne contenant le mot de passe ! Il s’agit ici d’un exemple et ne correspond probablement pas au votre ;

A présent, connectez vous sur votre service mysql :


# mysql -u root mysql

Puis mettez à jour le mot de passe :


mysql> UPDATE user SET Password=PASSWORD('56RN7ekd409X2rVO') WHERE Host='localhost' AND User='debian-sys-maint';
Query OK, 0 rows affected (0.00 sec)
Rows matched: 1  Changed: 0  Warnings: 0

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

Voilà, vous pouvez vous déconnecter de la base de données, puis invoquer le script init d’arrêt du moteur mysql :


# /etc/init.d/mysql stop

Constatez que dans l’autre session SSH ou sur l’autre terminal, la commande qui permettait de lancer mysqld en mode safe est terminée. Vous pouvez relancer mysql normalement via le script d’init.

Poster un nouveau commentaire


Modération de ce forum :

Pour participer à ce forum, vous devez vous enregistrer au préalable. Merci d'indiquer ci-dessous l'identifiant personnel qui vous a été fourni. Si vous n'êtes pas enregistré, vous devez vous inscrire.


[s'inscrire] [mot de passe oublié ?]

Derniers Commentaires

Articles les plus consultés

Téléchargez Firefox !

Libricks.org est motorisé par le logiciel libre Spip 1.8.3 associé au squelette graphique BliP 0.91

16 rubriques ... 32 articles ... 20 commentaires ... 28 sites référencés ... 108 visiteurs par jour (125769 au total)

Haut de page | XHTML 1.0 | CSS 2