4 votes

Warning : mysql_select_db() Accès refusé pour l'utilisateur ''@'localhost'' (using password : NO)

Je suis assez novice en matière de développement web et j'ai besoin d'aide pour essayer de trouver la cause du problème. J'ai installé MySQL 5.6.10 et on m'a confié la tâche de mettre à jour le src d'un site web qui est actuellement en ligne depuis 5 ans. Le code n'a pas changé et il fonctionne sur la machine locale des autres développeurs. Le serveur fonctionne en 5.0.51b et je viens de rétrograder en 5.5.30 pour essayer de faire disparaître une erreur de syntaxe. L'erreur était que l'OPTION SET SQL_BIG_SELECTS=1 était dépréciée en SET SQL_BIG_SELECTS dans une certaine version. Je ne suis pas en mesure de modifier la syntaxe en raison de la version que le serveur exécute. J'ai donc choisi de réduire la version à 5.5.30.

Mon problème après le déclassement est le suivant :

Warning: mysql_select_db() [function.mysql-select-db]: Access denied for user
''@'localhost' (using password: NO) in C:\Program Files (x86)\Apache Software
Foundation\Apache2.2\htdocs\****\src\www\include\func\func.db.php on line 47

J'utilise MySQL Workbench pour mes connexions ; aucune des connexions ou des utilisateurs n'est associée à un mot de passe. J'ai un autre projet qui n'est pas actif et qui fonctionne bien à partir de l'hôte local. Mes fichiers vhost et host ont tous la bonne syntaxe pour que cela fonctionne (vérifié avec l'autre projet). Tout a fonctionné correctement et j'ai pu faire apparaître les pages via le serveur virtuel sans problème hier. Je n'ai jamais eu de problèmes avec la façon dont tout était configuré pour afficher la page d'index. Le seul problème était celui de la version de MySQL. Que puis-je faire pour résoudre ce problème ? J'ai essayé de recréer des connexions dans le workbench et même de supprimer toutes les instances et de les recréer. Je suis dans l'impasse. Toute aide serait la bienvenue.

4voto

Sumit Bijvani Points 4493

Vous pouvez voir cette erreur parce que vous n'avez pas connecté votre base de données mysql correctement.

mysql_connect("HOST","USER","PASSWORD")

Vérifiez que l'hôte, le nom d'utilisateur et le mot de passe sont corrects.

2voto

zbtirrell Points 21

MySQL est-il la seule chose que vous avez mise à jour ? Est-il possible que vous ayez mis à jour PHP et que vous n'ayez plus activé register_globals ? Si vous l'avez désactivé et que vos collègues l'ont activé, cela pourrait expliquer les différences que vous constatez.

http://php.net/manual/en/security.globals.php

1voto

Touch Points 1255

D'après ce que je vois dans l'erreur qui a été retournée, vous n'avez pas passé à la connexion un nom d'utilisateur à utiliser pour se connecter à MySQL.

1voto

UnholyRanger Points 1957

En regardant de près votre erreur, vous pouvez voir qu'elle vous indique ce qui ne va pas (ce à quoi servent généralement les rapports d'erreur) :

Access denied for user
''@'localhost' (using password: NO)

En regardant spécifiquement :

''@'localhost'
^^

Vous voyez qu'aucun utilisateur n'a été spécifié. Vous devez spécifier l'utilisateur sous lequel vous souhaitez vous connecter.

mysql_connect("HOST","USER","PASSWORD")

Qui vient avant un mysql_select_db appeler.

Connexion MySQL & MySQL Select DB

AVIS : Ne passez pas à PHP 5.5 car les fonctions MySQL_* ont été dépréciées. Je dis cela car vous ne souhaitez modifier aucun code.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X