Comment changer le mot de passe MariaDB pour l'utilisateur root et les utilisateurs réguliers
Mot de passe root MariaDB oublié ? Sans cela, vous ne pourrez pas gérer les utilisateurs, les bases de données ni effectuer des configurations critiques. Dans cet article, vous apprendrez non seulement à réinitialiser rapidement le mot de passe root MariaDB, mais aussi à réinitialiser le mot de passe des utilisateurs réguliers.
Pour MySQL, veuillez vous référer à notre guide séparé.
L'utilisateur root est l'administrateur principal de la base de données. Il a un accès complet à toutes les données et configurations. Si vous perdez ce mot de passe, vous ne pourrez pas modifier certains paramètres ni exécuter de commandes.
Toutes les opérations seront effectuées via la ligne de commande via SSH. Vous pouvez trouver des instructions détaillées sur la façon de vous connecter à votre serveur via SSH dans cet article.
Avant de continuer, vérifiez le contenu du fichier /root/.my.cnf. Souvent, il contient le mot de passe actuel de l'utilisateur root pour accéder à MariaDB.
Pour tester la connexion, utilisez la commande :
mysql -u root -p
Ensuite, saisissez le mot de passe du fichier .my.cnf.
Si le mot de passe ne fonctionne pas, suivez les instructions ci-dessous.
Réinitialisation du mot de passe
Dans la plupart des commandes ci-dessous, la commande mysql sera utilisée à la place de mariadb pour interagir avec le serveur MariaDB. C'est parce que, sur certains systèmes d'exploitation, comme les distributions basées sur RHEL (RockyLinux, AlmaLinux, etc.), la commande mariadb est indisponible. Au lieu de cela, la commande mysql est utilisée pour la compatibilité avec MySQL.
L'utilisation de la commande mysql offre une compatibilité universelle indépendamment de la distribution ou de l'implémentation du serveur.
Étape 1 : Arrêter MariaDB
Pour réinitialiser le mot de passe, arrêtez d'abord le serveur MariaDB. Entrez la commande suivante :
systemctl stop mariadb
Étape 2 : Redémarrer le serveur en mode sans échec
- Pour Debian et Ubuntu :
Assurez-vous que le répertoire à partir duquel MariaDB s'exécutera existe et qu'il a le propriétaire correct :
mkdir -p /var/run/mysqld/ && chown -R mysql: /var/run/mysqld/
Démarrez le serveur MariaDB sans contrôle d'accès :
mysqld_safe --skip-grant-tables --socket=/var/run/mysqld/mysqld.sock &
Si le serveur MariaDB démarre avec succès, vous verrez un message similaire à :
2024-11-28T23:50:19.298141Z mysqld_safe Démarrage du démon mariadb avec les bases de données de /var/lib/mysql
Pour continuer à travailler dans la ligne de commande, appuyez sur « Ctrl + C ».
- Pour CentOS/RockyLinux/AlmaLinux :
Démarrez le serveur MariaDB sans contrôle d'accès :
mysqld_safe --skip-grant-tables --socket=/var/lib/mysql/mysql.sock &
Pour continuer à travailler dans la ligne de commande, appuyez sur « Ctrl + C ».
Étape 3 : Connexion à MariaDB
- Pour Debian et Ubuntu :
mysql --socket=/var/run/mysqld/mysqld.sock
- Pour CentOS/RockyLinux/AlmaLinux :
mysql --socket=/var/lib/mysql/mysql.sock
Étape 4 : Réinitialiser le mot de passe
Exécutez les commandes suivantes séquentiellement :
FLUSH PRIVILEGES;
Pour un utilisateur local :
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword';
Pour un utilisateur réseau (s'il existe) :
ALTER USER 'root'@'%' IDENTIFIED BY 'NewPassword';
Ensuite :
FLUSH PRIVILEGES;
Remplacez NewPassword par votre nouveau mot de passe souhaité.
'user'@'localhost' — fait référence à un utilisateur local se connectant via socket ou localhost. 'user'@'%' fait référence à un utilisateur réseau ayant accès depuis n'importe quelle adresse IP.
Vous pouvez définir les mêmes mots de passe ou des mots de passe différents pour ces utilisateurs. Si l'utilisateur réseau n'existe pas, la commande @'%' entraînera une erreur.
Quittez MariaDB en utilisant la commande exit ou en appuyant sur « Ctrl + D ».
Étape 5 : Redémarrer MariaDB
Arrêtez le serveur MariaDB :
- Pour Debian et Ubuntu :
mysqladmin shutdown --socket=/var/run/mysqld/mysqld.sock -p
Ensuite, saisissez le mot de passe root précédemment défini.
- Pour CentOS/RockyLinux/AlmaLinux :
mysqladmin shutdown --socket=/var/lib/mysql/mysql.sock -p
Ensuite, saisissez le mot de passe root précédemment défini.
Démarrez MariaDB en mode normal :
systemctl start mariadb
Comment réinitialiser le mot de passe des utilisateurs réguliers
Si vous oubliez le mot de passe d'un utilisateur autre que root, l'approche est similaire :
- Connectez-vous au serveur MariaDB en tant que root :
mysql -u root -p
Entrez votre mot de passe root MariaDB.
- Exécutez la commande pour changer le mot de passe :
Pour un utilisateur local :
ALTER USER 'username'@'localhost' IDENTIFIED BY 'NewUserPassword';
Pour un utilisateur réseau (s'il existe) :
ALTER USER 'username'@'%' IDENTIFIED BY 'NewUserPassword';
Ensuite :
FLUSH PRIVILEGES;
Remplacez username par le nom d'utilisateur réel et NewUserPassword par votre nouveau mot de passe souhaité.
Quittez MariaDB en utilisant la commande exit ou en appuyant sur « Ctrl + D ».
Si nécessaire, vous pouvez lister tous les utilisateurs avec la requête suivante :
SELECT User, Host FROM mysql.user;
Comment se connecter à MariaDB localement sans entrer de mot de passe
Pour éviter de saisir manuellement le mot de passe à chaque fois que vous vous connectez à MariaDB depuis la ligne de commande sur votre serveur, vous pouvez le sauvegarder dans le fichier /root/.my.cnf. Ouvrez le fichier dans un éditeur de texte :
nano /root/.my.cnf
Ajoutez les lignes suivantes :
[client]
user = root
password = YourRootPassword
Remplacez YourRootPassword par votre mot de passe root réel.
Enregistrez le fichier en appuyant sur Ctrl + O, puis quittez l'éditeur de texte avec Ctrl + X.
Pour des raisons de sécurité, définissez des autorisations plus strictes sur le fichier .my.cnf :
chmod 600 /root/.my.cnf
Après cela, vous pouvez vous connecter en exécutant simplement la commande :
mysql -u root