www-data
est l'utilisateur Debian qui exécute apache et php. Si vous tentez une requête alors que vous n'avez pas de connexion valide, php/mysql tentera de créer une connexion en utilisant <unix-user>@localhost
sans mot de passe. C'est là que [email protected] (using password:NO)
vient.
La raison la plus probable pour laquelle cela a commencé à se produire maintenant (bien qu'il ait fonctionné correctement pendant 2 ans auparavant) est que votre charge de base de données a augmenté au point où certaines connexions ne peuvent pas réussir (probablement en raison de max_connections ou max_user_connections; cependant cela peut également résulter d'autres limites comme la mémoire, les threads, etc.). Lorsque cela se produit, votre appel à mysql_connect
émettra un message d'erreur et renverra FALSE
. Si vous ne parvenez pas à détecter cet échec, alors votre prochain appel mysql (probablement mysql_query, ou mysql_select_db) tentera la connexion à [email protected]
-- causant ainsi le problème que vous voyez.
Je suggère d'activer le rapport d'erreur et l'affichage des erreurs (comme suggéré par @DarkMantis) :
ini_set('error_reporting', E_ALL|E_STRICT);
ini_set('display_errors', 1);
Assurez-vous également que votre appel à mysql_connect n'est pas précédé d'un @
signe; et assurez-vous de vérifier la valeur de retour. Cela devrait ressembler à ceci :
$cxn = mysql_connect('localhost','yourusername','yourpassword');
if( $cxn === FALSE ) { die('mysql connection error: '.mysql_error()); }