Sur mon serveur, à chaque fois que j'essaie d'accéder à MySQL, le message d'erreur suivant s'affiche:
Accès refusé pour l'utilisateur 'root' @ 'localhost' (avec mot de passe: NO)
quand j'essaie mysqladmin -u root -p password
je reçois
Accès refusé pour l'utilisateur 'root' @ 'localhost' (avec mot de passe: YES)
Comment puis-je accéder à MySQL sur mon serveur Ubuntu 12.04?
Si vous utilisez n localhost, tapez simplement la commande ci-dessous dans le terminal:
mysql -u root -p
Si vous utilisez un serveur externe, entrez également l'adresse IP de l'hôte (xxx.xxx.xxx.xxx):
mysql -hxxx.xxx.xxx.xxx -uroot -p
Vous serez invité à entrer votre mot de passe, entrez-le et vous pourrez accéder à votre invite MySQL.
Vous pouvez aussi regarder cette réponse pour réinitialiser votre mot de passe MySQL.
J'obtiens les mêmes symptômes lorsque je mets à jour, mais pour moi le correctif (après avoir tué mysql et redémarré avec --skip-grant-tables pour entrer) est à exécuter
update mysql.user set plugin = '';
Le processus de mise à jour aime définir cette colonne sur "unix_socket". Je ne sais pas ce que cela est supposé accomplir, mais pour moi, ça casse tout.
Définir un mot de passe pour mysql
Sudo dpkg-reconfigure mysql-server-5.x
Maintenant, ouvrez le terminal et tapez
mysql -uroot -p
donnez le mot de passe et appuyez sur Entrée
J'ai résolu mon problème par ceci:
Sudo apt-get remove --purge mysql-server mysql-client mysql-common
Sudo apt-get autoremove
Sudo apt-get autoclean
Sudo apt install mysql-server
Comme Ulrich Metzger, après la mise à jour de ma machine vers Ubuntu 16.04 et Mysql-server-5.7, je n’ai pas pu me connecter avec root car la colonne plugin
a été modifiée dans la base de données mysql.
La commande Sudo dpkg-reconfigure mysql-server-5.7
ainsi que la suppression, la purge et le nettoyage n'ont pas résolu mon problème.
Je devais arrêter le service mysql
# Sudo service mysql stop
Démarrez le démon mysql sans l'option --no-grant-tables
# Sudo mysql_safe --no-grant-tables &
Ensuite, dans un autre terminal, entrez mysql (qui n’ont plus d’authentification automatique) avec la commande mysql
name__, et mettez à jour le mot de passe et les colonnes du plugin via un SQL UPDATE
UPDATE mysql.user
SET authentication_string=PASSWORD(''),
plugin='mysql_native_password'
WHERE User='root' AND Host='localhost';
Enfin, tuer la commande mysql_safe
, redémarrer le service mysql et se connecter à mysql normalement
# Sudo service mysql start
# mysql
Après la mise à niveau d'ubuntu 14.4LTS vers 16.4LTS, l'utilisateur root de mysql ne pouvait plus se connecter en raison d'une mauvaise entrée dans la colonne du plug-in de la table des utilisateurs mysql. La mise à niveau définit la valeur du plug-in pour l'utilisateur root @ localhost sur auth_socket mais l'entrée correcte doit être mysql_native_password, si vous avez déjà utilisé le cryptage de mot de passe natif mysql auparavant.