web-dev-qa-db-fra.com

Définition du mot de passe de l'utilisateur root MySQL sous OS X

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:

  1. Lancez l'application Terminal pour accéder à la ligne de commande Unix.
  2. 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?

226
madaura

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

310
Scott

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:

  1. Arrêtez le serveur mysqld, cela varie par installation
  2. Exécuter le serveur en mode sans échec avec contournement des privilèges

Sudo mysqld_safe --skip-grant-tables;

  1. Dans une nouvelle fenêtre, connectez-vous à la base de données, définissez un nouveau mot de passe, supprimez les autorisations et quittez:

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

  1. Arrêtez le serveur en mode sans échec et redémarrez votre serveur habituel. Le nouveau mot de passe devrait fonctionner maintenant. A fonctionné à merveille pour moi :)
190
radtek

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:

Installation: Définir le mot de passe de l'utilisateur root:

/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:

Changer le mot de passe root:

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
84
bob

Les instructions fournies sur le site Web mysql sont si claires que les

  1. $ Sudo /usr/local/mysql/support-files/mysql.server stop
  2. $ Sudo /usr/local/mysql/support-files/mysql.server start --skip-grant-tables
  3. /usr/local/mysql/bin/mysql
  4. mysql> FLUSH PRIVILEGES;
  5. mysql> ALTER USER 'racine' @ 'localhost' IDENTIFIED BY 'MyNewPass';
  6. mysql> exit ou Ctrl + z
  7. $ Sudo /usr/local/mysql/support-files/mysql.server stop
  8. $ Sudo /usr/local/mysql/support-files/mysql.server start
  9. /usr/local/mysql/support-files/mysql -u root -p
  10. Entrez le nouveau mot de passe i.e MyNewPass

Référence: http://dev.mysql.com/doc/refman/5.7/en/resetting-permissions.html

60
Ankireddy Polu
  1. Arrêtez le serveur mysqld.

    • Mac OSX:System Preferences> MySQL> Stop MySQL Server
    • Linux (à partir du terminal):Sudo systemctl stop mysqld.service
  2. Démarrer le serveur en mode sans échec avec contournement des privilèges

    • à partir du terminal:Sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables
  3. Dans une nouvelle fenêtre de terminal:

    • Sudo /usr/local/mysql/bin/mysql -u root
  4. Cela ouvrira la ligne de commande mysql. De là entrez:

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

    • FLUSH PRIVILEGES;

    • quit

  5. Arrêtez à nouveau le serveur mysqld et redémarrez-le en mode normal.

    • Mac OSX (à partir d'un terminal):Sudo /usr/local/mysql/support-files/mysql.server restart
    • Terminal Linux:Sudo systemctl restart mysqld
55
imbond

Pour le nouveau Mysql 5.7, pour une raison quelconque, les commandes bin de Mysql non jointes au shell:

  1. Redémarrez le Mac après l'installation.

  2. Commencez Mysql:

    Préférences Système> Mysql> Bouton Démarrer

  3. Allez dans le dossier d’installation Mysql dans le terminal:

    $ cd /usr/local/mysql/bin/

  4. Accès à Mysql:

    $ ./mysql -u root -p

et entrez le mot de passe initial attribué à l'installation.

  1. Dans le terminal Mysql, changez le mot de passe:

    mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPassword';

23
Deoxyseia

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.

15
Nitish Pareek

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
10
Homam Bahrani

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

5

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.

  1. Connectez-vous d'abord au terminal à partir des privilèges su.

Sudo su

  1. arrêtez mysql

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

  1. démarrer en mode sans échec:

Sudo mysqld_safe --skip-grant-tables

  1. ouvrez un autre terminal, connectez-vous en tant que privilèges su que, connectez-vous mysql sans mot de passe

mysql -u root

  1. changer le mot de passe

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

  1. privilèges de chasse

FLUSH PRIVILEGES;

  1. Vous avez terminé maintenant
5
Prem Timsina

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:

  1. /usr/local/bin/mysql.server stop

  2. /usr/local/bin/mysqld_safe --skip-grant-tables

Remarque: le manque de Sudo.

3
schminnie

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)

3
rust

Arrêter le serveur MySQL

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

Démarrer MySQL en mode sans échec

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

Changer le mot de passe root

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

use mysql;
UPDATE user SET authentication_string=PASSWORD('NEW_PASSWORD') WHERE user='root';
FLUSH PRIVILEGES;
exit

Essai

Exécuter /usr/local/mysql/bin/mysql -u root

Maintenant, entrez le nouveau mot de passe pour commencer à utiliser MySQL.

2
Shreyas

C'est ce qui a fonctionné exactement pour moi:

  1. 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.
    
  2. Démarrez MySQL avec la commande:

    Sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables
    
  3. 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'
    
2
sgs

Essayez ceci dans le terminal: /usr/local/bin/mysql_secure_installation

1
Jean-Luc Barat

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

1
djb

Si vous avez oublié votre mot de passe ou si vous voulez le changer en votre mysql:

  1. démarrez votre terminal et entrez:
Sudo su
  1. Entrez passe pour votre système
  2. Arrêtez votre mysql:
Sudo /usr/local/mysql/support-files/mysql.server stop
  1. Laissez cette fenêtre ouverte, ouvrez la deuxième fenêtre du terminal et entrez ici:
mysql -u root
  1. Et changez votre mot de passe pour mysql:
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.

  1. Flush, quittez et vérifiez votre nouveau laissez-passer:
FLUSH PRIVILEGES;
  1. Fermez toutes les fenêtres et vérifiez votre nouveau laissez-passer pour mysql. Bonne chance.
1
Aleksandr Yushko

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é.

Références:

0
Espoir Murhabazi
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.

0
lafeber

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';
0
Tom Bruno