MySQL trucs et astuces d'admin

Quelques petits trucs pour MySQL en vrac.

 

Changer le mot de passe root quand on l'a perdu

On se retrouve des fois avec des serveurs sur lesquels on a pas les mot de passe des services. A partir du moment ou vous avez un accès root sur la machine vous pouvez faire ce que vous voulez. Notement ici changer le mot de passe root de MySQL.

ATTENTION :

  1. il faut arrêter le serveur MySQL et donc arrêter les applications qui l'utilisent
  2. si des applications utilisent le compte root de MySQL pour accéder à une base il faudra modifier les paramètres de l'application (NB : c'est le moment d'en profiter pour changer l'utilisateur et ne pas utiliser root)

Première chose, on arrête le serveur MySQL

# /etc/init.d/mysql stop

 

Ensuite on redémarre le serveur en esquivant la phase d'authentification et en désactivant le réseau

# mysqld --skip-grant-tables --skip-networking --console --socket=/tmp/maintenance.sock & 

 

On peut maintenant se connecter à MySQL en tapant simplement

# mysql --socket=/tmp/maintenance.sock
mysql> flush privileges ;


Le flush privileges indique au serveur de forcer la vérification des utilisateurs, hôtes et mots de passe le temps de la maintenance.

 

On change le mot de passe

mysql> UPDATE mysql.user SET password=PASSWORD('nouveaumotdepasse') \
WHERE user="root";
mysql> flush privileges ;

 

Tuer le processus et redémarrer proprement le serveur mysql.

 

 

mysqldump "File '*.MYD' not found (Errcode: 24) when using LOCK TABLES

Un joli problème qui bloque le dump de certaines bases. Je l'ai rencontré notement sur une base Dokeos.

En utilisant la commande perror (que je viens de découvrir), on peut avoir une explication rapide des codes d'erreur du système et de MySQL :

# perror 24
OS error code  24:  Too many open files

Il existe deux possibilités pour fixer ce problème, soit augmenter la variable open_files_limit de MySQL si l'erreur se produit lors du dump et lors d'opérations standards de MySQL ; soit utiliser l'option –single-transactions de mysqldump :

# mysqldump -u root -p --single-transaction database > dump_database.sql

 

 

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

L'utilisateur debian-sys-maint est nécessaire pour les opérations de démarrage et arrêt du serveur MySQL sous Debian. Pour corriger ce problème il faut changer le mot de passe de cet utilisateur.

Le mot de passe doit être référencé dans le fichier /etc/mysql/debian.cnf :

# Automatically generated for Debian scripts. DO NOT TOUCH!
[client]
host     = localhost
user     = debian-sys-maint
password = ******************
socket   = /var/run/mysqld/mysqld.sock
[mysql_upgrade]
user     = debian-sys-maint
password = *******************
socket   = /var/run/mysqld/mysqld.sock
basedir  = /usr

Si vous avez encore un accès avec un utilisateur root, connectez vous et faites ceci en utilisant le mot de passe du fichier :

# grant all privileges on *.* to 'debian-sys-maint'@'localhost' identified by 'passe' with grant option;

Puis redémarrer MySQL

Laisser un commentaire


NOTE - Vous pouvez utiliser les éléments et attributs HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <font color="" face="" size=""> <span style="">