web-dev-qa-db-fra.com

Accès MySQL refusé pour l'utilisateur 'root' @ 'localhost'

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?

21
user253867

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.

11
Parto

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.

7
dogtato

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

4
Conor

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
4
Poprygun

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 plugina é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 mysqlname__, 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
3
Kuuak

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.

2
Ulrich Metzger