Tengo una solución!
Al restablecer la contraseña de root en el paso 2), también cambie el complemento de autenticación a 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;
¡Esto me permitió iniciar sesión con éxito!
Solución de código completo
1. ejecutar comandos bash
1. Primero, ejecuta estos comandos 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. luego ejecute los comandos mysql => copie y pegue esto en 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. ejecutar más comandos 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 del zócalo (de sus comentarios)
Cuando ve un error de socket , una comunidad vino con 2 posibles soluciones:
sudo mkdir -p /var/run/mysqld; sudo chown mysql /var/run/mysqld
sudo mysqld_safe --skip-grant-tables &
(gracias a @Cerin)
O
mkdir -p /var/run/mysqld && chown mysql:mysql /var/run/mysqld
(gracias a @Peter Dvukhrechensky)
Caminos ciegos y posibles errores de borde
Use 127.0.0.1 en lugar de localhost
mysql -uroot # "-hlocalhost" is default
Puede provocar un "archivo faltante" o un error slt.
mysql -uroot -h127.0.0.1
Funciona mejor
Omitir el problema del socket
He encontrado muchas formas de crear un mysqld.sock
archivo, cambiar los derechos de acceso o vincularlo. No era el problema después de todo.
Salta el my.cnf
archivo
El problema tampoco estaba allí. Si no está seguro, esto podría ayudarlo .