Tecnología

Inicio

Cómo Recuperar la cuenta de root para MySQL

Cómo Recuperar la cuenta de root para MySQL


Si alguna vez has bloqueado las llaves en un coche, que ya está familiarizado con la sensación de hundimiento que obtendrá después de darse cuenta que ha eliminado una cuenta de usuario crítico para la gestión de un servidor de base de datos MySQL. Por convención, MySQL super-usuario es llamado "raíz" y tiene poderes para añadir y modificar otras cuentas, crear y eliminar bases de datos y llevar a cabo las funciones de gestión tales como apagar el servidor.

MySQL cargas de información sobre las cuentas de usuario en la memoria en el arranque. Si por accidente borra una cuenta "raíz" de la tabla de usuario en la base de datos, el enfoque de recuperación dependerá de si o no esas credenciales son alféizar en la memoria.

Instrucciones

Las credenciales de raíz Todavía se almacenan en caché

1 Ejecutar el comando de inicio de sesión para la utilidad "mysql" del monitor en el símbolo del sistema Linux o Windows:

mysql user = root @ localhost --password = mypass

Va a reemplazar "mypass" con la contraseña de la cuenta "root" a través de "localhost".

Si usted es capaz de conectar, siendo registrado para acceder a la utilidad "mysql" y vaya al paso 2. De lo contrario, pase a la "Cuenta de raíz ya no almacena en caché."

2 Introduzca el siguiente comando SQL mientras que todavía conectado a la utilidad "mysql":

INSERT INTO mysql.user (host, usuario, contraseña) VALUES ( 'localhost', 'root', CONTRASEÑA ( 'mypass'));

Esto crea un usuario "root" con una contraseña que coincidan con su texto para "mypass." Se requieren comillas, pero capitalización de comandos SQL es opcional.

3 Introduzca el siguiente comando SQL:

Conceder a todos los privilegios en A 'root' @ 'localhost' y WITH

GRANT.;

Esto asignará todos los privilegios a la nueva cuenta.

Cuenta raíz ya no en caché

4 Detener el servidor MySQL.

En un sistema Linux con un script de inicio / parada de MySQL, esto se realiza normalmente como administrador del sistema mediante la introducción de un comando como:

/etc/rc.d/init.d/mysql detener

En los sistemas Windows, seleccione el panel de control desde el menú Inicio y abra las carpetas Herramientas administrativas. Haga doble clic en el icono Servicios y desplazarse por la lista para encontrar la entrada "MySQL". Haga clic en eso y seleccione "Stop" en el menú emergente.

5 Abra un editor de texto sin formato y escriba los siguientes comandos SQL:

INSERT INTO mysql.user (host, usuario, contraseña) VALUES ( 'localhost', 'root', CONTRASEÑA ( 'mypass'));

Conceder a todos los privilegios en A 'root' @ 'localhost' y WITH

GRANT.;

FLUSH TABLES;

Una vez más, "mypass" será la contraseña que desee para su cuenta "raíz". Guarde el archivo de texto. En este ejemplo, se utiliza el nombre de archivo "root.sql".

6 Entre este mandato en los sistemas Linux para poner en marcha el servidor MySQL (evitando el inicio / parada habitual de la escritura) y obligarlo a procesar los comandos en su archivo de texto:

safe_mysqld --init-file = root.sql

En Windows, el comando es:

mysqld-nt --init-file = root.sql

Puede que tenga que proporcionar la ruta completa "safe_mysqld" o "mysqld-nt," como con "root.sql."

7 Cierre el servidor de nuevo. Ahora se puede ejecutar la utilidad "mysqladmin" como el nuevo usuario "root":

mysqladmin shutdown user = root --password = mypass

Puede que tenga que incluir la ruta completa "mysqladmin" ejecutable en el sistema. Lo que se escribe en lugar de "mypass" por encima sería la contraseña que escribió al crear el archivo "root.sql".

8 Comience el servidor MySQL como lo hace normalmente para uso en producción regular.