ERREUR 1698 (28000): accès refusé à l'utilisateur 'root' @ 'localhost' sur Ubuntu 18.04

22

J'ai suivi ce tutoriel pour installer MySQL mais après avoir installé MySQL avec succès, je n'ai pas pu accéder à la base de données.

ERREUR 1698 (28000): accès refusé à l'utilisateur 'root' @ 'localhost'

Ashrafuzzaman Sujan
la source
1
J'ai rencontré le même problème, après quelques recherches, j'ai compris que vous devez définir le mot de passe root vous-même en suivant les instructions du StackOverFlow .
Mohammad.H Fathi

Réponses:

46

J'ai trouvé une solution sur le lien ici , en suivant cette solution, j'ai résolu mon problème.

Les étapes courtes sont:

sudo mysql -u root
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'test'; 

Remarque: voici testun nouveau mot de passe pour l'utilisateur root. N'oubliez pas non plus d'exécuter la commande sudo service mysql restartaprès avoir modifié l'utilisateur.

Ashrafuzzaman Sujan
la source
Merci. Il est étrange que mysql-server ne propose plus de saisir de mot de passe.
gamofe
1
ERREUR 1064 (42000): vous avez une erreur dans votre syntaxe SQL; consultez le manuel qui correspond à la version de votre serveur MariaDB pour la bonne syntaxe à utiliser près de 'USER' root '@' localhost 'IDENTIFIED WITH mysql_native_password BY' b230mehonot '' à la ligne 1
alhelal
même erreur ici ... :(
user1111929
@alhelal, La solution est pour MySQL et non pour MariaDB. Vous pouvez donc essayer une autre solution.
Ashrafuzzaman Sujan
N'écrivez pas mysql -u root, Écrivez simplement "sudo mysql", Dans les systèmes Ubuntu exécutant MySQL 5.7 (et versions ultérieures), l'utilisateur root est authentifié par le plugin auth_socket par défaut.
ravisoni
13

J'ai trouvé un autre moyen bien meilleur car nous n'avons pas besoin de donner de mot de passe pour le système local.
C'est comme suit.

Terminal ouvert et type

sudo mysql -u root -p

Il vous demandera dans mysql, ici vous pouvez lancer toutes les commandes mysql.

Utilisez la table mysql pour changer le type de table, afin que nous puissions utiliser un mot de passe vide. Ci-dessous est la commande pour cela

USE mysql;

Maintenant, nous changeons le type de table en suivant la commande

UPDATE user SET plugin='mysql_native_password' WHERE User='root';

maintenant, nous devons vider les privilèges, car nous avons utilisé UPDATE. Si vous utilisez INSERT, UPDATE ou DELETE sur les tables de droits directement, vous devez utiliser FLUSH PRIVILEGES pour recharger les tables de droits.

FLUSH PRIVILEGES;

maintenant quittez mysql en suivant la commande

exit;

maintenant redémarrez le serveur mysql en suivant la commande

service mysql restart

J'espère que cela peut aider

Merci.

Krunal Pathak
la source
2
C'est la bonne réponse
Ningappa
Merci Heureux d'aider :)
Krunal Pathak