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

StackOverflow https://stackoverflow.com/questions/4371

  •  08-06-2019
  •  | 
  •  

Question

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

Était-ce utile?

La solution

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.

Répertoriez 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'OUBLIEZ PAS à

Arrêtez le processus MySQL

Démarrez le processus MySQL normalement (c'est-à-diresans l'option --skip-grant-tables)

quand tu auras fini.Sinon, la sécurité de votre base de données pourrait être compromise.

Autres conseils

Malheureusement, votre mot de passe utilisateur est irrécupérable.Il a été haché avec un hachage unidirectionnel qui, si vous ne le savez pas, est irréversible.Je recommande d'utiliser Xenph Yan ci-dessus et d'en créer un nouveau.

Vous pouvez également utiliser la procédure suivante à partir de Le manuel pour réinitialiser le mot de passe de n'importe quel MySQL racine comptes 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

Recherchez ensuite le service MySQL dans la liste et arrêtez-le.Si votre serveur n'est pas en cours d'exécution en tant que service, vous devrez peut-être utiliser le gestionnaire de 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;
    

    Le MISE À JOUR et AFFLEURER les déclarations doivent chacune être écrites sur une seule ligne.Le MISE À JOUR L'instruction réinitialise le mot de passe de tous les comptes root existants, et l'instruction AFFLEURER L'instruction indique au serveur de recharger les tables de subventions 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 le spécial --init-fichier option:

    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 le --init-fichier option au démarrage, en changeant chaque racine mot de passe du compte.

    Vous pouvez également ajouter le --console option à 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 un --fichier-par défaut option:

    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
    

    Approprié --fichier-par défaut Le paramètre 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 et choisissez l'option Propriétés.Le champ Chemin vers l'exécutable contient le --fichier-par défaut paramètre.

  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 Services Windows.Si vous démarrez le serveur manuellement, utilisez la commande que vous utilisez habituellement.

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 FLUSH PRIVILEGES; après l'instruction update mysql.user pour le changement de mot de passe.

L'instruction FLUSH indique au serveur de recharger les tables d'attribution en mémoire afin qu'il remarque le changement de mot de passe.

Le --skip-grant-options permet à quiconque de se connecter sans mot de passe et avec tous les privilèges.Parce que ce n'est pas sécurisé, vous voudrez peut-être

utiliser --skip-grant-tables en collaboration avec --skip-networking pour empêcher les clients distants de se connecter.

depuis:référence: réinitialisation des autorisations génériques

Bien que vous ne puissiez pas récupérer directement un mot de passe MySQL sans forcer brutalement, il peut exister un autre moyen : si vous avez utilisé MySQL Workbench pour vous connecter à la base de données et que vous avez enregistré les informations d'identification dans le « coffre-fort », vous êtes en or.

Sous Windows, les informations d'identification sont stockées dans %APPDATA%\MySQL\Workbench\workbench_user_data.dat - crypté avec CryptProtectData (sans aucune entropie supplémentaire).Le décryptage est simple comme bonjour :

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;
}

Ou tu peux consulter ceci Fil de discussion DonationCoder pour source + exécutable d'une implémentation rapide et sale.

Si vous disposez d'un accès root au serveur sur lequel MySQL est exécuté, vous devez arrêter le serveur MySQL à l'aide de cette commande.

sudo service mysql stop

Maintenant, démarrez MySQL en utilisant cette commande

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

Vous pouvez maintenant vous connecter à MySQL en utilisant

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

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

Faites-le sans temps d'arrêt

Exécutez la commande suivante dans le terminal pour vous connecter au SGBD (vous avez besoin d'un accès root) :

sudo mysql -u root -p;

exécuter la mise à jour du mot de passe 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_string=PASSWORD('123456') WHERE user='mousavi';  

à ce stade, vous devez effectuer un vidage pour appliquer les modifications :

FLUSH PRIVILEGES;

Fait!Vous l'avez fait sans aucun arrêt ni redémarrage du service MySQL.

Connectez-vous à MySql depuis Windows cmd en utilisant l'utilisateur existant :

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

Exécutez ensuite la commande suivante :

mysql> SELECT * FROM mysql.user;

Après cela, copiez le mot de passe md5 crypté pour l'utilisateur correspondant et plusieurs applications de décryptage de mot de passe en ligne sont disponibles sur le Web.Utilisez ce mot de passe déchiffré et utilisez-le pour vous connecter la prochaine fois.ou mettez à jour le mot de passe de l'utilisateur à l'aide de la commande fluide :

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

Connectez-vous ensuite en utilisant le nouveau mot de passe et le nouveau utilisateur.

Bien qu'une interprétation stricte, logique et informatique de la question de l'opération serait d'exiger les deux "Comment récupérer mon nom d'utilisateur MySQL" et "mot de passe" - j'ai pensé qu'il pourrait être utile à quelqu'un de répondre également au OU interprétation.Autrement dit ...

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

OU

2) mot de passe

Cette dernière condition semble avoir déjà été largement résolue, je ne m'en soucierai donc pas.Ce qui suit est 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 un tableau de tous les utilisateurs MySQL.

SI vous avez configuré ODBC, vous pouvez obtenir le mot de passe à partir du fichier de configuration ODBC.Il se trouve dans /etc/odbc.ini pour Linux et dans le dossier Software/ODBC du registre de Windows (il y en a plusieurs - cela peut prendre un peu de temps)

Pour les utilisateurs de Windows, vous pouvez suivre ceci guide pour réinitialiser votre mot de passe

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top