Définir le mot de passe utilisateur MySQL root sur OS X
je viens d'installer MySQL sur Mac OS X. La prochaine étape était de définir le mot de passe de l'utilisateur root, donc je l'ai fait ensuite:
- Lancez l'application terminal pour accéder à la ligne de commande Unix.
-
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
, c'est 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 accéder à la ligne de commande mysql
sans mot de passe!
pourquoi?
14 réponses
essayez la commande FLUSH PRIVILEGES
lorsque vous vous connectez au terminal MySQL. Si cela ne fonctionne pas, essayez l'ensemble 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!
Update : depuis MySQL 5.7, le champ password
a été renommé authentication_string
. En changeant le mot de passe, Utilisez la requête suivante pour changer le mot de passe. Toutes les autres commandes restent les mêmes:
mysql> UPDATE user SET authentication_string=PASSWORD("NEWPASSWORD") 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, suivez ces étapes:
- Arrêter le serveur mysqld, cela varie en fonction de l'installer
- Exécuter le serveur en mode sans échec avec privilège bypass
sudo mysqld_safe --skip-grant-tables;
- dans une nouvelle fenêtre, connectez-vous à la base de données, définissez un nouveau mot de passe et effacez les permissions et quittez:
mysql -u root
De MySQL plus ancienne que MySQL 5.7 utilisation:
UPDATE mysql.user SET Password=PASSWORD('your-password') WHERE User='root';
Pour MySQL 5.7+ utilisation:
USE mysql;
UPDATE mysql.user SET authentication_string=PASSWORD("your-password") WHERE User='root';
de Rafraîchissement et de la quitter:
FLUSH PRIVILEGES;
\q
- arrêtez le serveur en mode de sécurité et redémarrez votre serveur régulier. Nouvelle mot de passe devrait maintenant fonctionner. Travaillé comme un charme pour moi:)
une fois que vous aurez installé MySQL, vous devrez établir le mot de passe" root". Si vous n'établissez pas de mot de passe root, alors, il n'y a pas de mot de passe root, et vous n'avez pas besoin de mot de passe pour vous connecter.
Alors, cela étant dit, vous devez établir un mot de passe root.
utiliser le terminal inscrire ce qui suit:
Installation: mot de passe de l'utilisateur root:
/usr/local/mysql/bin/mysqladmin -u root password NEW_PASSWORD_HERE
Si vous avez fait une erreur, ou besoin de changer le mot de passe root utiliser ce qui suit:
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
les instructions fournies dans le site Web mysql sont tellement claires, que le mentionné ci-dessus
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/support-files/mysql
4) mysql> FLUSH PRIVILEGES;
5) mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
6) Ctrl + z
7) sudo /usr/local/mysql/support-files/mysql.server start
8) /usr/local/mysql/support-files/mysql -u root -p
9) enter the new password i.e MyNewPass
http://dev.mysql.com/doc/refman/5.7/en/resetting-permissions.html
-
Arrêter le serveur mysqld.
- Mac OSX:
System Preferences
>MySQL
>Stop MySQL Server
- Linux (Du Terminal):
sudo systemctl stop mysqld.service
- Mac OSX:
-
Démarrer le serveur en mode sans échec avec privilège bypass
- Du Terminal:
sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables
- Du Terminal:
-
Dans un nouvelle fenêtre de terminal:
-
sudo /usr/local/mysql/bin/mysql -u root
-
-
ceci 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.
- Mac OSX (du Terminal):
sudo /usr/local/mysql/support-files/mysql.server restart
- Terminal Linux:
sudo systemctl restart mysqld
- Mac OSX (du Terminal):
Pour Mysql 5.7 pour une raison quelconque bin commandes de Mysql n'est pas attachée à la coque:
-
redémarrez le Mac après l'installation.
-
Démarrer Mysql:
Préférences Système > Mysql > bouton de Démarrage
-
allez dans le dossier D'installation Mysql dans le terminal:
$ cd /usr/local/mysql/bin/
-
accès à Mysql:
$ ./mysql -u root -p
et entrer le mot de passe initial donné à l'installation.
-
Dans Mysql terminal de changer de mot de passe:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPassword';
dans le terminal, écrivez mysql -u root -p
et appuyez sur Retour.
Saisissez le mot de passe mysql actuel que vous avez dû noter.
Et le mot de passe
SET PASSWORD = PASSWORD('new_password');
s'il vous Plaît se référer à cette documentation ici pour plus de détails.
si vous avez oublié le mot de passe MySQL root, vous ne pouvez pas vous souvenir ou vous voulez entrer par effraction..... vous pouvez réinitialiser le mot de passe de la base de données mysql à partir de la ligne de commande dans Linux ou OS X aussi longtemps que vous connaissez le mot de passe de l'utilisateur root de la boîte sur laquelle vous êtes:
(1) Stop 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 continue jusqu'à ce que le processus soit terminé ainsi ouvrir un 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, il suffit de remplacer le mot de passe par votre nouveau mot de passe, assurez-vous de garder les guillemets
(4) Enregistrer et tout à fait
FLUSH PRIVILEGES;
\q
(5) Start MySQL
sudo /usr/local/mysql/support-files/mysql.server start
quand 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 effectivement trouvé un assez facilement. Essayez ceci.
- première connexion au terminal de su privileges.
sudo su
- stop mysql
sudo /usr/local/mysql/support-files/mysql.server stop
- démarrer en mode sans échec:
sudo mysqld_safe --skip-grant-tables
- ouvrir une autre terminal, se connecter comme su privilèges que, se connecter mysql sans mot de passe
mysql -u root
- changer le mot de passe
UPDATE mysql.user SET Password=PASSWORD('new_password') WHERE User='root';
- flush privileges
FLUSH PRIVILEGES;
- Vous avez terminé maintenant
si vous ne vous souvenez pas de votre mot de passe, la réponse de @radtek a fonctionné pour moi sauf que dans mon cas j'avais mis en place MySQL en utilisant brew ce qui signifie que les étapes 1 et 2 de sa réponse a dû être changée en:
-
/usr/local/bin/mysql.server stop
-
/usr/local/bin/mysqld_safe --skip-grant-tables
Note: le manque de sudo
.
Arrêt Du Serveur MySQL
sudo /usr/local/mysql/support-files/mysql.server stop
Démarrage de 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
test
Exécuter /usr/local/mysql/bin/mysql -u root
entrez maintenant le nouveau mot de passe pour commencer à utiliser MySQL.
Si vous avez oublié votre mot de passe ou souhaitez modifier votre mysql:
- démarrer votre terminal et entrer:
sudo su
- entrer passe pour vous Système
- Stop mysql:
sudo /usr/local/mysql/support-files/mysql.server stop
- laisser cette fenêtre ouverte, exécuter deuxième fenêtre de terminal et entrer ici:
mysql -u root
- et changer votre mot de passe pour mysql:
UPDATE mysql.user SET authentication_string=PASSWORD('new_password') WHERE User='root';
où "new_password" - votre nouvelle passe. Vous n'avez pas besoin de vieux passe pour mysql.
- Flush, arrêter et vérifier votre nouveau mot de passe:
FLUSH PRIVILEGES;
- fermez toutes les fenêtres et vérifiez votre nouvelle carte pour mysql. Bonne chance.
C'est exactement ce qui a fonctionné pour moi:
-
assurez-vous qu'aucun autre processus MySQL n'est en cours.To check this do the
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émarrer MySQL avec la commande:
sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables
-
le mot de passe pour chaque utilisateur est stocké dans le mysql.tableau des utilisateurs colonnes User et authentication_string respectivement. Nous pouvons mettre à jour le table comme:
UPDATE mysql.user SET authentication_string='your_password' where User='root'
beaucoup de choses ont changé pour MySQL 8. J'ai trouvé la modification suivante du MySQL 8.0 "Comment réinitialiser le mot de passe racine "documentation fonctionne avec Mac OS X.
créer un fichier temporaire $HOME/mysql.root.txt
avec le SQL pour mettre à jour le mot de passe root:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '<new-password>';
cela utilise mysql_native_password
pour éviter le plugin D'authentification 'caching_sha2_password' ne peut pas être chargé erreur, ce que j'obtiens si j'oublie l'option.
arrêter le serveur, démarrer avec une option --init-file
pour définir le mot de passe root, puis redémarrer le serveur:
mysql.server stop
mysql.server start --init-file=$HOME/mysql.root.txt
mysql.server stop
mysql.server start