Cómo restablecer la contraseña de root de MySQL en Linux

27 feb 2021 3 min di lettura
Cómo restablecer la contraseña de root de MySQL en Linux
Indice dei contenuti

Introducción

En este tutorial, le mostraremos cómo restablecer (o cambiar) una contraseña de root de MySQL en caso de que la haya olvidado. Esta guía debería funcionar con cualquier distribución de Linux moderna, como Ubuntu 18.04 y CentOS 8.

Prerrequisitos

Antes de continuar con los pasos a continuación, asegúrese de haber iniciado sesión en el servidor como usuario con privilegios de sudo.

Si desea continuar en un servidor remoto, continúe leyendo; de lo contrario, si trabaja en su computadora local, omita el primer párrafo "Conexión al servidor" y lea el siguiente.

Conexión al servidor

Para acceder al servidor, necesita conocer la dirección IP. También necesitará su nombre de usuario y contraseña para la autenticación. Para conectarse al servidor como root, escriba el siguiente comando:

ssh root@IP_DEL_SERVER

A continuación, deberá ingresar la contraseña del usuario root.

Si no está utilizando el usuario root, puede iniciar sesión con otro nombre de usuario utilizando el mismo comando, luego cambie root a su nombre de usuario:

ssh nome_utente@IP_DEL_SERVER

Luego se le pedirá que ingrese su contraseña de usuario.

El puerto estándar para conectarse a través de ssh es 22, si su servidor usa un puerto diferente, deberá especificarlo usando el parámetro -p, luego escriba el siguiente comando:

ssh nome_utente@IP_DEL_SERVER -p PORTA

Identificar la versión del servidor

Dependiendo de la versión del servidor MySQL o MariaDB que se esté ejecutando en su sistema, necesitará usar diferentes comandos para recuperar la contraseña de root.

Puede encontrar la versión de su servidor emitiendo el siguiente comando:

mysql --version

Si tiene MySQL instalado en su sistema, la salida se verá así:

mysql Ver 14.14 Distrib 5.7.22, for Linux (x86_64) using EditLine wrapper

Si tiene MariaDB instalado, debería recibir un mensaje similar a este:

mysql Ver 15.1 Distrib 10.1.33-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2

Asegúrese de anotar qué versión de MySQL o MariaDB está utilizando.

Restablecer la contraseña raíz de MySQL o MariaDB

Siga estos pasos para restablecer la contraseña raíz de MySQL /MariaDB:

Para cambiar la contraseña de root, primero debemos detener el servidor MySQL. Para hacer esto, escriba el siguiente comando:

sudo systemctl stop mysql

Inicie el servidor MySQL /MariaDB sin cargar las tablas. Cuando la --skip-grant-tables está habilitada, cualquiera puede conectarse al servidor de la base de datos sin una contraseña y con todos los privilegios.

Para iniciar el servidor de la base de datos sin cargar las tablas de autorización:

sudo mysqld_safe --skip-grant-tables &

El ampersand & al final del comando anterior hará que el programa se ejecute en segundo plano, por lo que podemos continuar usando el shell.

Attentiome: Si obtiene el siguiente error mysqld_safe Directory '/var/run/mysqld' for UNIX socket file don't exists pruebe los siguientes comandos; de lo contrario, vaya al siguiente párrafo.

mkdir -p /var/run/mysqld
chown mysql:mysql /var/run/mysqld

Luego intente iniciar el servidor de base de datos nuevamente sin cargar las tablas de permisos:

sudo mysqld_safe --skip-grant-tables &

Conexión a la base de datos sin contraseña

Después de reiniciar la base de datos sin cargar las tablas de permisos, puede conectarse al servidor como root sin que se le solicite la contraseña:

mysql -u root

Dado que la administración de cuentas está deshabilitada cuando el servicio se inicia con la --skip-grant-tables, necesitamos recargar las concesiones. De esta forma podemos cambiar la contraseña más tarde:

FLUSH PRIVILEGES;

Establecer una nueva contraseña de root

Ejecute los siguientes comandos si tiene MySQL 5.7.6 y posterior o MariaDB 10.1.20 y posterior:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'MY_NEW_PASSWORD';
FLUSH PRIVILEGES;

Advertencia: Si la ALTER USER no funciona para usted, pruebe los siguientes comandos:

 use mysql;
update user SET PASSWORD=PASSWORD("MY_NEW_PASSWORD") WHERE USER='root';
FLUSH PRIVILEGES;
exit;

Ejecute los siguientes comandos si tiene MySQL 5.7.5 y anterior o MariaDB 10.1.20 y anterior:

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MY_NEW_PASSWORD');
FLUSH PRIVILEGES;

De cualquier manera, con suerte, debería ver el siguiente resultado:

Query OK, 0 rows affected (0.00 sec)
exit;

Detenga e inicie el servidor de la base de datos normalmente

Ahora que la contraseña de root está configurada, necesitaremos detener el servidor de la base de datos e iniciarlo normalmente.

Detenga el servidor de la base de datos de administración con el siguiente comando:

mysqladmin -u root -p shutdown

Se le pedirá la nueva contraseña de root.

Ahora inicie el servidor de la base de datos normalmente:

  • Para MySQL, escriba:
sudo systemctl start mysql
  • Para MariaDB, escriba:
sudo systemctl start mariadb

Comprobar la contraseña

Para verificar que la nueva contraseña de root se haya aplicado correctamente, escriba:

sudo mysql -u root -p

Se le pedirá que ingrese la nueva contraseña de root. Ingrese y debería iniciar sesión en su servidor de base de datos.

Conclusión

En este tutorial, ha aprendido a restablecer la contraseña raíz de MySQL o MariaDB. Asegúrese de que su nueva contraseña de root sea segura y guárdela en un lugar seguro.

Support us with a

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.