Pourquoi cet utilisateur mysql ne peut-il pas se connecter avec un mot de passe?

8

Dans phpmyadmin, j'ai créé un utilisateur appelé "edward" avec mot de passe et tous les privilèges:

entrez la description de l'image ici

Pourtant, lorsque j'essaie de me connecter via phpmyadmin, il est dit "Impossible de se connecter au serveur MySQL".

Lorsque j'essaie de me connecter sur la ligne de commande (Windows 7), cela ne me permet pas non plus: entrez la description de l'image ici

Mais si je me connecte sans mot de passe, j'entre:

entrez la description de l'image ici

et me montre seulement deux des tableaux.

Je suis sûr que le mot de passe est correct et j'ai créé plusieurs utilisateurs qui ne peuvent pas tous se connecter avec leur mot de passe, quel que soit le nombre de droits que je leur donne.

Comment puis-je faire en sorte que cet utilisateur puisse se connecter uniquement avec un mot de passe et voir toutes les bases de données?


Addenda:

Voici une capture d'écran de phpmyadmin montrant que "edward" a autant de droits que "root":

entrez la description de l'image ici

Edward Tanguay
la source
Voulez-vous vraiment définir le mot de passe? Essayez SET PASSWORD FOR 'edward'@'%' = PASSWORD( 'YOU PASSWORD HERE' ).
hellodanylo
oui, je me suis connecté en tant que root et j'ai à nouveau défini le mot de passe avec cette commande, mais je ne peux toujours pas me connecter en tant qu'edward, comme s'il y avait une sorte de paramètre global contre toute personne se connectant à l'exception de la racine, je l'ai installé avec xampp
la même chose m'arrive, et le mot de passe a été défini correctement sur la commande create user
santiago arizti

Réponses:

6

Parce que vous lui avez accordé l'accès sans mot de passe ... Si un utilisateur n'a pas de mot de passe, la connexion avec un échouera toujours.

Définissez le mot de passe de l'utilisateur, alors seulement vous pourrez utiliser-p

En outre, vous souhaiterez peut-être supprimer l' Anyutilisateur.

poncha
la source
Je lui ai accordé un mot de passe dans phpmyadmin (comme indiqué dans la capture d'écran ci-dessus), et à l'invite de commande, je me suis reconnecté et lui ai accordé un mot de passe set password for 'edward'@'%' = password('test');mais je ne peux toujours pas me connecter avec le mot de passe, c'est comme si le mot de passe n'était pas en cours de définition, mais s'affiche en cours de définition
4
votre capture d'écran montre l' %hôte, cependant, vous y accédez localhost, ce qui fait une différence. Vous disposez probablement d'une autre autorisation, qui correspond à n'importe qui sur localhost, sans mot de passe. l'utilisateur avec l'hôte spécifié est une définition plus forte
poncha
2
ok, je l' ai changé de %pour localhostet maintenant je peux connecter, et aussi, comme vous l' avez dit, si je retire le « tout utilisateur » entrée, je peux utiliser %dans edward, merci.
Edward Tanguay
0

Très probablement, vous avez accordé des privilèges sur le serveur, mais pas sur les bases de données. EssayerGRANT ALL ON *.* TO 'edward' IDENTIFIED BY 'password'

Eugen Rieck
la source
Je me suis connecté en tant que root et j'ai défini le mot de passe avec cette commande pour la base de données "test" et "edward" mais je ne peux toujours pas me connecter en tant que edward avec son mot de passe
Donc désolé: je me suis trompé, j'aurais dû *.*, non *- j'ai modifié ma réponse.
cela ne fonctionne toujours pas, comme le montre l'écran ci-dessus, l'utilisateur edward a tous les droits, autant que root en fait
Edward Tanguay
0

Le même problème n'a pas pu le comprendre pour rien. Effacé la base de données, supprimé le répertoire et réinstallé sur Centos 6.3. La ligne de commande affiche des données qui sont ensuite défilées rapidement et qui ont résolu le problème pour moi. Collé ci-dessous.

N'oubliez pas de définir un mot de passe pour l'utilisateur racine MySQL!

Pour ce faire, démarrez le serveur, puis exécutez les commandes suivantes:

/usr/bin/mysqladmin -u root password 'new-password'
/usr/bin/mysqladmin -u root -h cch-web-centos password 'new-password'

Vous pouvez également exécuter:

/usr/bin/mysql_secure_installation

Le dernier est ce qui a fonctionné pour moi. J'ai entré un mot de passe root et cela a réellement fonctionné. La saisie d'un mot de passe root en utilisant mysqladmin sans exécuter ce script m'a donné les mêmes erreurs qu'Edward a signalées. Exécutez le script, répondez aux questions, maintenant l'utilisation du mot de passe root fonctionne et la connexion sans le mot de passe est refusée. Celui-ci m'a rendu fou aussi. J'ai installé mysql plusieurs fois et c'est la première fois que j'ai ce problème. Je ne sais pas si c'est une chose yum / centos car sur Ubuntu et Fedora, je n'ai pas eu ce problème.

armel
la source