www-data
é o usuário Debian que executa o apache e o php. Se você tentar uma consulta quando não tiver uma conexão válida, o php/mysql tentará criar uma conexão usando <unix-user>@localhost
sem senha. É aqui que [email protected] (using password:NO)
está vindo. A razão mais provável de que isso começou a acontecer agora (embora esteja funcionando bem por 2 anos antes) é que sua carga de banco de dados aumentou a ponto de algumas conexões não conseguirem ter sucesso (provavelmente devido a max_connections ou max_user_connections; embora isso também pode resultar de outros limites, como memória, threads, etc.). Quando isso acontece, sua chamada para
mysql_connect
emitirá uma mensagem de erro e retornará FALSE
. Se você não detectar esta falha, sua próxima chamada mysql (provavelmente mysql_query ou mysql_select_db) tentará a conexão com [email protected]
-- causando assim o problema que você está vendo. Sugiro ativar o relatório de erros e a exibição de erros (conforme sugerido por @DarkMantis):
ini_set('error_reporting', E_ALL|E_STRICT);
ini_set('display_errors', 1);
Além disso, certifique-se de que sua chamada para mysql_connect não precedido por um
@
sinal; e certifique-se de verificar o valor de retorno. Deve ser algo assim:$cxn = mysql_connect('localhost','yourusername','yourpassword');
if( $cxn === FALSE ) { die('mysql connection error: '.mysql_error()); }