Autoriser l'accès root mysql

Modérateurs : TEAM THE C@TZ, MODERATEURS

N4T0R4
TEAM THE C@TZ
TEAM THE C@TZ
Messages : 30
Enregistré le : dim. 28 juil. 2019 09:36

Autoriser l'accès root mysql

Message non lu par N4T0R4 »

use mysql;

Voir le plugin utilisé pour l'utilisateur root ds la vue « mysql »

select User,Password,Plugin from user where User='root';

Cette requête affiche les infos suivantes:

User | Password | Plugin
root | XYZ | unix_socket

On remarque que par défaut l'utilisateur root est en authentification « unix_socket« .
Cela signifie qu'il utilise le mode de connexion des droits unix de l'utilisateur sous lequel mariaDB a été lancé.

En d'autres termes si vous êtes root sur votre terminal linux, vous êtes root aussi pour la connexion à mysql . Il n'y a pas de mot de passe demandé. (ceci est valable aussi si vous lancez la commande « sudo mysql -u root -p » )

Retour vers le futur
Petit disclaismer:
Les manips qui suivent engagent la sécurité de votre installation. Si des personnes ont jugé bon de modifier le mode d'authentification par défaut à mariaDB lors de son installation c'est qu'elles pensent que niveau sécurité c'est mieux.

Elles partent dans doute du principe que si le mot de passe Unix Root est compromis alors un mot de passe différent pour se connecter à mariaDB n'est que pur artifice.
Un mot de passe de moins à retenir. Avant si ce dernier était récupéré par un méchant hacker à capuche il pouvait faire plein de dégats sans avoir de compte unix privilégié.
Dernier avantage, la connexion à mariaDB se faisant automatiquement dès lors que l'on possède les droits sudo, cela enlève un niveau d'authentification et pour l'adminsys ca allège ses manip.
Mais pour les partisans du « c'était mieux avant » et des grognards comme moi qui n'aiment pas qu'on leur change leurs habitudes comme ça du jour au lendemain, la méthode qui suit est faite pour vous ??

Mettre un mot de passe à l'utilisateur root de mariadb:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('new_password');

Changer le mode unix socket en « mysql native_password »:
UPDATE user SET plugin='mysql_native_password' WHERE User='root';
flush privileges;

exit;

Test micro
mysql -u root -p

Répondre