J'ai une solution !
Lors de la réinitialisation du mot de passe root à l'étape 2), remplacez également le plug-in d'authentification par mysql_native_password
:
use mysql;
update user set authentication_string=PASSWORD("") where User='root';
update user set plugin="mysql_native_password" where User='root'; # THIS LINE
flush privileges;
quit;
Cela m'a permis de me connecter avec succès !
Solution de code complet
1. exécuter les commandes bash
1. d'abord, exécutez ces commandes bash
sudo /etc/init.d/mysql stop # stop mysql service
sudo mysqld_safe --skip-grant-tables & # start mysql without password
# enter -> go
mysql -uroot # connect to mysql
2. puis exécutez les commandes mysql => copiez-collez ceci manuellement dans cli
use mysql; # use mysql table
update user set authentication_string=PASSWORD("") where User='root'; # update password to nothing
update user set plugin="mysql_native_password" where User='root'; # set password resolving to default mechanism for root user
flush privileges;
quit;
3. exécuter plus de commandes bash
sudo /etc/init.d/mysql stop
sudo /etc/init.d/mysql start # reset mysql
# try login to database, just press enter at password prompt because your password is now blank
mysql -u root -p
4. Problème de socket (d'après vos commentaires)
Lorsque vous voyez un socket erreur, une communauté est venue avec 2 solutions possibles :
sudo mkdir -p /var/run/mysqld; sudo chown mysql /var/run/mysqld
sudo mysqld_safe --skip-grant-tables &
(merci à @Cerin)
Ou
mkdir -p /var/run/mysqld && chown mysql:mysql /var/run/mysqld
(merci à @Peter Dvukhrechensky)
Chemins aveugles et erreurs de bord possibles
Utilisez 127.0.0.1 au lieu de localhost
mysql -uroot # "-hlocalhost" is default
Peut entraîner un "fichier manquant" ou une erreur slt.
mysql -uroot -h127.0.0.1
Fonctionne mieux.
Ignorer le problème de socket
J'ai trouvé de nombreuses façons de créer mysqld.sock
fichier, modifiez les droits d'accès ou créez un lien symbolique. Ce n'était pas le problème après tout.
Ignorer le my.cnf
fichier
Le problème n'était pas non plus là. Si vous n'êtes pas sûr, cela pourrait vous aider .