www-data
è l'utente Debian che esegue apache e php. Se si tenta una query quando non si dispone di una connessione valida, php/mysql tenterà di creare una connessione utilizzando <unix-user>@localhost
senza password. Qui è dove [email protected] (using password:NO)
proviene da.
La ragione più probabile per cui questo ha iniziato a succedere ora (sebbene funzioni correttamente da 2 anni prima) è che il carico del tuo db è aumentato al punto in cui alcune connessioni non riescono a funzionare (probabilmente a causa di max_connections o max_user_connections; sebbene questo può anche derivare da altri limiti come memoria, thread, ecc.). Quando ciò accade, chiama mysql_connect
emetterà un messaggio di errore e restituirà FALSE
. Se non riesci a rilevare questo errore, la tua prossima chiamata mysql (probabilmente mysql_query o mysql_select_db) tenterà la connessione a [email protected]
-- causando così il problema che stai vedendo.
Suggerisco di abilitare la segnalazione degli errori e la visualizzazione degli errori (come suggerito da @DarkMantis) :
ini_set('error_reporting', E_ALL|E_STRICT);
ini_set('display_errors', 1);
Inoltre, assicurati che la tua chiamata a mysql_connect sia non preceduto da un @
cartello; e assicurati di controllare il valore di ritorno. Dovrebbe assomigliare a questo:
$cxn = mysql_connect('localhost','yourusername','yourpassword');
if( $cxn === FALSE ) { die('mysql connection error: '.mysql_error()); }