Ajout doc sur les spécificité de debian 11 pour l'user sql root et debian-sys-main

This commit is contained in:
emorino 2022-08-03 11:13:29 +02:00
parent f0d6bc15f0
commit 5c0cc0bd34

View file

@ -12,13 +12,13 @@ title: Howto MySQL : installation et utilisation courante.
## Installation ## Installation
Sous Debian 9, nous installons MariaDB : Sous Debian 11, nous installons MariaDB :
~~~ ~~~
# apt install mariadb-server mariadb-client libconfig-inifiles-perl # apt install mariadb-server mariadb-client libconfig-inifiles-perl
$ mysql --version $ 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 : > *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 > 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. 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
En laissant un mot de passe vide, on peut se connecter sans mot de passe :
On mets donc en place le `.my.cnf` suivant dans /root/ :
~~~ ~~~
$ mysql -u root [client]
Welcome to the MariaDB monitor. Commands end with ; or \g. user = root
Your MariaDB connection id is 18348 socket = /run/mysqld/mysqld.sock
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)]>
~~~ ~~~
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 } ~~~{ .sql }
mysql> GRANT ALL PRIVILEGES ON *.* TO adminmysql@localhost IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION; 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 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é.
(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é !
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. 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.