www-data
er Debian-brugeren, der kører apache og php. Hvis du forsøger en forespørgsel, når du ikke har en gyldig forbindelse, vil php/mysql forsøge at oprette en forbindelse ved hjælp af <unix-user>@localhost
uden adgangskode. Det er her [email protected] (using password:NO)
kommer fra.
Den mest sandsynlige årsag til, at dette er begyndt at ske nu (selvom det har kørt fint i 2 år tidligere) er, at din db-belastning er steget til det punkt, hvor nogle forbindelser ikke er i stand til at lykkes (sandsynligvis på grund af max_connections eller max_user_connections; selvom dette kan også skyldes andre begrænsninger som hukommelse, tråde osv.). Når dette sker, ringer du til mysql_connect
vil udsende en fejlmeddelelse og returnere FALSE
. Hvis du ikke kan opdage denne fejl, vil dit næste mysql-kald (sandsynligvis mysql_query eller mysql_select_db) forsøge at oprette forbindelse til [email protected]
-- hvilket forårsager det problem, du ser.
Jeg foreslår at aktivere fejlrapportering og fejlvisning (som foreslået af @DarkMantis) :
ini_set('error_reporting', E_ALL|E_STRICT);
ini_set('display_errors', 1);
Sørg også for, at dit opkald til mysql_connect ikke er efter en @
skilt; og sørg for at kontrollere returværdien. Det skulle se sådan ud:
$cxn = mysql_connect('localhost','yourusername','yourpassword');
if( $cxn === FALSE ) { die('mysql connection error: '.mysql_error()); }