Impossible de réinitialiser le mot de passe root avec --skip-grant-tables sur ubuntu 16
Je suis en train d'essayer de réinitialiser le mot de passe root suivantes MysqlPasswordReset mais quand j'essaie de démarrer le serveur avec l'option --skip-grant-tables le serveur ne démarre pas
- Ubuntu 16.04.1 LTS (GNU/Linux 4.4.0-59-générique x86_64)
- mysql Ver 14.14 Distrib 5.7.17, pour Linux (x86_64)
Serveur est en cours d'exécution
$ mysql -u root
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
Arrêter le serveur
$ sudo /etc/init.d/mysql stop
[ ok ] Stopping mysql (via systemctl): mysql.service.
Essayer de démarrer avec l'option --skip-grant-tables
sudo /usr/sbin/mysqld --skip-grant-tables --skip-networking &
[1] 9856
Se connecter sans mot de passe
$ mysql -u root
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
[1]+ Exit 1 sudo /usr/sbin/mysqld --skip-grant-tables --skip-networking
J'ai aussi essayé de démarrer avec mysql_safe (erreur.le journal est vide)
sudo mysqld_safe --skip-grant-tables
2017-02-01T16:33:31.382105Z mysqld_safe Logging to syslog.
2017-02-01T16:33:31.383942Z mysqld_safe Logging to '/var/log/mysql/error.log'.
2017-02-01T16:33:31.386058Z mysqld_safe Logging to '/var/log/mysql/error.log'.
2017-02-01T16:33:31.388009Z mysqld_safe Directory '/var/run/mysqld' for UNIX socket file don't exists.
source d'informationauteur pedronalbert
Vous devez vous connecter pour publier un commentaire.
J'ai trouvé que la base de données mysql.chaussette est supprimé lorsque le service mysql est arrêtée et mysqld_safe peut pas le créer (je ne peux pas trouvé la raison), donc ma solution était de retour à la chaussette dossier et restaurer avant de commencer mysqld_safe
Démarrer le serveur
Aller à la chaussette dossier
Arrière de la chaussette
Arrêter le serveur
Restaurer la chaussette
Commencer mysqld_safe
Init mysql shell
Changer de mot de passe
pedronalbert de l' réponse ci-dessus a fonctionné pour moi, mais la dernière étape est maintenant obsolète et lance l'avertissement suivant:
Utiliser cette commande au lieu de:
J'ai essayé de nombreuses façons, y compris @pedronalbert 's, mais toujours pas de travail.
La façon dont je l'ai résolu est l'ajout de "skip-grant-tables" dans /etc/my.cnf puis démarrer le service mysql et la connexion mysql avec "mysql -u root" comme
https://www.codero.com/knowledge-base/content/33/296/en/how-to-reset-your-root-mysql-password.html
Il fonctionne dans ma VM CentOS 7.