sql >> Databasteknik >  >> RDS >> Mysql

Åtkomst nekad för användaren 'www-data'@'localhost – hur ska man hantera det?

www-data är Debiananvändaren som kör apache och php. Om du försöker en fråga när du inte har en giltig anslutning, kommer php/mysql att försöka skapa en anslutning med <unix-user>@localhost utan lösenord. Det är här [email protected] (using password:NO) kommer från.

Den mest troliga anledningen till att detta har börjat hända nu (även om det har fungerat bra i 2 år tidigare) är att din db-belastning har ökat till den punkt där vissa anslutningar inte kan lyckas (troligen på grund av max_connections eller max_user_connections; men detta kan också bero på andra begränsningar som minne, trådar, etc). När detta händer ringer du mysql_connect kommer att avge ett felmeddelande och returnera FALSE . Om du misslyckas med att upptäcka detta fel, kommer ditt nästa mysql-anrop (troligen mysql_query, eller mysql_select_db) att försöka ansluta till [email protected] -- vilket orsakar problemet du ser.

Jag föreslår att du aktiverar felrapportering och felvisning (som föreslagits av @DarkMantis) :

ini_set('error_reporting', E_ALL|E_STRICT);
ini_set('display_errors', 1);

Se också till att ditt samtal till mysql_connect är inte föregås av en @ tecken; och se till att kontrollera returvärdet. Det borde se ut ungefär så här:

$cxn = mysql_connect('localhost','yourusername','yourpassword');
if( $cxn === FALSE ) {  die('mysql connection error: '.mysql_error()); }


  1. Hur får man det första och sista datumet för innevarande år?

  2. Vad och när ska jag ange setFetchSize()?

  3. Hur man skapar främmande nyckelbegränsningar på flera kolumner i SQL Server - SQL Server / TSQL självstudie del 67

  4. MaxScale Basic Management med MaxCtrl för MariaDB Cluster - Del två