From 5c0cc0bd340f43a2824d71c872422e9c1404f7fe Mon Sep 17 00:00:00 2001 From: emorino Date: Wed, 3 Aug 2022 11:13:29 +0200 Subject: [PATCH] =?UTF-8?q?Ajout=20doc=20sur=20les=20sp=C3=A9cificit=C3=A9?= =?UTF-8?q?=20de=20debian=2011=20pour=20l'user=20sql=20root=20et=20debian-?= =?UTF-8?q?sys-main?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- HowtoMySQL.md | 50 ++++++++++---------------------------------------- 1 file changed, 10 insertions(+), 40 deletions(-) diff --git a/HowtoMySQL.md b/HowtoMySQL.md index 6086abb8..aad9ec8f 100644 --- a/HowtoMySQL.md +++ b/HowtoMySQL.md @@ -12,13 +12,13 @@ title: Howto MySQL : installation et utilisation courante. ## Installation -Sous Debian 9, nous installons MariaDB : +Sous Debian 11, nous installons MariaDB : ~~~ # apt install mariadb-server mariadb-client libconfig-inifiles-perl $ mysql --version -mysql Ver 15.1 Distrib 10.1.26-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2 +mysql Ver 15.1 Distrib 10.5.15-MariaDB, for debian-linux-gnu (x86_64) using EditLine wrapper ~~~ > *Note* : Sous Debian 8, nous installons la version libre de MySQL distribuée par Oracle : @@ -39,53 +39,23 @@ mysql Ver 15.1 Distrib 10.1.26-MariaDB, for debian-linux-gnu (x86_64) using rea > mysql Ver 15.1 Distrib 10.0.28-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2 > ~~~ -L'installation sous Debian demande un mot de passe pour le superutilisateur (par défaut *root*) de MySQL. -En laissant un mot de passe vide, on peut se connecter sans mot de passe : +L'installation sous Debian 11 ne permet plus a l'utilisateur SQL root de se connecter avec un mot de passe, mais seulement via la socket + +On mets donc en place le `.my.cnf` suivant dans /root/ : ~~~ -$ mysql -u root -Welcome to the MariaDB monitor. Commands end with ; or \g. -Your MariaDB connection id is 18348 -Server version: 10.1.26-MariaDB-0+deb9u1 Debian 9.1 - -Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others. - -Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. - -MariaDB [(none)]> +[client] +user = root +socket = /run/mysqld/mysqld.sock ~~~ -Il faut ensuite mettre un mot de passe pour le superutilisateur de MySQL, on conseille d'utiliser l'identifiant *adminmysql* car *root* peut prêter à confusion : +On peux créer un utilisateur adminmysql autre que root comme ceci : ~~~{ .sql } mysql> GRANT ALL PRIVILEGES ON *.* TO adminmysql@localhost IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION; -mysql> DELETE FROM mysql.user where User='root'; ~~~ -Au niveau sécurité, le mot de passe est généré à l'installation -(stocké dans `/etc/mysql/debian.cnf` lisible que par *root*) par la commande : - -~~~ -perl -e 'print map{("a".."z","A".."Z",0..9)[int(rand(62))]}(1..16)' -~~~ - -Enfin, on peut utiliser un fichier `.my.cnf` pour conserver l'identifiant et le mot de passe. -Par exemple pour *root*, dans `/root/.my.cnf` : - -~~~{.ini} -[client] -user = adminmysql -password = PASSWORD -~~~ - -Pour changer le mot de passe, on fera simplement : - -~~~ -# mysqladmin password PASSWORD -~~~ - -On notera sous Debian la présence d'un utilisateur *debian-sys-maint* qui sert à certains scripts Debian : -il ne doit pas être supprimé ! +En Debian 11, il n'y a plus d'utilisateur SQL `debian-sys-main`, le fichier `/etc/mysql/debian.cnf` est toujours créé mais est obsolète et ne doit plus être utilisé. Sous Debian 8, avec MariaDB 10.0, l'utilisateur *debian-sys-maint* **n'a pas le privilège GRANT**. Il est donc impossible de créer d'autres utilisateurs en étant connecté avec ce compte.