J'ai une erreur lorsque j'essais de me connecter avec un nouveau 'user' depuis une page PHP.
Je l'ai créée ainsi :
create user application_admin identified by 'vx02EcU7nT6I7hQz9f3J52dyTY73DF1NohiYvRzXwUOppwBd9v';
GRANT ALL PRIVILEGES ON Contest_Principal.* To application_admin;
flush privileges;
Set password for application_admin = password('abc');
J'ai changé le mot de passe temporairement pour faciliter mes tests.
Mais j'ai cette erreur depuis mon Laravel (j'essais JUSTE de me connecter, je me doute qu'il existe 1001 moyen de se connecter avec Laravel mais je test le minimum actuellement):
mysqli::__construct(): (HY000/1045): Acc�s refus� pour l'utilisateur: 'application_admin'@'localhost' (mot de passe: OUI) (View: D:\_PROGRAMMATION\Web\WAMP\www\resources\views\admin\admin_home.blade.php)
Merci d'avance de votre aide, je suis sincérement à bout... J'ai rien qui correspond.
PS : Je tiens à ne donner les droits UNIQUEMENT sur la base Contest_principal. Je suis déjà assez mal à l'aise de faire un "GRANT ALL ...". Je pense que vous comprendrez.
EDIT : Correction effectué sur le lien de la BDD server.
EDIT SOLUTION (Elements à vérifier):
J'ai recréé mon user, attribué un mot de passe lors de la création. Ajouté les droits sur tout (il est possible de les REVOKE après). Et de penser à faire un flush. Pour moi ça a fonctionné.
Vérifier la chaine de connexion (utiliser 127.0.0.1 au lieu de localhost)
Vérifier le port
Vérifier que le serveur sois lancé/démarré
Vérifier le mot de passe (Password('mot_de_passe') si vous souhaitez le marquer en clair dans votre)
Vérifier les GRANTS de votre Utilisateur, il est possible que celui-ci n'ai pas le DROIT de se connecter
Tu as 2 instances "MySQL" différentes pour utiliser le port 3307 (MariaDB et MySQL, merci WAMP) ? Tu es passé en CLI (ie la commande mysql) ? Mais tu as bien explicité le port ? (-P 3307). Même idée si c'est avec autre chose, que l'utilisateur soit créé sur l'instance qui fonctionne sur le port 3307. Ce serait "drôle" que la connexion mysqli fonctionne sur le 3306.
Un SELECT * FROM mysql.user; en admin liste ton utilisateur ?
> Voici ce que j'ai lorsque j'affiche les utilisateurs en "root"
Mais sur MySQL ou MariaDB ?
> J'utilise "mysqli" parce que c'est ce que j'ai trouvé dans le peu de doc que j'ai.
Je conseillerais plutôt l'usage de PDO à mysqli, son API étant beaucoup moins touffue et son usage demandant bien moins de lignes de code, mais ça ne changera rien à ton problème de connexion de toute façon.
Je pense que le problème c'est le "Set password". J'ai esseyé d'executer cette commande sur le compte "admin_general" et le nouveau mot de passe n'a pas été pris en compte. Je vérifie s'il faut faire un "Flush" particulié
SET PASSWORD FOR 'bob'@'localhost' = PASSWORD('new password');
Et j'ai lu aussi qu'il faire un flush de privileges (ça dépend aussi des version)
FLUSH PRIVILEGES;
- Edité par umfred 9 mars 2023 à 10:59:41
MariaDB - ACCESS Denied lors d'une connection PHP
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
julp.fr ~ PHP < 8.0.0 : activer les erreurs PDO/SQL ~ PHP < 8.1.0 : activer les erreurs mysqli
julp.fr ~ PHP < 8.0.0 : activer les erreurs PDO/SQL ~ PHP < 8.1.0 : activer les erreurs mysqli
julp.fr ~ PHP < 8.0.0 : activer les erreurs PDO/SQL ~ PHP < 8.1.0 : activer les erreurs mysqli