Un mémo sur comment réinitialiser le mot de passe root oublié du serveur de base de données MariaDB ou MySQL.
Méthode avec systemd
- Redémarrer le service MySQL en mode
--skip-grant-tables
:
systemctl set-environment MYSQLD_OPTS="--skip-grant-tables" systemctl restart mariadb
Plus besoin de mot de passe dans ce mode pour se connecter au serveur !
mysql_secure_installation
- Autres méthodes à l’aide d’instructions SQL :
- Se connecter au serveur avec la commande
mysql
:
mysql
- Se connecter au serveur avec la commande
- Ensuite, plusieurs façons de faire pour changer le mot de passe :
- Une première méthode :
SET PASSWORD FOR root@'localhost'=PASSWORD('mon_nouveau_mot-de_passe');
- ou :
UPDATE mysql.user SET password=PASSWORD('mon_nouveau_mot_de_passe') WHERE User='root' AND Host = 'localhost'; FLUSH PRIVILEGES;
GRANT ALL PRIVILEGES ON *.* TO root@'localhost' IDENTIFIED BY 'mon_nouveau_mot_de_passe';
--skip-grant-tables
:systemctl unset-environment MYSQLD_OPTS systemctl restart mariadb
source : http://www.dsfc.net/logiciel-libre/mysql-logiciel-libre/perte-mot-de-passe-root-mysql-mariadb/
Ancienne méthode
Toutes les étapes sont éxécutées en tant que root.
Réinitialiser le mot de passe root de MariaDB ou MySql serveur
- Etape 1
Arréter le service MySql:
service mysql stop
ou
service mysqld stop
Démarrer le serveur MySql sans aucun mot de passe:
mysqld_safe --skip-grant-tables &
Se connecter à Mysql
mysql -u root
Choisir la base de donnée mysql, mettre à jour le mot de passe root puis recharger les prévilèges:
use mysql; update user set password=PASSWORD("NEW-ROOT-PASSWORD") where User='root'; flush privileges; quit
Redémarrer le serveur MySql:
service mysql restart
Ou
service mysqld restart
A ce stade il est de nouveau possible de se connecter sur le serveur MySql avec le nouveau mot de passe root.
Actuce sous Debian et Ubuntu!
Sous les distributions Debian et Ubuntu, il existe un compte d’administrateur de secour: debian-sys-maint.
Le mot de passe associé à ce compte se trouve dans le fichier /etc/mysql/debian.cnf.
Bonjour,
pouvoir changer le mot de passe, c’est bien, mais quel est le nom d’utilisateur par défaut de Mariadb ?
Le mot de passe m’a été demandé à l’instal, mais le nom d’utilisateur, je ne sais pas du tout, j’ai essayé avec mon nom tel qu’il apparait sur l’ordi, mais pas moyen …
J’ai Ubuntu 14 04 sur un portable récent, de ce fait je ne peux pas utiliser Laurux
Est ce que quelqu’un peut m’aider
Merci d’avance
Gilbert
Le login par défaut est root, c’est même indiqué à l’étape 4 :
[code lang= »shell »]
update user set password=PASSWORD("NEW-ROOT-PASSWORD") where User=’root’;
[/code]
Merci, je croyais que « root » était un terme générique qu’il fallait remplacer par le nom d’un utilisateur …
Il me manque des bases …
nom d’utlisateur n’apparaît pas dans le fichier sudoers. Cet événement sera signalé.
Changement du fait du passage à systemd dans la gestion des services et avec le script mysql_secure_installation
-> http://www.dsfc.net/logiciel-libre/mysql-logiciel-libre/perte-mot-de-passe-root-mysql-mariadb/
Merci Denis ;-)
Pas de quoi !
Cela fait une semaine que je cherche car mysql à l’installation ne demande plus de mot de passe sur RPI3. Donc impossible pour moi de configurer après mysql pour mythtv.
Vraiment un grand merci.
P.S.1 : l’astuce pour Debian et Ubuntu n’est pas possible sur raspbian. Le fichier n’existe pas ;-)
P.S.2 : le tuto de mysql ne fonctionne pas non plus car le fichier qu’on doit effecer n’existe pas : https://dev.mysql.com/doc/refman/8.0/en/resetting-permissions.html
Cela ne fonctionne pas…
Error: Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’ (2)
Bonjour,
Merci pour ce précieux tuto, il vient de me faire gagner une bonne journée de recherches