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 ...
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
.
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.)
Commencez la reconfiguration avec:
Sudo dpkg-reconfigure mysql-server-*.*
où 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.
Le démon sera automatiquement lancé à la fin de la reconfiguration.
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:
https://help.ubuntu.com/community/MysqlPasswordReset [Qui serait bientôt nettoyé comme indiqué dans la page.]
Guide du serveur Ubunt relatif à votre version spécifique.
É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
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>
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/
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
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