Je suis confronté à un problème avec mysql utilisateur non root / admin, je suis les étapes ci-dessous pour créer un utilisateur et ses privilèges, corrigez-moi si je me trompe,
j'installe mysql
sur RHEL 5.7 64bit
, les paquets sont mentionnés ci-dessous, une fois que j'ai fait le rpm install
nous sommes
- création de mysql db en utilisant
mysql_install_db
, puis - démarrer le service mysql puis
- en utilisant
mysql_upgrade
aussi nous faisons au serveur.
Après ce processus, je peux root
me connecter en tant que mais avec un utilisateur non root, je ne peux pas me connecter au serveur:
[root@clustertest3 ~]# rpm -qa | grep MySQL
MySQL-client-advanced-5.5.21-1.rhel5
MySQL-server-advanced-5.5.21-1.rhel5
[root@clustertest3 ~]# cat /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1
# Disabling symbolic-links is recommended to prevent assorted security risks;
# to do so, uncomment this line:
# symbolic-links=0
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
[root@clustertest3 ~]# ls -ld /var/lib/mysql/mysql.sock
srwxrwxrwx 1 mysql mysql 0 Nov 30 11:09 /var/lib/mysql/mysql.sock
mysql> CREATE USER 'golden'@'%' IDENTIFIED BY 'password';
Query OK, 0 rows affected (0.00 sec)
mysql> GRANT ALL PRIVILEGES ON * . * TO 'golden'@'%';
Query OK, 0 rows affected (0.00 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
mysql> SELECT USER(),CURRENT_USER();
+----------------+----------------+
| USER() | CURRENT_USER() |
+----------------+----------------+
| root@localhost | root@localhost |
+----------------+----------------+
1 row in set (0.00 sec)
[root@clustertest3 ~]# mysql -ugolden -p
Enter password:
ERROR 1045 (28000): Access denied for user 'golden'@'localhost' (using password: YES)
C'est le problème auquel je suis confronté, y a-t-il une solution à cela?
mysql
mysql-error-1045
utilisateur3061726
la source
la source
SELECT * FROM mysql.user
Réponses:
N'accordez pas tous les privilèges sur toutes les bases de données à un utilisateur non root, ce n'est pas sûr (et vous avez déjà "root" avec ce rôle)
Cette instruction crée un nouvel utilisateur et lui accorde les privilèges sélectionnés. C'EST À DIRE:
Jetez un œil à la documentation pour voir tous les privilèges détaillés
EDIT: vous pouvez rechercher plus d'informations avec cette requête (connectez-vous en tant que "root"):
Pour voir ce qui s'est passé
la source
Si vous vous connectez à MySQL à l'aide d'une machine distante (exemple de plan de travail), etc., utilisez les étapes suivantes pour éliminer cette erreur sur le système d'exploitation sur lequel MySQL est installé
Essayez de vous connecter à l'instance MYSQL.
Cela a fonctionné pour moi pour éliminer cette erreur.
la source
Essayer:
Ou encore meilleure utilisation:
mysql_setpermission
pour créer l'utilisateurla source
%
qui devrait fonctionner pour tous les hôtes, ne le résout pas. Donc, en spécifiantlocalhost
cela devrait fonctionner. Si cela ne fonctionne PAS, quelque chose ne va pas dans mysqlIl semble que vous essayez de créer un utilisateur "golden" @ "%" mais un utilisateur différent du nom de "golden" @ "localhost" gêne / a la priorité.
Exécutez cette commande pour voir les utilisateurs:
Vous devriez voir deux entrées:
1) utilisateur = doré, hôte =%
2) utilisateur = golden, host = localhost
Faites ces commandes:
Redémarrez MySQL Workbench.
Puis refaites vos commandes d'origine:
Ensuite, lorsque vous essayez de vous connecter à MySQL, saisissez-le comme ceci:
Appuyez sur «Tester la connexion» et entrez votre mot de passe «mot de passe».
la source
J'ai d'abord créé l'utilisateur en utilisant:
Après avoir googlé et vu cela , j'ai mis à jour le mot de passe de l'utilisateur en utilisant:
et je pourrais me connecter par la suite.
la source
Pour tous ceux qui ont fait tous les conseils mais le problème persiste.
Recherchez la procédure stockée et affichez DEFINERS. Ces définisseurs peuvent ne plus exister.
Mon problème est apparu lorsque nous avons changé l'hôte générique (%) en IP spécifique, ce qui a rendu la base de données plus sécurisée. Malheureusement, certaines vues utilisent encore 'user' @ '%' même si 'user' @ '172 ....' est techniquement correct.
la source
J'ai aussi le même problème, et plus tard j'ai découvert que c'était parce que j'avais changé de nom d'hôte (pas
localhost
).Par conséquent, je le résolve en spécifiant le
--host=127.0.0.1
la source
Assurez-vous que l'utilisateur dispose d'une entrée localhost dans la table des utilisateurs. C'était le problème que j'avais. EX:
la source
Selon la façon dont vous créez votre utilisateur, MySQL l'interprète d'une manière différente. Par exemple, si vous créez un utilisateur comme celui-ci:
MySQL s'attend à ce que vous accordiez des privilèges en utilisant
grant all on <your_db>.* to user01;
N'oubliez pas de
flush privileges;
Mais, si vous créez un utilisateur comme ça (en passant une adresse IP), vous devez le changer en:
donc, pour donner certains privilèges, vous devez le faire:
la source
Dans mon cas, la même erreur se produit parce que j'essayais d'utiliser mysql en tapant simplement "mysql" au lieu de "mysql -u root -p"
la source
connectez votre serveur à partir de mysqlworkbench et exécutez cette commande-> ALTER USER 'root' @ 'localhost' IDENTIFIED BY 'yourpassword';
la source
Pour une recherche ennuyeuse arriver ici après avoir recherché ce message d'erreur:
Le problème pour moi n'était pas de mettre le mot de passe entre guillemets. par exemple. J'avais besoin d'utiliser
-p'password'
au lieu de-ppassword
la source
Ajoutez simplement le nom de l'ordinateur au lieu de «localhost» dans le nom d'hôte ou l'adresse de l'hôte MySQL.
la source