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

27

Je dois réinitialiser le mot de passe root de mon installation mysql locale, mais cela ne me le permettrait 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
[email protected]:~$ sudo mysqld --skip-grant-tables &
[1] 13651
[email protected]:~$ 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.

[email protected]:~$ mysql -u root mysql
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
[email protected]:~$ 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 réinitialiser le mot de passe? modifier 1 J'ai ceci:

$ ps ax| grep mysql
16515 ?        Ssl    0:00 /usr/sbin/mysqld
16551 pts/23   S+     0:00 grep --color=auto mysql
[email protected]:~/semios/v3upgrade$ sudo kill -9 16515
[email protected]:~/semios/v3upgrade$ ps ax| grep mysql
16678 ?        Ssl    0:00 /usr/sbin/mysqld
16715 pts/23   S+     0:00 grep --color=auto mysql
[email protected]:~/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 ...

    
posée cerr 28.06.2014 - 04:05
la source

6 réponses

41

Essayez d’abord d’utiliser

mysql -u root -p

et entrez votre mot de passe (si vous vous en souvenez) à l'invite de connexion 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 méthode simple: reconfigurez le package avec dpkg-reconfigure .

Étapes faciles pour réinitialiser le mot de passe racine 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 entre autres informations. par exemple. pour mon installation c'est:

    Installed: 5.5.37-0ubuntu0.12.04.1
    

    (De cela, je sais que mysql-server-5.5 est 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 la base de données. Une invite apparaîtra alors où vous devrez entrer votre nouveau mot de passe et confirmer la reconfiguration.

    Le démon sera automatiquement lancé une fois la reconfiguration terminée.

  3. Vous pouvez ensuite vous connecter avec:

    mysql -u root -p
    

    et lancez vos tâches d'administration de base de données.

Références:

  1. lien [qui sera bientôt nettoyé comme indiqué dans la page.]

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

réponse donnée precise 28.06.2014 - 07:31
la source
18

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

Etape 1: Arrêtez le service MySQL.

sudo service mysql stop

Etape 2: Tuez tous les utilisateurs de mysqld.

sudo killall -9 mysqld

Etape 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

Etape 5: Une fois la connexion établie, exécutez cette commande pour modifier le mot de passe.

FLUSH PRIVILEGES;

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

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

pour mysql & gt; 5.7 utilisez ceci au lieu de ci-dessus:

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

Étape 7: Veuillez exécuter cette commande.

FLUSH PRIVILEGES;

Etape 8: Quittez la console mysql

exit

Etape 9: Tuez mysqld_safe et lancez mysql

sudo killall mysqld_safe && sudo service mysql start
    
réponse donnée Anvesh 08.09.2015 - 07:33
la source
9

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 bon mysql

sudo killall mysqld
sudo service mysql start

Vérifiez votre nouveau mot de passe

mysql -u root -p
Enter password: newpass
mysql>
    
réponse donnée Pierre-Damien 22.11.2016 - 12:05
la source
2

En commençant par MySQL 5.7 , lors de l’installation initiale, si vous laissez le mot de passe vide, pour cet utilisateur, l’authentification sera basée sur auth_socket plugin.

La manière correcte de changer le mot de passe sera:

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

lien

    
réponse donnée Barun 20.01.2017 - 20:41
la source
0

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-le:

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

Cliquez ici pour plus de détails: lien

    
réponse donnée Elier 10.12.2014 - 03:47
la source
0

Rien du reste des réponses ne semblait fonctionner pour moi. Voici ma solution:

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

Là-bas:

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

Alors:

sudo killall mysqld
sudo service mysql start
sudo mysql -u root -p
    
réponse donnée Wtower 19.01.2017 - 22:40
la source

Lire d'autres questions sur les étiquettes