web-dev-qa-db-fra.com

impossible de réinitialiser le mot de passe root de mysql

J'ai besoin de réinitialiser le mot de passe root de mon installation mysql locale mais cela ne me le permet pas. J'ai essayé ceci:

$ Sudo /etc/init.d/mysql stop
 * Stopping MySQL database server mysqld                                                                                                              [ OK ] 
[1]-  Exit 1                  Sudo /usr/sbin/mysqld --skip-grant-tables --skip-networking
[2]+  Exit 1                  Sudo /usr/sbin/mysqld --skip-grant-tables --skip-networking
reg@regDesktopHome:~$ Sudo mysqld --skip-grant-tables &
[1] 13651
reg@regDesktopHome:~$ 140627 19:02:02 [Warning] Using unique option prefix key_buffer instead of key_buffer_size is deprecated and will be removed in a future release. Please use the full name instead.

reg@regDesktopHome:~$ mysql -u root mysql
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
reg@regDesktopHome:~$ Sudo mysql -u root mysql
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
[1]+  Exit 1                  Sudo mysqld --skip-grant-tables

Comment puis-je obtenir le mot de passe réinitialisé? edit 1 J'ai eu ceci:

$ ps ax| grep mysql
16515 ?        Ssl    0:00 /usr/sbin/mysqld
16551 pts/23   S+     0:00 grep --color=auto mysql
reg@regDesktopHome:~/semios/v3upgrade$ Sudo kill -9 16515
reg@regDesktopHome:~/semios/v3upgrade$ ps ax| grep mysql
16678 ?        Ssl    0:00 /usr/sbin/mysqld
16715 pts/23   S+     0:00 grep --color=auto mysql
reg@regDesktopHome:~/semios/v3upgrade$ mysql -u root
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

on dirait qu'un processus redémarre automatiquement mysql dès que je le tue ...

27
cerr

Essayez d'abord d'utiliser

mysql -u root -p

et entrez votre mot de passe (si vous vous en souvenez) à l'invite pour vous connecter en tant qu'utilisateur sql-root (notez que le commutateur -p correspond au mot de passe).

Si vous devez vraiment réinitialiser votre mot de passe root pour mysql, voici une solution simple: reconfigurez le paquet avec dpkg-reconfigure.

Etapes faciles pour réinitialiser le mot de passe root mySQL:

  1. Vérifiez la version de votre mysql-server;

    apt-cache policy mysql-server
    

    et voyez pour la ligne qui montre la version installée parmi d'autres informations. par exemple. pour mon installation c'est:

    Installed: 5.5.37-0ubuntu0.12.04.1
    

    (A partir de cela, je sais que j'ai mysql-server-5.5 installé sur mon système.)

  2. Commencez la reconfiguration avec:

    Sudo dpkg-reconfigure mysql-server-*.*
    

    mysql-server-*.* devrait être remplacé par la version que vous avez. (pour moi ce serait mysql-server-5.5). Cela arrêtera le démon de base de données. Une invite apparaîtra où vous devrez entrer votre nouveau mot de passe et confirmer la reconfiguration.

    snap1

    Le démon sera automatiquement lancé à la fin de la reconfiguration.

  3. Vous pouvez ensuite vous connecter avec:

    mysql -u root -p
    

    et démarrez vos tâches d’administrateur de base de données.

Références:

  1. https://help.ubuntu.com/community/MysqlPasswordReset [Qui serait bientôt nettoyé comme indiqué dans la page.]

  2. Guide du serveur Ubunt relatif à votre version spécifique.

43
precise

Référence tirée de ce blog:

Étape 1: arrêtez le service MySQL.

Sudo service mysql stop

Étape 2: Tuez tous les utilisateurs de mysqld.

Sudo killall -9 mysqld

Étape 3: Démarrer mysqld en mode sans échec.

Sudo mysqld_safe --skip-grant-tables --skip-networking &

Étape 4: démarrez le client mysql

mysql -u root

Étape 5: Une fois la connexion établie, exécutez cette commande pour modifier n’importe quel mot de passe.

FLUSH PRIVILEGES;

Étape 6: Vous pouvez mettre à jour le mot de passe mysql root.

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

pour mysql> 5.7 utilisez ceci à la place de ce qui précède:

UPDATE mysql.user SET authentication_string=PASSWORD('newpwd') WHERE User='root';

Étape 7: Veuillez exécuter cette commande.

FLUSH PRIVILEGES;

Étape 8: Quittez la console mysql

exit

Étape 9: Tuez mysqld_safe et lancez mysql

Sudo killall mysqld_safe && Sudo service mysql start
21
Anvesh

Sous Ubuntu 16.04 et mysql-server-5.7, la réponse correcte est le dernier commentaire d’olafure, dpkg-reconfigure mysql-server-5.7 ne fonctionne plus.

Sudo service mysql stop
Sudo killall mysqld
Sudo mysqld_safe --skip-grant-tables --skip-networking &
mysql -u root

Maintenant dans la console mysql >mysql

USE mysql;
UPDATE user SET authentication_string=PASSWORD('newpass') WHERE user='root';
FLUSH PRIVILEGES;
\q

Redémarrez le processus bonmysql

Sudo killall mysqld
Sudo service mysql start

Vérifiez votre nouveau mot de passe

mysql -u root -p
Enter password: newpass
mysql>
9
Pierre-Damien

Commençant par MySQL 5.7 , lors de l'installation initiale, si vous laissez le mot de passe vide, l'authentification sera basée sur le plugin auth_socket.

La bonne façon de changer le mot de passe sera:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'test';

https://www.percona.com/blog/2016/03/16/change-user-password-in-mysql-5-7-with-plugin-auth_socket/

3
Barun

Créez un fichier avec ceci:

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

Arrêtez le serveur mysql et lancez ceci:

mysqld_safe --init-file=/home/me/mysql-init &

Vérifiez ici pour plus de détails: http://dev.mysql.com/doc/refman/5.0/en/resetting-permissions.html

0
Elier

Rien dans le reste des réponses ne semblait fonctionner pour moi. Ceci est ma solution:

Sudo service mysql stop
Sudo mysqld_safe &
Sudo mysql -u root

Dans là:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
FLUSH PRIVILEGES;
QUIT;

Ensuite:

Sudo killall mysqld
Sudo service mysql start
Sudo mysql -u root -p
0
Wtower