MYSQL 5.7 en debian 16.04 o 18.04
Si se requiere recuperar el acceso a mysql por que no se cuenta con la contraseña del usuario root, se deben realizar los siguientes pasos.
# abrir terminal y parar servicio de MySQL
sudo service mysql stop
# Crear directorio para el lock del servicio Mysql
sudo mkdir /var/run/mysqld
# dar permisos a mysql del directorio
sudo chown mysql: /var/run/mysqld
# Iniciar Mysql en modo seguro, localmente.
sudo mysqld_safe --skip-grant-tables --skip-networking &
# abrir otra terminal e iniciar sesión sin contraseña
sudo mysql -u root mysql
Ejecutar la siguiente sentencia SQL para actualizar la contraseña. NUEVACONTRASEÑA será la nueva contraseña, y en host en mi caso pondré localhost, ejecutar la primera sentencia y despues el Exit;
UPDATE mysql.user SET authentication_string=PASSWORD('NUEVOPASSWORD'), plugin='mysql_native_password' WHERE User='root' AND Host='localhost';
EXIT;
el resultado deberá mostrarnos un mensaje donde confirma que se afectó una fila
Query OK, 1 row affected, 1 warning (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 1
Finalmente solo bastará con
# En el terminarl detener la instancia previamente iniciada sudo mysqladmin -S /var/run/mysqld/mysqld.sock shutdown # Iniciar mysql de forma normal. sudo service mysql start # Iniciar sesión en Mysql con la nueva contraseña sudo mysql -u root -p