recherche

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

MySQL : Accès refusé à l'utilisateur 'test'@'localhost' sauf utilisateur root (vérification du mot de passe : oui)

<p>J'ai un problème avec un utilisateur non root/administrateur de MySQL, j'ai suivi les étapes ci-dessous pour créer l'utilisateur et les autorisations, veuillez me corriger si j'ai fait quelque chose de mal : </p> <p>J'ai installé <code>mysql</code> sur <code>RHEL 5.7 64bit</code>, le package d'installation est le suivant, une fois que j'ai terminé l'installation de <code>rpm</code>, nous allons</p> <ol> <li>Utilisez <code>mysql_install_db</code> pour créer une base de données MySQL, puis </li> <li>Démarrez le service mysql, puis</li> <li>L'utilisation de <code>mysql_upgrade</code> fonctionnera également sur le serveur. ≪/li> </ol> <p>Après ce processus, je peux me connecter en utilisant <code>root</code>, mais je ne peux pas me connecter au serveur avec un utilisateur non root : </p> <pre class="brush:php;toolbar:false;">[root@clustertest3 ~]# rpm -qa | Client MySQL-avancé-5.5.21-1.rhel5 Serveur MySQL-avancé-5.5.21-1.rhel5 [root@clustertest3 ~]# cat /etc/my.cnf [mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock utilisateur = mysql # Par défaut, l'ancien format de mot de passe est utilisé pour la compatibilité avec MySQL 3.x # clients (ceux utilisant le package de compatibilité mysqlclient10). vieux_mots de passe = 1 # La désactivation des liens symboliques est recommandée pour éviter divers risques de sécurité ; # pour cela, décommentez cette ligne : # liens symboliques = 0 [mysqld_safe] log-erreur=/var/log/mysqld.log fichier-pid=/var/run/mysqld/mysqld.pid [root@clustertest3 ~]# ls -ld /var/lib/mysql/mysql.sock srwxrwxrwx 1 mysql mysql 0 30 novembre 11:09 /var/lib/mysql/mysql.sock mysql> CRÉER UN UTILISATEUR 'golden'@'%' IDENTIFIÉ PAR 'mot de passe'; Requête OK, 0 ligne affectée (0,00 s) mysql> ACCORDEZ TOUS LES PRIVILÈGES SUR * . Requête OK, 0 ligne affectée (0,00 s) mysql> Requête OK, 0 ligne affectée (0,00 s) mysql> SELECT USER(),CURRENT_USER(); +----------------+----------------+ | UTILISATEUR() | +----------------+----------------+ | racine@localhost | racine@localhost | +----------------+----------------+ 1 ligne dans l'ensemble (0,00 sec) [root@clustertest3 ~]# mysql -ugolden -p Entrer le mot de passe: ERREUR 1045 (28000) : Accès refusé pour l'utilisateur 'golden'@'localhost' (en utilisant le mot de passe : OUI)</pre> <p>C'est le problème que j'ai rencontré, existe-t-il une solution ? </p>
P粉080643975P粉080643975459 Il y a quelques jours499

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

  • P粉301523298

    P粉3015232982023-08-22 10:52:24

    Ne donnez pas toutes les autorisations aux utilisateurs non root sur toutes les bases de données, ce n'est pas sûr (et vous avez déjà un utilisateur "root" avec ce rôle)

    GRANT <privileges> ON database.* TO 'user'@'localhost' IDENTIFIED BY 'password';

    Cette instruction crée un nouvel utilisateur et accorde les autorisations sélectionnées. Par exemple :

    GRANT INSERT, SELECT, DELETE, UPDATE ON database.* TO 'user'@'localhost' IDENTIFIED BY 'password';

    Veuillez consulter la Documentation pour voir toutes les autorisations détaillées

    EDIT : Vous pouvez trouver plus d'informations en utilisant cette requête (connecté en tant que "root") :

    select Host, User from mysql.user;

    Voir ce qui se passe

    répondre
    0
  • Annulerrépondre