sql >> Database teknologi >  >> RDS >> Mysql

Adgang nægtet for brugeren 'www-data'@'localhost - hvordan skal man håndtere det?

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()); }


  1. Kan ikke oprette forbindelse til mysql-server på AWS RDS

  2. Opsæt stor database i MySQL til analyse i R

  3. ODBC-forespørgsel på MS SQL Server returnerer kun de første 255 tegn i PHP PDO (FreeTDS)

  4. Er der en optimal metode til at bestille et MySQL sammensat indeks?