Comment puis-je trouver mon mot de passe MySQL racine?
Je viens d'installer MySQL sur Ubuntu et l'utilisateur root ne peut pas se connecter:)
Comment puis-je récupérer ou trouver mon mot de passe? L'utilisation de blank pour le mot de passe ne fonctionne pas.
8 réponses
Vous pouvez réinitialiser le mot de passe root en exécutant le serveur avec --skip-grant-tables
et en vous connectant sans mot de passe en exécutant ce qui suit en tant que root (ou avec sudo):
# service mysql stop
# mysqld_safe --skip-grant-tables &
$ mysql -u root
mysql> use mysql;
mysql> update user set authentication_string=PASSWORD("YOUR-NEW-ROOT-PASSWORD") where User='root';
mysql> flush privileges;
mysql> quit
# service mysql stop
# service mysql start
$ mysql -u root -p
Maintenant, vous devriez pouvoir vous connecter en tant que root avec votre nouveau mot de passe.
Il est également possible de trouver la requête qui réinitialise le mot de passe dans /home/$USER/.mysql_history
ou /root/.mysql_history
de l'utilisateur qui réinitialise le mot de passe, mais ce qui précède fonctionnera toujours.
Note: avant MySQL 5.7, la colonne était appelée password
au lieu de authentication_string
. Remplacer la ligne ci-dessus par
mysql> update user set password=PASSWORD("YOUR-NEW-ROOT-PASSWORD") where User='root';
Je me rends compte que c'est un vieux fil, mais je pensais le mettre à jour avec mes résultats.
Alex, on dirait que vous avez installé MySQL server via le méta-paquet 'mysql-server'. Cela installe le dernier paquet par référence (dans mon cas, mysql-server-5.5). Comme vous, je n'ai pas été invité à entrer un mot de passe MySQL lors de l'installation comme je l'avais prévu. Je suppose qu'il y a deux réponses:
Solution # 1: Installez MySQL par son nom complet:
$ sudo apt-get install mysql-server-5.5
Ou
Solution # 2: reconfigurer le paquet...
$ sudo dpkg-reconfigure mysql-server-5.5
Vous devez spécifier le nom complet du paquet. En utilisant le méta-paquet mysql-server " n'a pas eu le résultat souhaité pour moi. J'espère que cela aide quelqu'un :)
Référence: https://help.ubuntu.com/12.04/serverguide/mysql.html
MySQL 5.5 sur Ubuntu 14.04 nécessite des commandes légèrement différentes comme recommandé ici . En un mot:
sudo /etc/init.d/mysql stop
sudo /usr/sbin/mysqld --skip-grant-tables --skip-networking &
mysql -u root
Puis à partir de L'invite MySQL
FLUSH PRIVILEGES;
SET PASSWORD FOR root@'localhost' = PASSWORD('password');
UPDATE mysql.user SET Password=PASSWORD('newpwd') WHERE User='root';
FLUSH PRIVILEGES;
Et la source citée offre une autre méthode.
Pour RHEL-mysql 5.5:
/etc/init.d/mysql stop
/etc/init.d/mysql start --skip-grant-tables
mysql> UPDATE mysql.user SET Password=PASSWORD('newpwd') WHERE User='root';
mysql> FLUSH PRIVILEGES;
mysql> exit;
mysql -uroot -pnewpwd
mysql>
sudo mysql -u root
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'YOUR_PASSWORD_HERE';
FLUSH PRIVILEGES;
mysql -u root -p # and it works
, Vous ne pouvez pas cependant : http://dev.mysql.com/doc/refman/5.0/en/resetting-permissions.html
Hmm Mysql 5.7.13 pour réinitialiser tout ce que j'ai fait était:
$ sudo service mysql stop
Pour arrêter mysql
$ mysqld_safe --skip-grant-tables &
Démarrer mysql
$ mysql -u root
Tout comme la bonne réponse. Ensuite, tout ce que j'ai fait était de faire ce que @eebbesen a fait.
mysql> SET PASSWORD FOR root@'localhost' = PASSWORD('NEW-password-HERE');
J'espère que cela aide n'importe qui :)
Sous MYSQL 5.7, si vous utilisez mysql à des fins de développement, juste:
1.tuer mysql :
$ sudo service mysql stop
2.démarrer mysql en mode -- skip-grant-tables:
$ sudo mysqld_safe --skip-grant-tables
Et, de plus, vous pouvez essayer de changer la table Utilisateur en mode "skip-grant-table", mais j'ai échoué.
Donc, c'est juste une solution de contournement.