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.
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).
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
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!!
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.
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é)
mysqld.exe --skip-grant-tables
mysql.exe -uroot -p
(Sans mot de passe, vous pouvez vous connecter à mysql)UPDATE mysql.user set password=password('root password') WHERE user='root';
flush privileges
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
Si vous avez installé Xampp.
skip-grant-tables
Sous [mysqld]
C:\xampp\mysql\bin\mysql
update mysql.user set password=PASSWORD('root') where user='root';
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';