¿Cómo puedo recuperar mi nombre de usuario y contraseña de MySQL?


Perdí mi nombre de usuario y contraseña de MySQL. ¿Cómo lo recupero?

 138
Author: Marcel, 2008-08-07

9 answers

Detenga el proceso MySQL.

Inicie el proceso MySQL con la opción skip skip-grant-tables.

Inicie el cliente de la consola MySQL con la opción-u root.

Lista todos los usuarios;

SELECT * FROM mysql.user;

Restablecer contraseña;

UPDATE mysql.user SET Password=PASSWORD('[password]') WHERE User='[username]';

Pero NO OLVIDES a

Detener el proceso MySQL

Inicie el proceso MySQL normalmente (es decir, sin la opción skip skip-grant-tables)

Cuando hayas terminado. De lo contrario, la seguridad de su base de datos podría verse comprometida.

 170
Author: Xenph Yan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-08-07 05:29:18

Desafortunadamente su contraseña de usuario es irrecuperable. Ha sido hash con un hash de un solo sentido que si no lo sabes es irreversible. Recomiendo ir con Xenph Yan arriba y simplemente crear uno nuevo.

También puede usar el siguiente procedimiento desde el manual para restablecer la contraseña para cualquier cuenta de MySQL root en Windows:

  1. Inicie sesión en su sistema como Administrador.
  2. Detenga el servidor MySQL si se está ejecutando. Para un servidor que es ejecutándose como un servicio de Windows, vaya a el administrador de servicios:

Menú Inicio - > Panel de Control -> Herramientas administrativas - > Servicios

Luego encuentre el servicio MySQL en la lista y deténgalo. Si su servidor es al no ejecutarse como un servicio, es posible que deba usar el Administrador de tareas para obligarlo a detenerse.

  1. Cree un archivo de texto y coloque las siguientes instrucciones en él. Reemplace la contraseña con la contraseña que desee utilizar.

    UPDATE mysql.user SET Password=PASSWORD('MyNewPass') WHERE User='root';
    FLUSH PRIVILEGES;
    

    Las declaraciones UPDATE y FLUSH deben escribirse en una sola línea. La instrucción UPDATE restablece la contraseña para todas las cuentas raíz existentes, y la instrucción FLUSH le dice al servidor que vuelva a cargar las tablas de grant en la memoria.

  2. Guarde el archivo. Para este ejemplo, el archivo se llamará C:\mysql-init.txt.
  3. Abra una ventana de consola para acceder al símbolo del sistema:

    Menú inicio - >Run - > cmd

  4. Inicie el servidor MySQL con la opción especial file init-file :

    C:\> C:\mysql\bin\mysqld-nt --init-file = C:\mysql-init.txt
    

    Si ha instalado MySQL en una ubicación que no sea C:\mysql , ajuste el comando en consecuencia.

    El servidor ejecuta el contenido del archivo nombrado por la opción in init-file al inicio, cambiando cada contraseña de cuenta root.

    También puede agregar la opción console console al comando si desea que la salida del servidor aparece en la ventana de la consola en lugar de en un archivo de registro.

    Si instaló MySQL utilizando el Asistente de instalación de MySQL, es posible que deba especificar una opción file defaults-file :

    C:\> "C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqld-nt.exe" --defaults-file="C:\Program Files\MySQL\MySQL Server 5.0\my.ini" --init-file=C:\mysql-init.txt
    

    El ajuste apropiado def defaults-file se puede encontrar usando el Administrador de servicios:

    Menú Inicio - > Panel de Control -> Herramientas administrativas - > Servicios

    Encuentre el servicio MySQL en la lista, haga clic derecho sobre él y elija la opción Propiedades. El Camino a el campo ejecutable contiene la opción def defaults-file.

  5. Después de que el servidor se haya iniciado correctamente, elimine C:\mysql-init.txt .
  6. Detenga el servidor MySQL y reinicie de nuevo en modo normal. Si ejecuta el servidor como un servicio, ejecútelo desde la ventana Servicios de Windows. Si inicia el servidor manualmente, utilice cualquier comando que utilice normalmente.

Ahora debería poder conectarse a MySQL como root usando la nueva contraseña.

 37
Author: jake,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-01-16 12:19:05

Una mejora a la respuesta más útil aquí:

1] No es necesario reiniciar el servidor mysql
2] Preocupación de seguridad para un servidor MySQL conectado a una red

No es necesario reiniciar el servidor MySQL.

Use FLUSH PRIVILEGES; después de actualizar mysql.declaración de usuario para el cambio de contraseña.

La instrucción FLUSH le dice al servidor que vuelva a cargar las tablas grant en la memoria para que note el cambio de contraseña.

El --skip-grant-options permite a cualquier persona conectarse sin contraseña y con todos los privilegios. Debido a que esto es inseguro, es posible que desee

Utilizar --skip-grant-tables junto con --skip-networking para evitar que los clientes remotos se conecten.

De: reference: resetting-permissions-generic

 32
Author: ThinkingMonkey,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-01-09 17:14:58

Si bien no puede recuperar directamente una contraseña de MySQL sin forzar brutalmente, puede haber otra manera: si ha utilizado MySQL Workbench para conectarse a la base de datos y ha guardado las credenciales en la "bóveda", está dorado.

En Windows, las credenciales se almacenan en %APPDATA%\MySQL\Workbench\workbench_user_data.dat - cifrado con CryptProtectData (sin ninguna entropía adicional). Descifrar es fácil peasy:

std::vector<unsigned char> decrypt(BYTE *input, size_t length) {
    DATA_BLOB inblob { length, input };
    DATA_BLOB outblob;

    if (!CryptUnprotectData(&inblob, NULL, NULL, NULL, NULL, CRYPTPROTECT_UI_FORBIDDEN, &outblob)) {
            throw std::runtime_error("Couldn't decrypt");
    }

    std::vector<unsigned char> output(length);
    memcpy(&output[0], outblob.pbData, outblob.cbData);

    return output;
}

O usted puede comprobar hacia fuera esto DonationCoder thread para fuente + ejecutable de una implementación rápida y sucia.

 6
Author: snemarch,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-02-07 14:35:10

Si tiene acceso root al servidor donde mysql se está ejecutando, debe detener el servidor mysql utilizando este comando

sudo service mysql stop

Ahora inicie mysql usando este comando

sudo /usr/sbin/mysqld --skip-grant-tables  --skip-networking &

Ahora puede iniciar sesión en mysql usando

sudo mysql
FLUSH PRIVILEGES;
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');

Las instrucciones completas se pueden encontrar aquí http://www.techmatterz.com/recover-mysql-root-password /

 3
Author: Sajjad Ashraf,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-01-22 11:36:35

Hazlo sin tiempo de inactividad

Ejecute el siguiente comando en el Terminal para conectarse al DBMS (necesita acceso root):

sudo mysql -u root -p;

Ejecute la contraseña de actualización del usuario objetivo (para mi ejemplo, el nombre de usuario es mousavi y su contraseña debe ser 123456):

UPDATE mysql.user SET authentication_string=PASSWORD('123456') WHERE user='mousavi';  

En este punto necesitas hacer un flush para aplicar los cambios:

FLUSH PRIVILEGES;

Hecho! Lo hizo sin detener o reiniciar el servicio mysql.

 2
Author: S.M.Mousavi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-03-10 10:00:15

Inicie sesión en MySQL desde windows cmd utilizando el usuario existente:

Mysql-u username-p
Introduzca la contraseña: * * * *

Luego ejecute el siguiente comando:

mysql> SELECT * FROM mysql.user;

Después de copiar la contraseña md5 cifrada para el usuario correspondiente y hay varias aplicaciones descifradas de contraseña en línea disponibles en la web. Usando esta contraseña descifrar y utilizar esto para iniciar sesión en la próxima vez. o actualizar la contraseña de usuario usando el comando flowing:

mysql> UPDATE mysql.user SET Password=PASSWORD('[password]') WHERE User='[username]';

Entonces inicie sesión con la nueva contraseña y el nuevo usuario.

 1
Author: Syeful Islam,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-02-07 14:35:30

Aunque una interpretación estricta y lógica de la informática de la pregunta del op sería requerir tanto "Cómo recupero mi nombre de usuario de MySQL" como "contraseña" - Pensé que podría ser útil para alguien abordar también la interpretación O. En otras palabras ...

1) ¿Cómo puedo recuperar mi nombre de usuario de MySQL?

O

2) contraseña

Esta última condición parece haber sido ampliamente abordado ya por lo que no me molestaré con se. La siguiente es una solución para el caso "¿Cómo puedo recuperar mi nombre de usuario MySQL" solo. HOLA.

Para encontrar su nombre de usuario mysql ejecute los siguientes comandos desde el shell mysql ...

SELECCIONE Usuario DESDE mysql.usuario;

Imprimirá una tabla de todos los usuarios de mysql.

 0
Author: shine,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-06-04 22:49:04

SI tiene configurado ODBC, puede obtener la contraseña del archivo de configuración ODBC. Esto está en / etc / odbc.ini para Linux y en la carpeta Software / ODBC en el registro en Windows (hay varios - puede tomar un poco de caza)

 0
Author: samplesize1,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-10-30 15:04:51