mysql -u root ne fonctionne pas mais sudo mysql -u root le fait, pourquoi?

9

J'ai récemment suivi quelques tutoriels et installé mysql en utilisant sudo apt-get install mysql-server-5.7

Je peux me connecter à la base de données en utilisant un mot de passe en exécutant la commande suivante:

sudo mysql -u root -p

J'essaie de me connecter en exécutant:

mysql -u root -p

mais je reçois l'erreur:

ERROR 1698 (28000): Access denied for user 'root'@'localhost'

Pourquoi? Comment puis-je réparer cela?

user1379280
la source
2
cher downvoter, pouvez-vous également laisser tomber une raison de downvote, au moins une explication pourquoi c'est une question stupide?
user1379280
Cela pourrait être lié. Regardez certaines des réponses: askubuntu.com/questions/766334/…
Terrance
Avez-vous défini un mot de passe root pour mysql lors de l'installation?
Steeldriver
@steeldriver: oui je l'ai fait
user1379280

Réponses:

23
  1. Accès avec sudo: sudo mysql -u root -p
  2. Supprimez l'utilisateur root: drop user 'root'@'localhost';
  3. Créez à nouveau l'utilisateur root: create user 'root'@'%' identified by 'your_password';
  4. Accordez des autorisations: grant all privileges on *.* to 'root'@'%' with grant option;
  5. Mettre à jour les tables d'autorisation: flush privileges;
  6. Quittez MYSQL et essayez de vous reconnecter sans sudo.

Police: impossible de se connecter en tant qu'utilisateur root mysql à partir du compte utilisateur normal dans Ubuntu 16.04

thiagoBarbosa48
la source
Merci! Ces étapes ont également fonctionné pour moi et je n'ai plus besoin sudod'utiliser mysql! On dirait que remplacer l'hôte localhostpar %résolu le problème pour moi.
Vikram Hosakote
mais ne peut toujours pas accéder à distance
Ciasto piekarz
Ça n'a pas marché pour moi, maintenant je ne peux pas entrer avec ou sans sudo!
David Powell