Je n'arrive pas à trouver mon mot de passe root MySQL; comment puis-je le savoir? Y a-t-il un fichier dans lequel ce mot de passe est stocké?
Je suis ce lien mais je n'ai pas d'annuaire directadmin en local.
Je n'arrive pas à trouver mon mot de passe root MySQL; comment puis-je le savoir? Y a-t-il un fichier dans lequel ce mot de passe est stocké?
Je suis ce lien mais je n'ai pas d'annuaire directadmin en local.
Réponses:
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 exécutez mysql dans un nouveau terminal:
mysql -u root
Et exécutez les requêtes suivantes pour modifier le mot de passe:
UPDATE mysql.user SET authentication_string=PASSWORD('password') WHERE User='root';
FLUSH PRIVILEGES;
Dans MySQL 5.7, le champ du mot de passe dans le champ de la table mysql.user a été supprimé, maintenant le nom du champ est 'authentication_string'.
Quittez le mode sans échec mysql et démarrez le service mysql en:
mysqladmin shutdown
sudo service mysql start
mysqladmin -u root -p shutdown
, avec le nouveau mot de passe.
mysql -u root
. Il montre une erreurAccess denied
Vous ne pouvez pas afficher le mot de passe haché; la seule chose que vous pouvez 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
(au-dessus de la ligne se trouve la commande entière)
Ce sera une commande en cours jusqu'à ce que le processus soit terminé, alors 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émarrez MySQL:
sudo mysql start
ou
sudo /usr/local/mysql/support-files/mysql.server start
Votre nouveau mot de passe est «mot de passe».
mysql_secure_installation
et root ne coopérait plus. Que fait le authentication_string
paramètre?
mysqladmin -u root -p shutdown
avec le nouveau mot de passe alorssudo service mysql start
MySQL 5.7 et supérieur enregistre la racine dans le fichier journal MySQL.
Veuillez essayer ceci:
sudo grep 'temporary password' /var/log/mysqld.log
/var/log/mysql/error.log
contenait un avertissement indiquant que le mot de passe root était vide - donc ce genre de chose a sauvé ma journée :)
une chose qui m'a fait trébucher sur une nouvelle installation de mySQL et me demande pourquoi je ne pouvais pas faire fonctionner le mot de passe par défaut et pourquoi même les méthodes de réinitialisation ne fonctionnaient pas. Il s'avère que sur Ubuntu 18, la version la plus récente du serveur mysql n'utilise pas du tout l'authentification par mot de passe pour l'utilisateur root par défaut. Cela signifie que peu importe ce que vous définissez, cela ne vous permettra pas de l'utiliser. il s'attend à ce que vous vous connectiez depuis une socket privilégiée. alors
mysql -u root -p
ne fonctionnera pas du tout, même si vous utilisez le bon mot de passe !!! il refusera l'accès, peu importe ce que vous mettez.
Au lieu de cela, vous devez utiliser
sudo mysql
cela fonctionnera sans aucun mot de passe. puis une fois que vous êtes entré, vous devez taper
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Password you want to use';
puis déconnectez-vous et maintenant la chose sanglante acceptera enfin votre mot de passe
Vous ne pouvez pas le trouver. Il est stocké dans une base de données, à laquelle vous avez besoin du mot de passe root pour accéder, et même si vous avez eu accès d'une manière ou d'une autre, il est haché avec un hachage à sens unique. Vous pouvez le réinitialiser: http://dev.mysql.com/doc/refman/5.0/en/resetting-permissions.html
Suivez ces étapes pour réinitialiser le mot de passe dans le système Windows
Arrêtez le service Mysql du gestionnaire de tâches
Créez un fichier texte et collez l'instruction ci-dessous
MySQL 5.7.5 et versions antérieures:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('yournewpassword');
MySQL 5.7.6 et versions ultérieures:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'yournewpassword';
Enregistrez sous mysql-init.txt
et placez-le dans 'C' drive
.
Ouvrez l'invite de commande et collez ce qui suit
C:\> mysqld --init-file=C:\\mysql-init.txt
mysqld --init-file=/root/m.txt
. J'ai ajouté la commande ci-dessus SET PASSWORD FOR 'root'@'localhost' = PASSWORD('yournewpassword');
à /root/m.txt
À moins que le gestionnaire de packages ne 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». Connectez-vous maintenant 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
En plus des autres réponses, dans une installation cpanel, le mot de passe root mysql est stocké dans un fichier nommé /root/.my.cnf
. (et le service cpanel le réinitialise en cas de modification, les autres réponses ici n'aideront donc pas)
vous pouvez voir le mot de passe root mysql, eh bien je l'ai essayé sur mysql 5.5, donc je ne sais pas sur les autres nouvelles versions fonctionnent bien ou pas
nano ~/.my.cnf
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 Entrée
mysql>
Le mot de passe par défaut qui a fonctionné pour moi après l'installation immédiate du serveur mysql est: mysql
La procédure change en fonction de la version de MySql. Suivez la procédure exactement comme celle décrite pour votre version:
CONSEILS - Lisez avant la page d'instructions de votre version de MySql *
À l'étape 5: au lieu d'exécuter CMD, créez un raccourci sur votre bureau en appelant CDM.exe. Cliquez ensuite avec le bouton droit sur le raccourci et sélectionnez "Exécuter en tant qu'administrateur".
À 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 la commande exécutée, 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 redémarrez MySQL. Le mot de passe doit être changé maintenant.
5.0 http://dev.mysql.com/doc/refman/5.0/en/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)
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 barre oblique suivie de la chaîne que vous souhaitez rechercher
/"A temporary password"
Appuyez ensuite sur n pour accéder au résultat suivant.
Les réponses fournies ici ne semblent pas fonctionner pour moi, le truc s'est avéré être: ALTER USER 'root' @ 'localhost' IDENTIFIED WITH 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/ )
Système:
Procédure:
Ouvrez deux sessions shell, en vous connectant à l'une en tant qu'utilisateur root Linux et à l'autre en tant qu'utilisateur non root ayant accès à la mysql
commande.
Dans votre session racine, 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 car toute personne ayant accès à la mysql
commande peut accéder à vos bases de données sans mot de passe. Vous pouvez fermer les sessions shell actives et / ou désactivez l'accès au shell avant de faire cela):
# systemctl stop mysqld
# /usr/sbin/mysqld --skip-grant-tables -u mysql &
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;
Dans votre session racine, tuez l'instance sans mot de passe de mysqld et restaurez l'écouteur normal de mysqld en service:
# kill %1
# systemctl start mysqld
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>
J'ai résolu cela d'une manière différente, cela peut être plus facile pour certains.
Je l'ai fait de cette façon parce que j'ai essayé de démarrer en mode sans échec mais je ne peux pas me connecter avec l'erreur: ERREUR 2002 (HY000): Impossible de se connecter au serveur MySQL local via le socket '/var/run/mysqld/mysqld.sock' (2)
Ce que j'ai fait, c'est de me connecter normalement en tant que root:
$ sudo mysql -u root
Ensuite, j'ai créé un nouveau super utilisateur:
mysql> grant all privileges on *.* to 'myuser'@'%' identified by 'mypassword' with grant option;
mysql> quit
Puis connectez-vous en tant que myuser
$ mysql -u myuser -p -h localhost
Essayer de changer le mot de passe ne m'a donné aucune erreur mais n'a rien fait pour moi alors j'ai abandonné et recréé l'utilisateur root
mysql> drop user 'root'@'localhost;
mysql> mysql> grant all privileges on *.* to 'root'@'localhost' identified by 'mypassword' with grant option;
L'utilisateur root travaille maintenant avec le nouveau mot de passe
Accédez à phpMyAdmin> config.inc.php> $ cfg ['Servers'] [$ i] ['password'] = '';
phpmyadmin
.