29 abril 2024

Cambiando la contraseña de MySQL perdida

Bueno, después de mucho buscar y que ninguna de las publicaciones bien intencionadas funcionaran para mí, en un Ubuntu 20.04-6 al final encontre el modo de reestablecer el password de root en MySQL.

Sencillamente resulta que la ruta del archivo de socket predeterminado de mysqld no existe cuando mysqld no se está ejecutando y mysqld_safe no la crea directamente. Entonces, la respuesta es crear el directorio de socket y también establecer la propiedad para el usuario de Unix mysql
Perversamente sencillo

Detener el servicio de MySQL. Esto lo puedes hacer con uno de los siguientes comandos:
vampii@lomaw:[~]$ sudo systemctl stop mysql.service
o sino:
vampii@lomaw:[~]$ sudo service mysqld stop
o bien:
vampii@lomaw:[~]$ sudo /etc/init.d/mysqld stop
o quizás
vampii@lomaw:[~]$ sudo mysql.server stop


Creamos el directorio de socket
vampii@lomaw:[~]$ sudo mkdir /var/run/mysqld

Establecemos la propiedad para el usuario de Unix mysql
vampii@lomaw:[~]$ sudo chown mysql:mysql /var/run/mysqld

Este comando, con la opción –skip-grant-tables, iniciará MySQL sin emplear el sistema de privilegios (sin la necesidad de un password además de otorgar todos los privilegios a la sesión), por lo que tendrás acceso ilimitado a todas las bases de datos.La opción –skip-networking hará que se dejen de escuchar conexiones TCP/IP externas, lo que evitará problemas externos durante el cambio. La opción --socket=/var/run/mysqld/mysqld.sock define el archivo del socket a utilizar.

vampii@lomaw:[~]$ sudo mysqld_safe --skip-grant-tables --socket=/var/run/mysqld/mysqld.sock --skip-networkin &

Ingresamos con el cliente MySQL y el usuario root (sin password)
vampii@lomaw:[~]$ mysql -u root
A veces vamos a tener que entrar asi
vampii@lomaw:[~]$ mysql -u root -p

Una vez dentro del servidor, debemos de trabajar con la base de datos MySQL
>USE mysql;

Con el cambio de base de datos haremos la actualización.
>UPDATE user SET password=PASSWORD('tu_password') WHERE user='root';
Donde tu_password se cambia entre las comillas simples por la password de mysql
Si la actualización fue exitosa debemos de salir del servidor
>FLUSH PRIVILEGES;
>exit


El paso final es detener el servidor en modo seguro.
vampii@lomaw:[~]$ sudo mysqladmin shutdown

Iniciamos el servidor como te costumbre y nos autenticamos, la contraseña ya estará funcionando.
vampii@lomaw:[~]$ sudo systemctl start mysql.service
o
vampii@lomaw:[~]$ sudo service mysqld restart
o bien:
vampii@lomaw:[~]$ sudo /etc/init.d/mysqld restart

Una vez realizados todos los pasos anteriores, ya modificaste la contraseña del usuario "root" de MySQL. El comando para realizar el cambio de contraseña se puede emplear obviamente para los usuarios que requieras, sin embargo es necesario iniciar MySQL sin el sistema de privilegios para realizar el cambio del usuario "root" si "perdiste" la(tu) contraseña.

Que te diviertas!

No hay comentarios:

Publicar un comentario