Ho una soluzione!
Quando reimposta la password di root al passaggio 2), cambia anche il plug-in di autenticazione in 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;
Questo mi ha permesso di accedere con successo!
Soluzione a codice completo
1. esegui i comandi bash
1. per prima cosa, esegui questi comandi 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. quindi esegui i comandi mysql => copia incolla questo su cli manualmente
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. esegui più comandi 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. Problema socket (dai tuoi commenti)
Quando vedi una presa errore, una community è arrivata con 2 possibili soluzioni:
sudo mkdir -p /var/run/mysqld; sudo chown mysql /var/run/mysqld
sudo mysqld_safe --skip-grant-tables &
(grazie a @Cerin)
Oppure
mkdir -p /var/run/mysqld && chown mysql:mysql /var/run/mysqld
(grazie a @Peter Dvukhrechensky)
Percorsi ciechi e possibili errori di bordo
Usa 127.0.0.1 invece di localhost
mysql -uroot # "-hlocalhost" is default
Può portare a "file mancante" o errore SLT.
mysql -uroot -h127.0.0.1
Funziona meglio.
Salta il problema della presa
Ho trovato molti modi per creare mysqld.sock
file, modificare i diritti di accesso o collegarlo simbolicamente. Dopotutto non era il problema.
Salta il my.cnf
file
Anche il problema non c'era. Se non sei sicuro, questo potrebbe aiutarti .