MySQL : Accès refusé à l'utilisateur 'test'@'localhost' sauf utilisateur root (vérification du mot de passe : oui)
P粉080643975
2023-08-21 13:05:31
<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>
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)
Cette instruction crée un nouvel utilisateur et accorde les autorisations sélectionnées. Par exemple :
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") :
Voir ce qui se passe