J'ai une solution!
Lors de la réinitialisation du mot de passe root à l'étape 2), changez également le plug-in d'authentification en 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écutez 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écutez 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 une erreur de socket , 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 conduire à 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 un mysqld.sock
fichier, de modifier les droits d'accès ou de créer un lien symbolique. Ce n'était pas le problème après tout.
Passer le my.cnf
fichier
Le problème n'était pas non plus là. Si vous n'êtes pas sûr, cela pourrait vous aider .