16
0
Fork 0

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

master
emorino 2 months ago
parent f0d6bc15f0
commit 5c0cc0bd34
  1. 50
      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
~~~
$ 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)]>
~~~
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 :
~~~{ .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 :
On mets donc en place le `.my.cnf` suivant dans /root/ :
~~~
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
user = root
socket = /run/mysqld/mysqld.sock
~~~
Pour changer le mot de passe, on fera simplement :
On peux créer un utilisateur adminmysql autre que root comme ceci :
~~~
# mysqladmin password PASSWORD
~~~{ .sql }
mysql> GRANT ALL PRIVILEGES ON *.* TO adminmysql@localhost IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;
~~~
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.

Loading…
Cancel
Save