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.
![](https://www1.zonewebmaster.eu/lib/plugins/howhard/images/style2/2.png)
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