Si vous exécutez simplement la commande mysql sous l'utilisateur root, l'accès vous sera accordé sans mot de passe, car l'authentification par socket est activée pour [email protected]
Ce guide est trompeur.
La seule façon de définir un mot de passe est de passer à l'authentification native comme :
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'test';
Dans ma recherche insensée d'une solution, j'ai jeté un coup d'œil à /var/log/mysqld.log
et j'ai trouvé cette ligne :
[Note] Un mot de passe temporaire est généré pour [email protected] :abc123
On dirait que mysql 5.7+ génère un mot de passe aléatoire lors de l'installation et est invité dans ce fichier.
Suivez les étapes ci-dessous pour réinitialiser le mot de passe :
$ sudo systemctl start mysqld
Réinitialisez le mot de passe racine du serveur MySQL.
$sudo grep 'temporary password' /var/log/mysqld.log
Sortez quelque chose comme :
10.744785Z 1 [Note] A temporary password is generated for [email protected]: o!5y,oJGALQa
Utilisez le mot de passe ci-dessus lors de la réinitialisation mysql_secure_installation processus.
$ sudo mysql_secure_installation
Securing the MySQL server deployment.
Enter password for user root:
Vous avez réinitialisé avec succès le mot de passe root du serveur MySQL. Utilisez la commande ci-dessous pour vérifier si le serveur MySQL se connecte ou non.
$ mysql -u root -p
Voir mon article :Installer la dernière version de MySQL 5.7 sur RHEL/Centos 7