Restablecer la contraseña raíz de MySQL en Ubuntu
-
Restablecer la contraseña
root
de MySQL olvidada en Ubuntu -
Solucione el error al configurar una contraseña
raíz
de MySQL conmysql_secure_installation
Este tutorial considera dos escenarios en los que necesitamos restablecer la contraseña root
de MySQL en Ubuntu. Primero, cuando olvidamos la contraseña root
y queremos restablecerla; segundo, cuando no podemos establecer una contraseña root
con mysql_secure_installation
.
Las instrucciones dadas en este tutorial han sido probadas usando MySQL Version 8.0.29 y Ubuntu 20.04.4. Veamos la solución para ambos escenarios a continuación.
superusuario
o alguna otra forma de acceder con los privilegios de raíz
.Restablecer la contraseña root
de MySQL olvidada en Ubuntu
Mantener una contraseña segura para una base de datos es correcto, pero recordarla puede ser difícil. ¿Qué sucede si olvida la contraseña root
de MySQL?
¡No entre en pánico! Muchos de nosotros enfrentamos este problema, pero hay una manera de actualizarlo.
-
Verifique su versión de MySQL usando el siguiente comando
$ mysql --version
-
Apague el servidor MySQL.
De esta forma, podemos reiniciarlo fácilmente en modo seguro para restablecer la contraseña
root
. Tendrás que introducir la contraseñaroot
del sistema, que en nuestro caso es Ubuntu. -
Para iniciar el servidor MySQL sin concesión de tablas, usamos el siguiente comando para actualizar el archivo de configuración
systemd
para pasar parámetros de línea de comando adicionales al servidor MySQL al inicio.sudo systemctl edit mysql
Tan pronto como presione Enter, se abrirá un archivo para usted usando el editor
nano
. Lo usaremos para editar lasanulaciones de servicio
de MySQL.De esta forma, podemos actualizar los parámetros de servicio predeterminados de MySQL.
Agregue lo siguiente al archivo vacío que se acaba de abrir en el editor
nano
.[Service] ExecStart= ExecStart=/usr/sbin/mysqld --skip-grant-tables --skip-networking
Una vez que pegue el contenido dado arriba en el archivo, presione Ctrl+X para salir del archivo, Y para guardar las actualizaciones que acabamos de hacer. y Intro para confirmar el nombre del archivo.
Aquí,
ExecStart
primero borra todos los valores predeterminados y luego proporciona asystemd
un nuevo comando de inicio que incluye diferentes parámetros. Estos parámetros deshabilitan la carga de las tablas de redes y permisos. -
Para aplicar las actualizaciones, ejecute el siguiente comando para recargar la configuración de
systemd
.sudo systemctl daemon-reload
-
Inicie el servidor MySQL usando el siguiente comando; no producirá ningún resultado, pero puede verificar el estado del servidor MySQL.
sudo systemctl start mysql
Esta vez, las tablas de redes y subvenciones no están habilitadas.
-
Nos conectamos a la base de datos como usuario
root
.sudo mysql -u root
-
Ahora, podemos cambiar la contraseña, pero antes de eso, use el siguiente comando para decirle al servidor de la base de datos que vuelva a cargar las tablas de concesión.
mysql> FLUSH PRIVILEGES;
-
Ejecute la siguiente declaración para restablecer la contraseña del usuario
root
de MySQL. No olvide reemplazarmi_nueva_contraseña
con una contraseña segura que pueda recordar fácilmente.ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'my_new_password';
Aquí, MySQL nos permite usar autenticación personalizada. Por lo tanto, la declaración dada anteriormente asegura que MySQL ahora usará su autenticación predeterminada para autenticar al usuario
raíz
de MySQL a través de una nueva contraseña.¡Bravo! la contraseña del usuario
root
de MySQL ahora está cambiada. Escribasalir
para salir del shell de MySQL. -
Revierta el servidor MySQL a la configuración normal ejecutando el siguiente comando.
sudo systemctl revert mysql
Veremos un resultado similar al siguiente, lo que significa que la declaración anterior se ha ejecutado correctamente.
Removed /etc/systemd/system/mysql.service.d/override.conf. Removed /etc/systemd/system/mysql.service.d.
-
Para aplicar los cambios, recarga la configuración de
systemd
.sudo systemctl daemon-reload
-
Reinicie el servidor MySQL de la siguiente manera.
sudo systemctl restart mysql
-
Ahora, ejecute la siguiente declaración para iniciar sesión como usuario
root
de MySQL con la nueva contraseña.mysql -u root -p
Se le pedirá que ingrese la contraseña del usuario
root
de MySQL. Introduzca la nueva contraseña y disfrute del acceso a su servidor de base de datos.
Solucione el error al configurar una contraseña raíz
de MySQL con mysql_secure_installation
Los usuarios que instalan el servidor MySQL por primera vez pueden haberse encontrado con el siguiente error que se genera al configurar una contraseña root
de MySQL con mysql_secure_installation
.
Failed! Error: SET PASSWORD has no significance for user 'root'@'localhost' as the authentication method used doesn't store authentication data in the MySQL server. Please consider using ALTER USER instead if you want to change authentication parameters.
¡No te preocupes! Aquí está la solución para eso.
-
Elimine el proceso de
mysql_secure_installation
o cierre la terminal. -
Use la siguiente declaración para iniciar sesión en el servidor MySQL.
sudo mysql
Se le pedirá que introduzca la contraseña
root
del sistema. Una vez que ingrese la contraseña, será llevado a la consola de MySQL. -
Ejecute la siguiente instrucción
ALTER
. No olvide reemplazarmi_nueva_contraseña
con su contraseña.mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password by 'my_new_password';
Además, escriba
salir
para salir del shell de MySQL. -
Use la siguiente declaración para iniciar sesión con la nueva contraseña.
mysql -u root -p
Finalmente, puede iniciar sesión en el servidor MySQL como usuario
root
.