Maison  >  Questions et réponses  >  le corps du texte

Accès refusé pour l'utilisateur 'root'@'localhost' (en utilisant le mot de passe : oui) - Aucune autorisation ?

Je reçois toujours cette erreur.

J'utilise MySQL Workbench et j'ai constaté que les autorisations de schéma de root sont vides. Il n’y a aucun privilège.

Je rencontre des problèmes sur diverses plates-formes sur lesquelles j'utilise mon serveur, et c'est un problème qui surgit de nulle part.

root@127.0.0.1 Apparemment, il y a beaucoup d'accès, mais je suis connecté comme ça, mais il n'est attribué qu'à localhost - localhost n'a aucune autorisation.

J'ai fait des choses comme FLUSH HOSTSFLUSH PRIVILEGES etc. Mais aucun succès avec cette méthode ou avec Internet.

Comment puis-je restaurer l'accès root ? Je trouve cela frustrant parce que lorsque je regarde autour de moi, les gens s'attendent à ce que vous "ayez accès", mais je n'y ai pas accès, donc je ne peux pas accéder à la ligne de commande ou quoi que ce soit et GRANT faire quoi que ce soit moi-même.

Courez SHOW GRANTS FOR root Voici ce que je reçois en retour :

Code d'erreur : 1141. Aucune autorisation de ce type n'est définie pour l'utilisateur « root » Hôte "%"


P粉136356287P粉136356287345 Il y a quelques jours1005

répondre à tous(2)je répondrai

  • P粉343141633

    P粉3431416332023-10-10 14:58:33

    Si vous rencontrez le même problème dans MySql 5.7.+ :

    Access denied for user 'root'@'localhost'

    En effet, MySql 5.7 autorise les connexions socket par défaut, ce qui signifie que vous n'avez qu'à vous connecter en utilisant sudo mysql. Si vous exécutez SQL :

    SELECT user,authentication_string,plugin,host FROM mysql.user;

    Ensuite, vous le verrez :

    +------------------+-------------------------------------------+-----------------------+-----------+
    | user             | authentication_string                     | plugin                | host      |
    +------------------+-------------------------------------------+-----------------------+-----------+
    | root             |                                           | auth_socket           | localhost |
    | mysql.session    | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
    | mysql.sys        | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
    | debian-sys-maint | *497C3D7B50479A812B89CD12EC3EDA6C0CB686F0 | mysql_native_password | localhost |
    +------------------+-------------------------------------------+-----------------------+-----------+
    4 rows in set (0.00 sec)

    Pour autoriser les connexions par root et mot de passe, mettez à jour les valeurs du tableau à l'aide de la commande :

    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Current-Root-Password';
    FLUSH PRIVILEGES;

    Ensuite, exécutez à nouveau la commande select et vous verrez qu'elle a changé :

    +------------------+-------------------------------------------+-----------------------+-----------+
    | user             | authentication_string                     | plugin                | host      |
    +------------------+-------------------------------------------+-----------------------+-----------+
    | root             | *2F2377C1BC54BE827DC8A4EE051CBD57490FB8C6 | mysql_native_password | localhost |
    | mysql.session    | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
    | mysql.sys        | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
    | debian-sys-maint | *497C3D7B50479A812B89CD12EC3EDA6C0CB686F0 | mysql_native_password | localhost |
    +------------------+-------------------------------------------+-----------------------+-----------+
    4 rows in set (0.00 sec)

    C'est tout. Vous pouvez exécuter ce processus après avoir exécuté et terminé la commande sudo mysql_secure_installation.

    Pour mariadb, utilisez

    SET PASSWORD FOR 'root'@'localhost' = PASSWORD('manager');

    Définissez un mot de passe. Pour plus d'informations, veuillez visiter https://mariadb.com/kb/en/set-password/

    répondre
    0
  • P粉807471604

    P粉8074716042023-10-10 10:50:19

    Instructions pour réinitialiser le mot de passe root en utilisant - Mais au lieu de réinitialiser le mot de passe root, nous forcerons l'insertion d'un enregistrement dans la table mysql.user

    Dans les fichiers d'initialisation, utilisez plutôt ceci

    INSERT INTO mysql.user (Host, User, Password) VALUES ('%', 'root', password('YOURPASSWORD'));
    GRANT ALL ON *.* TO 'root'@'%' WITH GRANT OPTION;

    répondre
    0
  • Annulerrépondre