Respuestas:
Detenga el proceso de MySQL.
Inicie el proceso MySQL con la opción --skip-grant-tables.
Inicie el cliente de consola MySQL con la opción raíz -u.
Lista de todos los usuarios;
SELECT * FROM mysql.user;
Restablecer la contraseña;
UPDATE mysql.user SET Password=PASSWORD('[password]') WHERE User='[username]';
Pero NO OLVIDES a
Detener el proceso de MySQL
Inicie el proceso MySQL normalmente (es decir, sin la opción --skip-grant-tables)
Cuando termines. De lo contrario, la seguridad de su base de datos podría verse comprometida.
dpkg-reconfigure mysql-server-5.5
comando para restablecer la contraseña de MySQL raíz?
-u
se ignora cuando se inicia el servidor --skip-grant-tables
.
mysql.user
llamada password
, use authentication_string
en su lugar.
Lamentablemente, su contraseña de usuario es irrecuperable. Se ha procesado con un hash unidireccional que, si no lo sabe, es irreversible. Recomiendo ir con Xenph Yan arriba y simplemente crear uno nuevo.
También puede usar el siguiente procedimiento del manual para restablecer la contraseña de cualquier cuenta raíz MySQL en Windows:
Menú Inicio -> Panel de control -> Herramientas administrativas -> Servicios
Luego encuentre el servicio MySQL en la lista y deténgalo. Si su servidor no se está ejecutando como un servicio, es posible que deba usar el Administrador de tareas para forzarlo a detenerse.
Cree un archivo de texto y coloque las siguientes declaraciones en él. Reemplace la contraseña con la contraseña que desea usar.
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 FLUSH instrucción le dice al servidor que vuelva a cargar las tablas de concesión en la memoria.
Abra una ventana de consola para acceder al símbolo del sistema:
Menú de inicio -> Ejecutar -> cmd
Inicie el servidor MySQL con la opción especial --init-file :
C:\> C:\mysql\bin\mysqld-nt --init-file = C:\mysql-init.txt
Si instaló 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 --init-file al inicio, cambiando cada raíz contraseña de cuenta .
También puede agregar la --consola opción al comando si desea que la salida del servidor aparezca 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 --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
La configuración adecuada del archivo predeterminado se puede encontrar utilizando el Administrador de servicios:
Menú Inicio -> Panel de control -> Herramientas administrativas -> Servicios
Busque el servicio MySQL en la lista, haga clic derecho sobre él y elija la opción Propiedades. La ruta al campo ejecutable contiene el archivo --defaults .
Ahora debería poder conectarse a MySQL como root utilizando la nueva contraseña.
mysqld-nt
lugar de mysqld
?
Una mejora a la respuesta más útil aquí:
1] No es necesario reiniciar el servidor mysql
2] Problema de seguridad para un servidor MySQL conectado a una red
No es necesario reiniciar el servidor MySQL.
use FLUSH PRIVILEGES;
después de la actualización de la declaración mysql.user para el cambio de contraseña.
La instrucción FLUSH le dice al servidor que vuelva a cargar las tablas de concesión en la memoria para que note el cambio de contraseña.
El --skip-grant-options
permite que cualquiera pueda realizar una conexión sin contraseña y con todos los privilegios. Debido a que esto es inseguro, es posible que desee
use --skip-grant-tables junto con --skip-networking para evitar que se conecten clientes remotos.
de: referencia: resetting-permissions-generic
mysql.user
? Sin embargo, a menudo, ese no es el caso.
Si bien no puede recuperar directamente una contraseña de MySQL sin fuerza bruta, puede haber otra forma: si ha utilizado MySQL Workbench para conectarse a la base de datos y ha guardado las credenciales en la "bóveda", es oro.
En Windows, las credenciales se almacenan en % APPDATA% \ MySQL \ Workbench \ workbench_user_data.dat , cifradas con CryptProtectData (sin ninguna entropía adicional). El descifrado es fácil:
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 puede consultar este hilo de DonationCoder para obtener el código fuente + ejecutable de una implementación rápida y sucia.
Ejecute el siguiente comando en la Terminal para conectarse al DBMS (necesita acceso root):
sudo mysql -u root -p;
ejecutar 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, necesita hacer una descarga para aplicar los cambios:
FLUSH PRIVILEGES;
¡Hecho! Lo hizo sin detener o reiniciar el servicio mysql.
Si tiene acceso root al servidor donde se ejecuta mysql, debe detener el servidor mysql con 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/
Inicie sesión en MySql desde el cmd de Windows con el usuario existente:
mysql -u nombre de usuario -p
Ingrese la contraseña: ****
Luego ejecute el siguiente comando:
mysql> SELECT * FROM mysql.user;
Después de eso, copie 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 de descifrado y úsala para iniciar sesión la próxima vez. o actualizar la contraseña de usuario usando el comando que fluye:
mysql> UPDATE mysql.user SET Password=PASSWORD('[password]') WHERE User='[username]';
Luego, inicie sesión con la nueva contraseña y usuario.
Si tiene configurado ODBC, puede obtener la contraseña del archivo de configuración ODBC. Esto se encuentra en /etc/odbc.ini para Linux y en la carpeta Software / ODBC en el registro de Windows (hay varios, puede tomar algo de búsqueda)
Guarda el archivo. Para este ejemplo, el archivo se llamará C: \ mysql-init.txt. solicita permisos administrativos para guardar el archivo
Aunque una interpretación estricta, lógica e informática de la pregunta del operador sería requerir tanto "¿Cómo recupero mi nombre de usuario MySQL" como "contraseña"? Pensé que podría ser útil para alguien que también aborde el OR interpretación . En otras palabras ...
1) ¿Cómo recupero mi nombre de usuario MySQL?
O
2) contraseña
Parece que esta última condición ya se ha abordado ampliamente, por lo que no me molestaré. 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 ...
SELECCIONAR Usuario DESDE mysql.user;
imprimirá una tabla de todos los usuarios de mysql.