Comment récupérer mon nom d’utilisateur et mon mot de passe MySQL?

J’ai perdu mon nom d’utilisateur et mon mot de passe MySQL. Comment puis-je le récupérer?

Arrêtez le processus MySQL.

Démarrez le processus MySQL avec l’option –skip-grant-tables.

Démarrez le client de la console MySQL avec l’option -u root.

Liste tous les utilisateurs

SELECT * FROM mysql.user; 

Réinitialiser le mot de passe;

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

Mais n’oublie pas de

Arrêtez le processus MySQL

Démarrer le processus MySQL normalement (c’est-à-dire sans l’option –skip-grant-tables)

quand vous avez fini. Sinon, la sécurité de votre firebase database pourrait être compromise.

Malheureusement, votre mot de passe utilisateur est irrécupérable. Il a été haché avec un hash à sens unique qui, si vous ne le savez pas, est irréversible. Je recommande d’aller avec Xenph Yan ci-dessus et juste en créer un nouveau.

Vous pouvez également utiliser la procédure suivante dans le manuel pour réinitialiser le mot de passe de tout compte racine MySQL sous Windows:

  1. Connectez-vous à votre système en tant qu’administrateur.
  2. Arrêtez le serveur MySQL s’il est en cours d’exécution. Pour un serveur qui s’exécute en tant que service Windows, accédez au gestionnaire de services:

Menu Démarrer -> Panneau de configuration -> Outils d’administration -> Services

Trouvez ensuite le service MySQL dans la liste et arrêtez-le. Si votre serveur ne fonctionne pas en tant que service, vous devrez peut-être utiliser le Gestionnaire des tâches pour le forcer à s’arrêter.

  1. Créez un fichier texte et placez-y les instructions suivantes. Remplacez le mot de passe par le mot de passe que vous souhaitez utiliser.

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

    Les instructions UPDATE et FLUSH doivent être écrites sur une seule ligne. L’instruction UPDATE réinitialise le mot de passe de tous les comptes racine existants et l’instruction FLUSH indique au serveur de recharger les tables d’atsortingbution en mémoire.

  2. Enregistrez le fichier. Pour cet exemple, le fichier sera nommé C: \ mysql-init.txt.
  3. Ouvrez une fenêtre de console pour accéder à l’invite de commande:

    Menu Démarrer -> Exécuter -> cmd

  4. Démarrez le serveur MySQL avec l’ option spéciale –init-file :

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

    Si vous avez installé MySQL à un emplacement autre que C: \ mysql , ajustez la commande en conséquence.

    Le serveur exécute le contenu du fichier nommé par l’option –init-file au démarrage, en modifiant le mot de passe de chaque compte racine .

    Vous pouvez également append l’option –console à la commande si vous souhaitez que la sortie du serveur apparaisse dans la fenêtre de la console plutôt que dans un fichier journal.

    Si vous avez installé MySQL à l’aide de l’assistant d’installation MySQL, vous devrez peut-être spécifier une option –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 

    Le paramètre approprié –defaults-file peut être trouvé à l’aide du gestionnaire de services:

    Menu Démarrer -> Panneau de configuration -> Outils d’administration -> Services

    Recherchez le service MySQL dans la liste, cliquez dessus avec le bouton droit de la souris et choisissez l’option Propriétés. Le champ Chemin d’access à l’exécutable contient le paramètre –defaults-file .

  5. Une fois le serveur démarré avec succès, supprimez C: \ mysql-init.txt .
  6. Arrêtez le serveur MySQL, puis redémarrez-le en mode normal. Si vous exécutez le serveur en tant que service, démarrez-le à partir de la fenêtre Windows Services. Si vous démarrez le serveur manuellement, utilisez la commande que vous utilisez normalement.

Vous devriez maintenant pouvoir vous connecter à MySQL en tant que root en utilisant le nouveau mot de passe.

Une amélioration de la réponse la plus utile ici:

1] Pas besoin de redémarrer le serveur mysql
2] Problème de sécurité pour un serveur MySQL connecté à un réseau

Il n’est pas nécessaire de redémarrer le serveur MySQL.

utiliser les FLUSH PRIVILEGES; après la mise à jour de la déclaration mysql.user pour le changement de mot de passe.

L’instruction FLUSH indique au serveur de recharger les tables de droits en mémoire pour qu’il remarque le changement de mot de passe.

Les --skip-grant-options permettent à quiconque de se connecter sans mot de passe et avec tous les privilèges. Parce que ce n’est pas sûr, vous voudrez peut-être

Utilisez –skip-grant-tables en conjonction avec –skip-networking pour empêcher les clients distants de se connecter.

à partir de: reference: resetting-permissions-generic

Bien que vous ne puissiez pas récupérer directement un mot de passe MySQL sans utiliser de bruteforcing, il pourrait y avoir un autre moyen – si vous avez utilisé MySQL Workbench pour vous connecter à la firebase database et que vous avez enregistré les informations d’identification dans le “coffre-fort”.

Sous Windows, les informations d’identification sont stockées dans % APPDATA% \ MySQL \ Workbench \ workbench_user_data.dat – chiffrées avec CryptProtectData (sans entropie supplémentaire). Le décryptage est facile:

 std::vector 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 output(length); memcpy(&output[0], outblob.pbData, outblob.cbData); return output; } 

Ou vous pouvez vérifier ce thread DonationCoder pour source + exécutable d’une implémentation rapide et sale.

Si vous avez un access root au serveur sur lequel mysql s’exécute, vous devez arrêter le serveur mysql en utilisant cette commande

 sudo service mysql stop 

Maintenant, lancez mysql en utilisant cette commande

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

Maintenant, vous pouvez vous connecter à mysql en utilisant

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

Des instructions complètes peuvent être trouvées ici http://www.techmatterz.com/recover-mysql-root-password/

Connectez-vous MySql à partir de Windows cmd en utilisant l’utilisateur existant:

mysql -u nom d’utilisateur -p
Entrer le mot de passe:****

Ensuite, exécutez la commande suivante:

 mysql> SELECT * FROM mysql.user; 

Après cette copie, mot de passe md5 crypté pour l’utilisateur correspondant et il existe plusieurs applications en ligne décryptées par mot de passe disponibles sur le Web. En utilisant ce mot de passe de décryptage et utilisez-le pour vous connecter la prochaine fois. ou mettre à jour le mot de passe utilisateur en utilisant la commande suivante:

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

Ensuite, connectez-vous en utilisant le nouveau mot de passe et l’utilisateur.

Faites-le sans temps d’arrêt

Exécutez la commande suivante dans le terminal pour vous connecter au SGBD (vous devez disposer d’un access root):

 sudo mysql -u root -p; 

exécuter le mot de passe de mise à jour de l’utilisateur cible (pour mon exemple, le nom d’utilisateur est mousavi et son mot de passe doit être 123456 ):

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

à ce stade, vous devez faire un flush pour appliquer les modifications:

 FLUSH PRIVILEGES; 

Terminé! Vous l’avez fait sans aucun arrêt ou redémarrage du service mysql.

Bien qu’une interprétation ssortingcte, logique et informatique de la question de l’op puisse exiger à la fois “comment récupérer mon nom d’utilisateur MySQL” et “mot de passe” – je pensais qu’il pourrait être utile à quelqu’un de traiter également l’interprétation OR . En d’autres termes …

1) Comment récupérer mon nom d’utilisateur MySQL?

OU

2) mot de passe

Cette dernière condition semble avoir déjà été amplement traitée pour que je ne m’en soucie pas. Voici une solution pour le cas “Comment récupérer mon nom d’utilisateur MySQL” seul. HIH.

Pour trouver votre nom d’utilisateur mysql, exécutez les commandes suivantes à partir du shell mysql …

SELECT Utilisateur FROM mysql.user;

il imprimera une table de tous les utilisateurs de mysql.

Si vous avez installé ODBC, vous pouvez obtenir le mot de passe du fichier de configuration ODBC. Ceci est dans /etc/odbc.ini pour Linux et dans le dossier Software / ODBC du registre dans Windows (il y en a plusieurs – cela peut prendre un peu de chasse)