web-dev-qa-db-fra.com

Comment trouver le mot de passe root MySQL

Je n'arrive pas à comprendre mon mot de passe root MySQL; Comment puis-je le savoir? Y at-il un fichier où ce mot de passe est stocké? 

Je suis ce link mais je n'ai pas de répertoire directadmin en local.

136
2619

grâce à @thusharaK, j'ai pu réinitialiser le mot de passe root sans connaître l'ancien mot de passe.

Sur Ubuntu j'ai fait ce qui suit:

Sudo service mysql stop
Sudo mysqld_safe --skip-grant-tables --skip-syslog --skip-networking

Puis lancez mysql dans un nouveau terminal:

mysql -u root

Et exécutez les requêtes suivantes pour changer le mot de passe:

UPDATE mysql.user SET authentication_string=PASSWORD('password') WHERE User='root';
FLUSH PRIVILEGES;

Dans MySQL 5.7, le champ mot de passe de la table mysql.user a été supprimé. Le nom du champ est maintenant "authentication_string".

Quittez le mode sans échec mysql et démarrez le service mysql en:

mysqladmin shutdown
Sudo service mysql start
119
eeezyy

Vous ne pouvez pas voir le mot de passe haché; la seule chose à faire est de le réinitialiser!

Arrêtez MySQL:

Sudo service mysql stop

ou

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

Démarrez-le en mode sans échec:

$ Sudo mysqld_safe --skip-grant-tables

(la ligne ci-dessus est la commande entière)

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

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

MySQL 5.7 et plus: 

mysql> use mysql; 
mysql> update user set authentication_string=password('password') where user='root'; 

Démarrer MySQL:

Sudo mysql start

ou

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

Votre nouveau mot de passe est "mot de passe".

62
tk_

MySQL 5.7 et supérieur enregistre la racine dans le fichier journal MySQL.

S'il vous plaît essayez ceci:

Sudo grep 'temporary password' /var/log/mysqld.log
32
Vlad

Vous ne pouvez pas le trouver. Il est stocké dans une base de données, à laquelle vous avez besoin du mot de passe root, et même si vous y avez accès, il est haché avec un hachage à sens unique. Vous pouvez le réinitialiser: http://dev.mysql.com/doc/refman/5.0/fr/resetting-permissions.html

17
lanzz

Sauf si le gestionnaire de packages vous demande de taper le mot de passe root lors de l'installation, le mot de passe root par défaut est la chaîne vide. Pour vous connecter au serveur fraîchement installé, tapez:

Shell> mysql -u root --password=
mysql>

Pour changer le mot de passe, récupérez le shell unix et tapez:

Shell> mysqladmin -u root --password= password root

Le nouveau mot de passe est "root". Maintenant connectez-vous au serveur:

Shell> mysql -u root --password=
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

Oups, le mot de passe a changé. Utilisez le nouveau, root:

Shell> mysql -u root --password=root
...
blah, blah, blah : mysql welcome banner
...
mysql> 

Bingo! Nouveau faire quelque chose d'intéressant

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
+--------------------+
3 rows in set (0.00 sec)

Maurycy

8
mszmurlo

En complément des autres réponses, dans une installation de cpanel, le mot de passe racine mysql est stocké dans un fichier nommé /root/.my.cnf. (et le service cpanel le réinitialise à la modification, les autres réponses ne vous aideront donc pas)

6
Ohad Cohen

Le mot de passe par défaut qui a fonctionné pour moi après l'installation immédiate de mysql est le suivant: mysql

6
Deepak Chaudhry

vous pouvez voir le mot de passe root mysql, eh bien je l'ai essayé sur mysql 5.5, donc je ne sais pas si la nouvelle version fonctionne bien ou pas 

nano ~/.my.cnf
6
user889030

Cela a fonctionné pour moi:

Sur le terminal, tapez ce qui suit

$ Sudo mysql -u root -p

Entrez le mot de passe: // appuyez simplement sur enter

mysql>

3
Light

une chose qui m'a fait trébucher sur une nouvelle installation de MySQL et me demande pourquoi je ne pouvais pas obtenir le mot de passe par défaut pour fonctionner et pourquoi même les méthodes de réinitialisation ne fonctionnaient pas. Il se trouve bien que sur Ubuntu 18, la version la plus récente du serveur mysql n’utilise pas l’authentification de mot de passe du tout pour l’utilisateur root par défaut. Donc, cela signifie que peu importe ce que vous définissez, cela ne vous laissera pas l'utiliser. il s'attend à ce que vous vous connectiez à partir d'un socket privilégié. alors

mysql -u root -p

ne fonctionnera pas du tout, même si vous utilisez le mot de passe correct !!! il refusera l'accès, peu importe ce que vous mettez.

Au lieu de cela, vous devez utiliser

Sudo mysql

cela fonctionnera avec n'importe quel mot de passe. puis une fois que vous avez besoin de vous tapez dans

 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Password you want to use';

puis déconnectez-vous et maintenant la chose sanglante va enfin accepter votre mot de passe

3
Kit Ramos

Dans votre fichier "hostname" .err dans le dossier de données sur lequel MySQL fonctionne, essayez de rechercher une chaîne commençant par:

"Un mot de passe temporaire est généré pour roor @ localhost"

vous pouvez utiliser

less /mysql/data/dir/hostname.err 

puis une barre oblique suivie de la chaîne que vous souhaitez rechercher 

/"A temporary password"

Ensuite, appuyez sur n pour atteindre le résultat suivant.

3
nDCasT

La procédure change en fonction de la version de MySql. Suivez la procédure exactement comme décrit pour votre version:

  • CONSEILS - À lire avant la page d'instructions de votre version de MySql *

  • A l'étape 5: au lieu d'exécuter CMD, créez un raccourci sur votre bureau appelant CDM.exe. Cliquez ensuite avec le bouton droit sur le raccourci et sélectionnez "Exécuter en tant qu'administrateur".

  • A l'étape 6: Ignorez la première version proposée de la commande et exécutez la seconde, celle avec le paramètre --defaults-file

  • Une fois que vous avez exécuté la commande, si tout va bien, la fenêtre CMD reste ouverte et la commande de l'étape 6 continue de s'exécuter. Fermez simplement la fenêtre (cliquez sur 'x'), puis forcez la fermeture de MySQl à partir du gestionnaire de tâches.

  • Supprimez le fichier avec les commandes SQL et relancez MySQL. Le mot de passe doit être changé maintenant.

5.0 http://dev.mysql.com/doc/refman/5.0/fr/resetting-permissions.html

5.1 http://dev.mysql.com/doc/refman/5.1/en/resetting-permissions.html

... changez simplement la version dans le lien (5.5, 5.6, 5.7)

3
JuanCamilo

Système:

  • CentOS Linux 7
  • mysql Ver 14.14 Distrib 5.7.25

Procédure:

  1. Ouvrez deux sessions Shell en vous connectant à l’une d’elles en tant qu’utilisateur root Linux et à l’autre en tant qu’utilisateur non root ayant accès à la commande mysql.

  2. Dans votre session root, arrêtez l'écouteur mysqld normal et démarrez un écouteur qui contourne l'authentification par mot de passe (. Remarque: il s'agit d'un risque de sécurité important La commande mysql peut accéder à vos bases de données sans mot de passe. Vous souhaiterez peut-être fermer les sessions Shell actives et/ou désactiver l'accès Shell avant de procéder ainsi:

    # systemctl stop mysqld
    # /usr/sbin/mysqld --skip-grant-tables -u mysql &

  3. Dans votre session non root, connectez-vous à mysql et définissez le mot de passe root mysql:

    $ mysql
    mysql> flush privileges;
    Query OK, 0 rows affected (0.00 sec)

    mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');
    Query OK, 0 rows affected, 1 warning (0.01 sec)

    mysql> quit;

  4. Dans votre session root, supprimez l'instance sans mot de passe de mysqld et restaurez l'écouteur mysqld normal au service:

    # kill %1
    # systemctl start mysqld

  5. Dans votre session non root, testez le nouveau mot de passe root que vous avez configuré ci-dessus:

    $ mysql -u root -p
    Enter password:
    Welcome to the MySQL monitor. Commands end with ; or \g.
    ...
    mysql>

0
CODE-REaD

Les réponses fournies ici ne semblent pas fonctionner pour moi, le truc s'est avéré être: ALTER USER 'root' @ 'localhost' IDENTIFIÉ AVEC mysql_native_password BY 'test';

(réponse complète ici: https://www.percona.com/blog/2016/03/16/change-user-password-in-mysql-5-7-with-plugin-auth_socket/ )

0
user3136936