Je viens d'installer MySQL sur Mac OS X. L'étape suivante consistait à définir le mot de passe de l'utilisateur root. J'ai donc procédé comme suit:
Sous l'invite Unix, j'ai exécuté ces commandes:
$ cd /usr/local/mysql/bin
$ ./mysqladmin -u root password 'password'
Mais, quand j'exécute la commande
$ ./mysql -u root
, voici la réponse:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 224
Server version: 5.5.13 MySQL Community Server (GPL)
Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
Je peux entrer dans la ligne de commande mysql
sans mot de passe!
Pourquoi est-ce?
Essayez la commande FLUSH PRIVILEGES
lorsque vous vous connectez au terminal MySQL. Si cela ne fonctionne pas, essayez le jeu de commandes suivant dans le terminal MySQL
$ mysql -u root
mysql> USE mysql;
mysql> UPDATE user SET password=PASSWORD("NEWPASSWORD") WHERE User='root';
mysql> FLUSH PRIVILEGES;
mysql> quit
Changez NEWPASSWORD avec le mot de passe que vous voulez. Devrait être tous ensemble!
Mise à jour: Depuis MySQL 5.7, le champ password
a été renommé authentication_string
. Lorsque vous modifiez le mot de passe, utilisez la requête suivante pour modifier le mot de passe. Toutes les autres commandes restent les mêmes:
mysql> UPDATE user SET authentication_string=PASSWORD("NEWPASSWORD") WHERE User='root';
Mise à jour: La version 8.0.15 (peut-être déjà avant cette version), la fonction PASSWORD () ne fonctionne pas, comme indiqué dans les commentaires ci-dessous. Vous devez utiliser:
UPDATE mysql.user SET authentication_string='password' WHERE User='root';
Si vous ne vous souvenez pas du mot de passe que vous avez défini pour root et que vous devez le réinitialiser, procédez comme suit:
Sudo mysqld_safe --skip-grant-tables;
mysql -u root
Pour MySQL plus ancien que MySQL 5.7, utilisez:
UPDATE mysql.user SET Password=PASSWORD('your-password') WHERE User='root';
Pour MySQL 5.7+, utilisez:
USE mysql;
UPDATE mysql.user SET authentication_string=PASSWORD("your-password") WHERE User='root';
Actualiser et quitter:
FLUSH PRIVILEGES;
\q
Une fois que vous avez installé MySQL, vous devrez établir le mot de passe "root". Si vous n'établissez pas de mot de passe root, eh bien, il n'y a pas de mot de passe root et vous n'avez pas besoin de mot de passe pour vous connecter.
Cela étant dit, vous devez établir un mot de passe root.
À l'aide du terminal, entrez les informations suivantes:
/usr/local/mysql/bin/mysqladmin -u root password NEW_PASSWORD_HERE
Si vous avez commis une erreur ou devez modifier le mot de passe root, utilisez les éléments suivants:
cd /usr/local/mysql/bin/
./mysql -u root -p
> Enter password: [type old password invisibly]
use mysql;
update user set password=PASSWORD("NEW_PASSWORD_HERE") where User='root';
flush privileges;
quit
Les instructions fournies sur le site Web mysql sont si claires que les
$ Sudo /usr/local/mysql/support-files/mysql.server stop
$ Sudo /usr/local/mysql/support-files/mysql.server start --skip-grant-tables
/usr/local/mysql/bin/mysql
exit
ou Ctrl + z$ Sudo /usr/local/mysql/support-files/mysql.server stop
$ Sudo /usr/local/mysql/support-files/mysql.server start
/usr/local/mysql/support-files/mysql -u root -p
Référence: http://dev.mysql.com/doc/refman/5.7/en/resetting-permissions.html
Arrêtez le serveur mysqld.
System Preferences
> MySQL
> Stop MySQL Server
Sudo systemctl stop mysqld.service
Démarrer le serveur en mode sans échec avec contournement des privilèges
Sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables
Dans une nouvelle fenêtre de terminal:
Sudo /usr/local/mysql/bin/mysql -u root
Cela ouvrira la ligne de commande mysql. De là entrez:
UPDATE mysql.user SET authentication_string=PASSWORD('NewPassword') WHERE User='root';
FLUSH PRIVILEGES;
quit
Arrêtez à nouveau le serveur mysqld et redémarrez-le en mode normal.
Sudo /usr/local/mysql/support-files/mysql.server restart
Sudo systemctl restart mysqld
Pour le nouveau Mysql 5.7, pour une raison quelconque, les commandes bin de Mysql non jointes au shell:
Redémarrez le Mac après l'installation.
Commencez Mysql:
Préférences Système> Mysql> Bouton Démarrer
Allez dans le dossier d’installation Mysql dans le terminal:
$ cd /usr/local/mysql/bin/
Accès à Mysql:
$ ./mysql -u root -p
et entrez le mot de passe initial attribué à l'installation.
Dans le terminal Mysql, changez le mot de passe:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPassword';
Dans le terminal, écrivez mysql -u root -p
et appuyez sur Retour. Entrez le mot de passe mysql actuel que vous devez avoir noté. Et définir le mot de passe SET PASSWORD = PASSWORD('new_password');
Veuillez vous référer à cette documentation ici pour plus de détails.
Si vous avez oublié le mot de passe root de MySQL, si vous ne vous souvenez plus ou si vous souhaitez vous introduire, vous pouvez réinitialiser le mot de passe de la base de données mysql à partir de la ligne de commande sous Linux ou OS X tant que vous connaissez le mot de passe de l'utilisateur root de la boîte. tu es sur:
(1) Arrêtez MySQL
Sudo /usr/local/mysql/support-files/mysql.server stop
(2) Démarrer en mode sans échec:
Sudo mysqld_safe --skip-grant-tables
(3) Ce sera une commande en cours jusqu'à la fin du processus ouvrez une autre fenêtre Shell/terminal, connectez-vous sans mot de passe:
mysql -u root
UPDATE mysql.user SET Password=PASSWORD('password') WHERE User='root';
Dans la commande UPDATE ci-dessus, remplacez simplement le "mot de passe" par votre nouveau mot de passe, en veillant à conserver les guillemets.
(4) Enregistrer et assez
FLUSH PRIVILEGES;
\q
(5) Démarrer MySQL
Sudo /usr/local/mysql/support-files/mysql.server start
Les méthodes mentionnées dans les réponses existantes ne fonctionnent pas pour mysql 5.7.6 ou ultérieur. Selon la documentation de MySQL, c'est la méthode recommandée.
B.5.3.2.3 Réinitialisation du mot de passe racine: instructions génériques
MySQL 5.7.6 et versions ultérieures:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
Référence: https://dev.mysql.com/doc/refman/5.7/en/resetting-permissions.html
Lorsque j'ai installé OS X Yosemite, j'ai eu un problème avec Mysql. J'ai essayé beaucoup de méthodes mais aucune n'a fonctionné. J'ai en fait trouvé un moyen assez facile. Essayez ceci.
Sudo su
Sudo /usr/local/mysql/support-files/mysql.server stop
Sudo mysqld_safe --skip-grant-tables
mysql -u root
UPDATE mysql.user SET Password=PASSWORD('new_password') WHERE User='root';
FLUSH PRIVILEGES;
Si vous ne vous souvenez plus de votre mot de passe, la réponse de @ radtek a fonctionné pour moi, sauf que dans mon cas, j'avais configurer MySQL avec Brew , ce qui signifie que les étapes 1 et 2 de sa réponse devait être changé pour:
/usr/local/bin/mysql.server stop
/usr/local/bin/mysqld_safe --skip-grant-tables
Remarque: le manque de Sudo
.
Je pense que cela devrait fonctionner:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'YOURNEWPASSWORD'
(Notez que vous devriez probablement remplacer root par votre nom d'utilisateur s'il ne s'agit pas de root)
Sudo /usr/local/mysql/support-files/mysql.server stop
Sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables &
/usr/local/mysql/bin/mysql -u root
use mysql;
UPDATE user SET authentication_string=PASSWORD('NEW_PASSWORD') WHERE user='root';
FLUSH PRIVILEGES;
exit
Exécuter /usr/local/mysql/bin/mysql -u root
Maintenant, entrez le nouveau mot de passe pour commencer à utiliser MySQL.
C'est ce qui a fonctionné exactement pour moi:
Assurez-vous qu'aucun autre processus MySQL n'est en cours d'exécution. Pour le vérifier, procédez comme suit:
a.From the terminal, run this command:
lsof -i:3306
If any PID is returned, kill it using kill -9 PID
b. Go To System Preferences > MySQL > check if any MySQL instances
are running, stop them.
Démarrez MySQL avec la commande:
Sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables
Le mot de passe de chaque utilisateur est stocké dans la table mysql.user sous les colonnes User et authentication_string, respectivement. Nous pouvons mettre à jour la table en tant que:
UPDATE mysql.user SET authentication_string='your_password' where User='root'
Essayez ceci dans le terminal: /usr/local/bin/mysql_secure_installation
Beaucoup de choses ont changé pour MySQL 8. J'ai trouvé la modification suivante de la documentation = "Comment réinitialiser le mot de passe root" de MySQL fonctionne avec Mac OS X.
Créez un fichier temporaire $HOME/mysql.root.txt
avec le code SQL pour mettre à jour le mot de passe root:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '<new-password>';
Ceci utilise mysql_native_password
pour éviter le le plugin d'authentification 'caching_sha2_password' ne peut pas être chargé erreur, ce que j'obtiens si j'omets l'option.
Arrêtez le serveur, démarrez avec une option --init-file
pour définir le mot de passe root, puis redémarrez le serveur:
mysql.server stop mysql.server start --init-file=$HOME/mysql.root.txt mysql.server stop mysql.server start
Si vous avez oublié votre mot de passe ou si vous voulez le changer en votre mysql:
Sudo su
Sudo /usr/local/mysql/support-files/mysql.server stop
mysql -u root
UPDATE mysql.user SET authentication_string=PASSWORD('new_password') WHERE User='root';
où "new_password" - votre nouveau laissez-passer. Vous n'avez pas besoin d'un ancien laissez-passer pour mysql.
FLUSH PRIVILEGES;
Ajoutons cette solution de contournement qui fonctionne sur mon ordinateur portable!
Mac avec Osx Mojave 10.14.5
Mysql 8.0.17 a été installé avec homebrew
Je lance la commande suivante pour localiser le chemin de mysql
brew info mysql
Une fois le chemin connu, je lance ceci:
/usr/local/Cellar/mysql/8.0.17/bin/mysqld_safe --skip-grant-table
Dans un autre terminal, je cours:
mysql -u root
À l'intérieur de ce terminal, j'ai changé le mot de passe root en utilisant:
update mysql.user set authentication_string='NewPassword' where user='root';
et pour finir je cours:
FLUSH PRIVILEGES;
Et voila le mot de passe a été réinitialisé.
mysqld_safe --skip-grant-tables
mysql -u root
UPDATE mysql.user SET authentication_string='yourpasswd' WHERE User='root';
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'yourpasswd';
J'ai en quelque sorte besoin de le faire chaque fois que mon Macbook redémarre. En publiant ceci à titre de référence personnelle, j'espère que cela aidera aussi quelqu'un d'autre.
macOS 10.14+ avec 5.7.26 installé à partir du programme d'installation de Mac OSX DMG.
Lorsque vous essayez d'utiliser la commande UPDATE envoyée par d'autres utilisateurs, l'erreur suivante apparaît:
ERREUR 1820 (HY000): Vous devez réinitialiser votre mot de passe à l'aide de l'instruction ALTER USER avant d'exécuter cette instruction.
Copiez le mot de passe qui vous a été présenté par le terminal ouvert du programme d'installation et procédez comme suit:
mysql -uroot -p
ALTER USER 'root'@'localhost' IDENTIFIED BY 'YOURPASSWORDHERE';