web-dev-qa-db-fra.com

Comment connaître mon mot de passe root MySQL?

Je viens d'installer MySQL sur Ubuntu et l'utilisateur root ne peut pas se connecter :)

Comment puis-je récupérer ou retrouver mon mot de passe? L'utilisation d'un mot de passe vierge ne fonctionne pas.

63
Genadinik

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

Vous devriez maintenant 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 a réinitialisé le mot de passe, mais la procédure ci-dessus fonctionnera toujours.

Remarque: avant MySQL 5.7, la colonne s'appelait password au lieu de authentication_string. Remplacez la ligne ci-dessus par

mysql> update user set password=PASSWORD("YOUR-NEW-ROOT-PASSWORD") where User='root';
130
Benjamin Manns

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é le serveur MySQL 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, contrairement à ce que j’avais prévu. Je suppose qu'il y a deux réponses:

Solution n ° 1: installez MySQL par son nom complet:

$ Sudo apt-get install mysql-server-5.5

Ou

Solution n ° 2: reconfigurez le package ...

$ Sudo dpkg-reconfigure mysql-server-5.5

Vous devez spécifier le nom complet du package. Utiliser le méta-paquet 'mysql-server' n'a pas eu le résultat escompté. J'espère que ça aidera quelqu'un :)

Référence: https://help.ubuntu.com/12.04/serverguide/mysql.html

18
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
7
Alex Ivasyuv

MySQL 5.5 sur Ubuntu 14.04 nécessitait 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

Et 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 propose également une autre méthode.

7
eebbesen

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>  
3
Gurumurthy

Il y a une solution simple.

MySql 5.7 est fourni avec un utilisateur anonyme. Vous devez donc reconfigurer le serveur MySQL.

Vous pouvez le faire avec cette commande

essayez de trouver une passe temporaire:

grep 'temporary password' /var/log/mysqld.log

puis:

Sudo mysql_secure_installation

Sur ce lien est plus d'infos sur mysql 5.7

https://dev.mysql.com/doc/refman/5.7/en/linux-installation-yum-repo.html

1
Stevan Tosic

C'est en fait très simple. Vous n'avez pas à passer par beaucoup de choses. Il suffit d’exécuter la commande suivante dans le terminal et de suivre les instructions à l’écran.

Sudo mysql_secure_installation
0
Santhosh Kalisamy

Sous MYSQL 5.7, si vous utilisez mysql à des fins de développement, il suffit de: 

1.kill mysql: 

$ Sudo service mysql stop

2.démarrez mysql en mode --skip-grant-tables: 

$ Sudo mysqld_safe --skip-grant-tables 

et, en outre, vous pouvez essayer de changer la table utilisateur sous le mode "sauter-accorder-table", mais j'ai échoué. 

alors, ceci est juste une solution de contournement. 

0