Ajouter ou réparer l'utilisateur debian-sys-maint pour MariaDB/MySQL
L'utilisateur debian-sys-maint est créé par Debian pour lui permettre d'effectuer des tâches de maintenance sur le serveur MariaDB/MySQL. En principe, cet utilisateur est automatiquement créé lors de l'installation des paquets MariaDB/MySQL. Il arrive parfois lors d'une mise à jour ou comme moi lors d'une installation manuelle de mariadb-server que le mot de passe de cet utilisateur est modifié ou simplement, debian-sys-maint n'est pas créé. Voici un petit tuto pour vous expliquer comment le créer ou le modifier pour que vos tâches de maintenance effectués par Debian sur votre serveur MariaDB/MySQL se fassent sans soucis et surtout sans erreur.
Pré-requis
Ce correctif a été testé sur Debian 9 (Stretch), il fonctionne aussi sur Debian 10 (Buster). Toutes les commandes suivantes s'exécutent dans un terminal en ligne de commande.
Je parle principalement de MariaDB, mais si vous utilisez MySQL, les fichiers et les commandes sont les mêmes !
Le fichier /etc/mysql/debian.cnf
Lors de l'installation d'un serveur MariaDB ou MySQL, Debian crée un mot de passe aléatoire pour l’utilisateur debian-sys-maint, et inscrit ce mot de passe dans le fichier de configuration /etc/mysql/debian.cnf :
# Automatically generated for Debian scripts. DO NOT TOUCH! [client] host = localhost user = debian-sys-maint password = mot-de-passe socket = /var/run/mysqld/mysqld.sock [mysql_upgrade] host = localhost user = debian-sys-maint password = mot-de-passe socket = /var/run/mysqld/mysqld.sock basedir = /usr
Il est important de vérifier qu'aux lignes user, c'est bien debian-sys-maint qui y est bien présent.
Petit test pour vérifier si debian-sys-maint est bien paramétré
En premier lieu, il convient de vérifier si l'utilisateur debian-sys-maint est bien installé sur votre système Debian. Pour cela nous utilisons cette petite ligne de commande :
mysql -u debian-sys-maint -p"$(cat /etc/mysql/debian.cnf | grep password | head -n 1 | awk -F= '{ gsub(/[ \t]+/, "", $2); print $2 }')"
Si vous obtenez un message du genre :
ERROR 1045 (28000): Access denied for user 'debian-sys-maint'@'localhost' (using password: YES)
il est clair que vous avez un problème de paramétrage avec votre utilisateur debian-sys-maint.
Création / modification de debian-sys-maint
Nous allons, dans un premier temps, vérifier si l'utilisateur debian-sys-maint est présent dans le système. Pour cela, nous nous connectons au serveur MariaDB / MySQL via une ligne de commande
mysql -u root -h localhost -p
Cette commande vous demandera le mot de passe root, entrez le mot de passe et appuyez sur Entrée
Dans les dernières version de Debian/Ubuntu, le mot de passe n’est pas nécessaire lorsque l’on est root sur la machine et que l’on veut se connecter avec l’utilisateur root de MySQL. L’argument -p n’est donc pas nécessaire.
Savoir si l'utilisateur debian-sys-maint existe
Pour vérifier si l'utilisateur debian-sys-maint est bien présent, nous allons simplement lister les utilisateurs enregistrés avec la ligne de commande suivante :
SELECT user,host FROM mysql.user;
ensuite, nous consultons le tableau retourné par le serveur MySQL qui devrai ressembler à ceci :
+------------------+-----------+ | user | host | +------------------+-----------+ | user1 | % | | user2 | % | | user3 | % | | root | 127.0.0.1 | | user4 | localhost | | debian-sys-maint | localhost | | user5 | localhost | | user6 | localhost | | user7 | localhost | | root | localhost | +------------------+-----------+ 10 rows in set (0.00 sec)
Si debian-sys-maint est présent dans la liste vous pouvez passer directement à la section "Mise à jour du mot de passe".
Création de l'utilisateur debian-sys-maint
Comme l'utilisateur debian-sys-maint n'existe pas, nous allons le créer avec la commande MySQL suivante qui créera en même temps le nouveau mot de passe :
GRANT ALL PRIVILEGES ON *.* TO 'debian-sys-maint'@'localhost' IDENTIFIED BY 'nouveau_mot_de_passe'; FLUSH PRIVILEGES;
Modification du mot de passe de l'utilisateur debian-sys-maint
Si l'utilisateur est présent dans le système, nous allons simplement attribuer un nouveau mot de passe à l'utilisateur debian-sys-maint avec la commande MySQL suivante :
SET PASSWORD [FOR 'debian-sys-maint'@'localhost'] = PASSWORD('nouveau_mot_de_passe');
Couper la connexion au serveur MySQL
Pour quitter la connexion au serveur MySQL et revenir au prompt classique de votre terminal, rien de plus simple, c'est la commande suivante :
exit
Mettre à jour le fichier /etc/mysql/debian.cnf
Maintenant nous allons mettre à jour les données contenues dans le fichier /etc/mysql/debian.cnf en éditant celui-ci avec un éditeur de texte genre nano ou vim et nous allons modifier les mots de passe :
# Automatically generated for Debian scripts. DO NOT TOUCH! [client] host = localhost user = debian-sys-maint password = nouveau_mot_de_passe socket = /var/run/mysqld/mysqld.sock [mysql_upgrade] host = localhost user = debian-sys-maint password = nouveau_mot_de_passe socket = /var/run/mysqld/mysqld.sock basedir = /usr
Notes de version
- [28/05/2020] : Création de l'article
Auteurs et sources
- Auteur : montuy337513
Navigation
Autres liens rapides pouvant vous intéresser