sql >> Base de Datos >  >> RDS >> Mysql

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

MySQL es uno de los sistemas de gestión de bases de datos más populares para aplicaciones web. MySQL tiene una contraseña de root o una contraseña de nivel de administrador, al igual que muchos servicios web. Las contraseñas de root permiten a los usuarios realizar cualquier función de nivel superior en una base de datos.

Al configurar MySQL, se recomienda que configure una contraseña de root para su base de datos por cuestiones relacionadas con la seguridad. Sin embargo, esto no significa que no pueda usar MySQL sin una contraseña de root. Depende de usted pensar en la tarea que tiene entre manos y decidir si configurar una contraseña de root o no.

Restablecimiento de la contraseña raíz de MySQL

Los usuarios de MySQL hacen muchas preguntas sobre "Cómo restablecer la contraseña de root de MySQL". Si configuró una contraseña de root pero desafortunadamente la perdió de vista, entonces este tutorial lo guiará a través del proceso de restablecer la contraseña de root tanto en Linux como en Windows.

Requisitos

  • Base de datos MySQL existente
  • Privilegios de administrador en la PC que aloja la base de datos MySQL
  • Acceso a un servidor Windows o Linux con MySQL
  • Interfaz de línea de comandos o acceso a terminal
  • Un editor de texto. (No se preocupe, ya que los usuarios de Windows tienen el Bloc de notas instalado de forma predeterminada en sus computadoras, mientras que los usuarios de Linux tienen vim preinstalado).

Una vez que tenga todos los requisitos previos mencionados, avancemos y aprendamos cómo restablecer o cambiar la contraseña raíz de MySQL.

Haremos este proceso en dos frentes:

  1. Cómo restablecer la contraseña de root de MySQL en Linux
  2. Cómo restablecer la contraseña raíz de MySQL en Windows

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

Paso 1:Iniciar sesión en MySQL

Al iniciar su sistema operativo Linux, es esencial iniciar sesión con el mismo usuario que normalmente ejecuta MySQL. Esto es crucial para evitar errores como la creación de archivos propiedad del usuario root, que podrían dañar su sistema. Sin embargo, también puede iniciar sesión como usuario raíz una vez que inicie su servidor MySQL. Para hacer esto, asegúrese de iniciar MySQL usando la siguiente sintaxis.

user=fosslinux

Paso 2:encontrar el archivo .pid utilizado por el servicio MySQL

El siguiente paso es localizar el archivo .pid. En la mayoría de los sistemas Linux, se almacenan en esta ubicación:

/var/lib/mysql or /var/run/mysqld/ or /usr/local/mysql/data/. 

Dado que no todos los sistemas Linux son iguales, puede probar cualquiera de las rutas mencionadas anteriormente y ver si puede ubicar el archivo. Para encontrar rápidamente el archivo, puede restringir su búsqueda a archivos que comiencen con mysqld (o su nombre de host) y terminando en .pid.

Nota: Buscar el archivo simplificará el proceso; por lo tanto, le recomendamos que lo pruebe.

Una vez que encuentre el archivo, continúe con el siguiente paso

Paso 3:Eliminar el proceso mysqld/.pid

Antes de restablecer o crear una nueva contraseña de root, primero debemos detener el servidor MySQL. Esto se puede hacer abriendo la terminal y ejecutando la siguiente línea de comando:

kill `cat /mysql-data-directory/host_name.pid`

Nota: Reemplace mysql-data-directory/host_name.pid con el nombre de archivo que encontramos en el paso 2. Además, es vital especificar la ruta completa del archivo para evitar errores.

Consejo adicional: Asegúrese siempre de utilizar la tecla de tilde invertida en lugar de una tecla de comillas simples. La tecla de retroceso se encuentra encima de la tecla de tabulación en la mayoría de las computadoras y antes de la tecla numérica.

Paso 4:Creación de un nuevo archivo de contraseña raíz

Ahora es el momento de abrir su editor de texto favorito. Para nuestro caso, utilizaremos el editor de texto Vim. Abra la terminal usando el atajo CTRL + ALT + T, luego ejecute el siguiente comando:

sudo vim mysql-init

Nota:si obtiene un error después de ejecutar el comando anterior, ejecute este comando para continuar con los otros procesos:

sudo apt install vim

Ahora agregue la siguiente línea en el archivo:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword';

Nota: Cuando escriba manualmente la línea anterior en el terminal, recuerde incluir todos los puntos y comas y comillas simples. Además, reemplace "Nueva contraseña ” frase con la nueva contraseña que desea utilizar. Finalmente, asegúrese de usar una contraseña fuerte y segura o consulte aquí para aprender cómo generar una contraseña segura aleatoria en Linux.

El comando anterior solo funcionará en la máquina host que está utilizando al ejecutar el comando. Sin embargo, si planea conectarse a un sistema diferente, se recomienda reemplazar el host local con el nombre de host relevante o apropiado para que el comando funcione. Si no lo hace, encontrará errores.

Una vez que haya agregado el nuevo archivo a su editor de texto, guárdelo en:

 home/mysql-init.

Paso 5:reiniciar el servidor MySQL y aplicar la contraseña recién creada

Es hora de aplicar los cambios que hicimos a nuestra contraseña recién creada. Primero, reiniciaremos el servidor MySQL ejecutando el siguiente comando en la terminal:

mysqld --init-file=/home/mysql-init &

Este comando iniciará MySQL y aplicará la contraseña del archivo de texto que creamos en el paso anterior. Según el método que utilice para iniciar su servidor, es posible que deba agregar otras opciones, como –defaults-file antes del comando init.

Después de aplicar la contraseña recién creada y reiniciar el servidor MySQL, es hora de limpiar. Haremos esto iniciando sesión en su servidor MySQL como usuario root y verificando que la contraseña que creamos realmente funciona. Una vez que confirme que el archivo funciona bien, continúe y elimine el archivo que creamos en el paso 4 anterior.

2. Cómo restablecer la contraseña de root de MySQL en Windows

Si es un usuario de Windows y le encantaría saber cómo restablecer su contraseña raíz de MySQL en Windows, lea este artículo hasta el final.

Paso 1:Detener el servidor MySQL.

Antes de detener el servidor MySQL, debe asegurarse de haber iniciado sesión como administrador.

  • Presione las teclas Win + R en Windows para iniciar el cuadro de diálogo Ejecutar y escriba:
services.msc
  • A continuación, haga clic en Aceptar.
  • Desplácese hacia abajo por la lista de servicios y localice el servicio MySQL. Haga clic con el botón derecho en él y luego seleccione la opción Detener como se muestra en la imagen a continuación:

Paso 2:abre tu editor de texto favorito

Con fines ilustrativos, utilizaremos el editor de texto predeterminado del Bloc de notas. Sin embargo, no se asuste si tiene un editor de texto diferente, ya que los procesos son similares.

  • Ahora haga clic en el menú Inicio y busque el Bloc de notas. Haga clic en él para iniciar.

Alternativamente, use esta ruta para encontrar el Bloc de notas:menu>Accesorios de Windows>Bloc de notas.

Paso 3:crear un nuevo archivo de texto de contraseña usando el comando de contraseña

Copie y pegue la siguiente sintaxis en el editor de texto para evitar errores al escribir manualmente:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword';

Al igual que hicimos con Linux, asegúrese de mantener el punto y coma y las comillas simples y reemplace la Nueva contraseña frase con la nueva contraseña que pretende usar en su MySQL.

Haga clic en la opción Archivo, luego en Guardar como para guardar la contraseña del archivo de texto en la raíz de su disco duro. Guarde el archivo como mysql-init.txt.

En consecuencia, el comando localhost solo puede realizar cambios de contraseña en su sistema. Por lo tanto, si tiene la intención de cambiar la contraseña en un sistema diferente, como en la red, sustituya el host local con el nombre de host apropiado para el sistema diferente.

Paso 4:Inicie CMD (Símbolo del sistema)

  • Haga clic en las teclas Ctrl + Shift + Esc en su teclado
  • Seleccione el menú de archivo, luego Ejecute una nueva tarea
  • Escriba cmd.exe y seleccione la casilla de verificación Ejecutar como administrador
  • Haga clic en Aceptar para iniciar un símbolo del sistema con privilegios de administrador.

Paso 5:reiniciar el servidor MySQL y aplicar el nuevo archivo de configuración

  • Usando el símbolo del sistema, navegue hasta el directorio MySQL:
cd C:\Program Files\MySQL\MySQL Server 8.0\bin
  • A continuación, ingrese el siguiente comando:
mysqld --init-file=C:\\mysql-init.txt

Nota: Debe tener en cuenta que hay dos barras invertidas antes de mysql-init oportuno. Además, si usó un nombre diferente al que usamos para la ilustración en el paso 2 anterior, debe usar ese nombre inmediatamente después de las dos barras invertidas sin espacio.

Una vez que esto esté completo, ahora puede iniciar sesión en su MySQL como usuario root usando la contraseña recién creada.

Asegúrese de verificar dos veces para asegurarse de que la nueva contraseña funcione sin problemas. Después de la confirmación, proceda y elimine el archivo mysql-init.txt que almacenamos en nuestro directorio C:\.

Instrucciones genéricas para restablecer la contraseña de root de MySQL

Las secciones anteriores han proporcionado instrucciones detalladas sobre cómo restablecer las contraseñas de root de MySQL para Linux y Windows. Alternativamente, al usar cualquier plataforma, puede usar el cliente MySQL para restablecer la contraseña. Sin embargo, es vital tener en cuenta que este método es menos seguro en comparación con los métodos anteriores.

Para usar el cliente MySQL, siga los pasos resaltados a continuación:

1. El primer paso es detener el servidor MySQL. Después de detenerlo, reinícielo con la siguiente opción:

--skip-grant-tables

Esta opción permitirá que cualquier persona se conecte sin contraseña, pero tendrá todos los privilegios, y deshabilita declaraciones de administración de cuentas como ALTER USER y ESTABLECER CONTRASEÑA.

Esta opción se considera insegura ya que si el servidor comienza con –skip-grant-tables opción, saltar redes se habilita al deshabilitar las conexiones remotas.

2. Ahora conéctese al servidor MySQL ejecutando el siguiente comando:

mysql

Nota: no se requiere contraseña al reiniciar el servidor MySQL usando el cliente MySQL ya que el servidor comenzó con –skip-grant-tables .

3. Ahora, en el cliente MySQL, ejecute el siguiente comando para indicarle al servidor que vuelva a cargar las tablas de concesión. Esto permitirá que los extractos de gestión de cuenta que se habían detenido anteriormente vuelvan a funcionar:

mysql> FLUSH PRIVILEGES;

Después de ejecutar el comando, ejecute el comando ALTER USER para cambiar la contraseña. Reemplace MyNewPass , con la nueva contraseña que desea utilizar.

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';

Nota: Para cambiar la contraseña raíz de un sistema diferente, asegúrese de modificar el host local con el nombre de host del sistema.

Ahora puede conectarse a su servidor MySQL como usuario root usando la contraseña que creamos. Luego, detenga y reinicie el servidor normalmente sin –skip-grant-tables opciones y sin habilitar la variable skip-networking.

Eso es todo lo que ha restablecido con éxito su contraseña de root de MySQL.

Conclusión

Si previamente había asignado una contraseña de root a MySQL pero la olvidó, puede restablecerla asignando una nueva contraseña a su MySQL, como se muestra en este artículo.

Nota: MySQL no requiere una contraseña de root para conectarse. Sin embargo, la desventaja de no asignar una contraseña de root a su MySQL es que es inseguro y podría perder sus objetos de valor. Por lo tanto, si nunca ha establecido una contraseña de root para su MySQL, le recomendamos que siga los pasos mencionados anteriormente para crear una y proteger sus datos e información.