Restablecer la contraseña raíz de MySQL en Ubuntu
-
Restablecer la contraseña
rootde MySQL olvidada en Ubuntu -
Solucione el error al configurar una contraseña
raízde 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ñarootdel 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
systemdpara pasar parámetros de línea de comando adicionales al servidor MySQL al inicio.sudo systemctl edit mysqlTan pronto como presione Enter, se abrirá un archivo para usted usando el editor
nano. Lo usaremos para editar lasanulaciones de serviciode 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 <kbd>Ctrl</kbd>+<kbd>X</kbd> para salir del archivo, <kbd>Y</kbd> para guardar las actualizaciones que acabamos de hacer. y <kbd>Intro</kbd> para confirmar el nombre del archivo.
Aquí, `ExecStart` primero borra todos los valores predeterminados y luego proporciona a `systemd` 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 mysqlEsta 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
rootde MySQL. No olvide reemplazarmi_nueva_contraseñacon 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ízde MySQL a través de una nueva contraseña.¡Bravo! la contraseña del usuario
rootde MySQL ahora está cambiada. Escribasalirpara salir del shell de MySQL. -
Revierta el servidor MySQL a la configuración normal ejecutando el siguiente comando.
sudo systemctl revert mysqlVeremos 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
rootde MySQL con la nueva contraseña.mysql -u root -pSe le pedirá que ingrese la contraseña del usuario
rootde 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_installationo cierre la terminal. -
Use la siguiente declaración para iniciar sesión en el servidor MySQL.
sudo mysqlSe le pedirá que introduzca la contraseña
rootdel 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ñacon su contraseña.mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password by 'my_new_password';Además, escriba
salirpara 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`.
