web-dev-qa-db-fra.com

Réinitialisation du mot de passe ROOT dans MySQL 5.6

J'ai suivi ces instructions pour réinitialiser le mot de passe root pour l'installation locale de MySQL 5.6 sur un ordinateur portable Windows 7.

J'ai arrêté le service, créé fichier-init, et exécuté la commande suivante (en tant qu'administrateur):

"C:\Program Files\MySQL\MySQL Server 5.6\bin\mysqld" --defaults-file="C:\ProgramData\MySQL\MySQL Server 5.6\my.ini" --init-file=C:\\MySQL-misc\\mysql-init.txt

J'ai reçu l'avertissement suivant :

2014-02-08 15:44:10 0 [Avertissement] TIMESTAMP avec la valeur implicite DEFAULT est obsolète. Veuillez utiliser l'option de serveur --explicit_defaults_for_timestamp (voir la documentation pour plus de détails).

Puisqu'il s'agit d'un avertissement, je ne sais pas si je dois réparer quoi que ce soit, puis recommencer le processus.

Actuellement, la fenêtre de commande est toujours ouverte et n'accepte aucune entrée. Dois-je le fermer de force ou puis-je faire quoi que ce soit pour terminer le processus avec élégance?

[~ # ~] mise à jour [~ # ~]

J'ai tué la fenêtre de commande et essayé de redémarrer le service. Vous avez une erreur.

Windows a redémarré et le service a démarré automatiquement. Le nouveau root password semble fonctionner. J'ai réussi à utiliser diverses fonctions de Workbench qui nécessitent le mot de passe.

Ainsi, l'avertissement n'était en effet qu'un avertissement.

18
PM 77-1

Le problème a été résolu .

Comme indiqué dans ma question, j'ai suivi instructions du manuel MySQL .

Le processus ne s'est pas déroulé exactement comme décrit (et c'était la raison de mon message d'origine) mais il a quand même fonctionné (voir [~ # ~] update [ ~ # ~] dans mon article).

4
PM 77-1

Sous Windows:

0) arrêter le service mysql56

1) allez à C:\ProgramData\MySQL\MySQL Server 5.6, notez que ProgramData est un dossier caché

2) recherche du fichier my.ini, ouvrez-le et ajoutez une ligne skip-grant-tables au dessous de [mysqld],enregistrer

[mysqld]

skip-grant-tables

3) démarrer le service mysql56

4) à droite, vous pouvez accéder à la base de données, exécutez mysql

5) et utilisez la requête ci-dessous pour mettre à jour le mot de passe

update mysql.user set password=PASSWORD('NEW PASSWORD') where user='root';

note: pour une version plus récente, utilisez authentication_string au lieu de password

6) fermez à nouveau le service, supprimez la ligne skip-grant-tables enregistrez-le et redémarrez le service. essayez d'utiliser le mot de passe que vous avez défini pour vous connecter.


Sur Mac:

0) arrêtez le service

Sudo /usr/local/mysql/support-files/mysql.server stop

1) Ignorer le tableau des subventions

Sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables

une fois qu'il fonctionne, ne le fermez pas et ouvrez une nouvelle fenêtre de terminal

2) allez dans le terminal mysql

/usr/local/mysql/bin/mysql -u root

3) mettre à jour le mot de passe

UPDATE mysql.user SET Password=PASSWORD('password') WHERE User='root';

pour une version plus récente comme 5.7, utilisez

UPDATE mysql.user SET authentication_string=PASSWORD('password') WHERE User='root';

4) exécutez FLUSH PRIVILEGES;

5) exécutez \q quitter

6) Démarrez le serveur mysql

Sudo /usr/local/mysql/support-files/mysql.server start
55
Timeless
  • Arrêtez le service Mysql en allant dans Outils d'administration> Services
  • Ouvrez Démarrer> Exécuter> cmd (Exécuter en tant qu'administrateur)
  • Démarrez le serveur manuellement à l'aide de cette ligne:

    mysqld -P3306 --skip-grant-tables
    
  • Dans le nouveau cmd (Exécuter en tant qu'administrateur) exécutez:

    mysql -P3306 mysql
    
  • Exécutez la requête suivante dans le client mysql:

    update mysql.user set authentication_string=password('new_password') where user='root';
    

C'est ça!!

5

Mise à jour cette réponse concernant les changements dans MySQL 5.7:

0) arrêter le service mysql57

1) allez dans C:\ProgramData\MySQL\MySQL Server 5.7, Notez que ProgramData est un dossier caché

2) à la recherche du fichier my.ini, Ouvrez-le et ajoutez une ligne skip-grant-tables Sous [mysqld], Enregistrez

[mysqld]

skip-grant-tables

3) démarrer le service mysql57

4) à droite, vous pouvez accéder à la base de données, exécuter mysql

5) et utilisez la requête ci-dessous pour mettre à jour le mot de passe

update mysql.user set authentication_string=password('NEW_PASSWORD') where user='root';

6) fermez à nouveau le service, supprimez la ligne skip-grant-tables Enregistrez-le et redémarrez le service. essayez d'utiliser le mot de passe que vous avez défini pour vous connecter.

2
Polyakoff

Arrêtez d'abord le serveur mysql et suivez les étapes ci-dessous:

Allez dans le répertoire mysql bin sur cmd i, e. cd C:\ProgramData\MySQL\MySQL Server 5.6\bin (C'est un répertoire caché)

sauter les tables de subventions vous permettra d'entrer dans mysql

  • mysqld.exe --skip-grant-tables

Ouvrir une nouvelle invite de commande ou sur la même invite de commande

  • mysql.exe -uroot -p (Sans mot de passe, vous pouvez vous connecter à mysql)

exécuter sous la requête pour changer le mot de passe root de mysql

  • UPDATE mysql.user set password=password('root password') WHERE user='root';
  • flush privileges

C'est tout, redémarrez mysql et bon pour aller avec un nouveau mot de passe .. !!

0
Mohamed Ayas

Sans modifier mi.ini:

service mysql stop
mysqld_safe --skip-grant-tables

sur une session ssh distincte:

update mysql.user set password=PASSWORD('NEW PASSWORD') where user='root';

pas besoin de vider les privilèges, redémarrez simplement le serveur

0
Cris

Si vous avez installé Xampp.

  1. Aller à C:\xampp\mysql\bin
  2. Ouvrez le fichier my.ini
  3. Mettez skip-grant-tables Sous [mysqld]
  4. Aller aux services Windows et arrêter le service mysql
  5. Déclenchez cette commande à partir de l'invite de commande C:\xampp\mysql\bin\mysql
  6. Maintenant, réinitialisez le mot de passe root avec la requête MySQL update mysql.user set password=PASSWORD('root') where user='root';
  7. Quittez l'invite de commande.
  8. Redémarrez le service Windows mysql qui a été désactivé à l'étape 4.
  9. Vous pourrez maintenant vous connecter à mysql en utilisant le mot de passe en tant que root.
0
webDev

Pour MySQL 5.6 sur Windows, j'ai dû exécuter cette instruction pour la faire fonctionner.

UPDATE mysql.user
SET Password=PASSWORD('NEW PASSWORD'), 
authentication_String=PASSWORD('NEW PASSWORD')
WHERE User='root';
0
Mohan