www-data
е потребителят на Debian, който изпълнява apache и php. Ако опитате заявка, когато нямате валидна връзка, php/mysql ще се опита да създаде връзка с помощта на <unix-user>@localhost
без парола. Това е мястото, където [email protected] (using password:NO)
идва от.
Най-вероятната причина това да е започнало да се случва сега (въпреки че работи добре преди 2 години) е, че натоварването на базата данни се е увеличило до точката, в която някои връзки не могат да успеят (вероятно поради max_connections или max_user_connections; все пак това може да е резултат и от други ограничения като памет, нишки и т.н.). Когато това се случи, вашето обаждане до mysql_connect
ще издаде съобщение за грешка и ще върне FALSE
. Ако не успеете да откриете този неуспех, тогава следващото ви извикване на mysql (вероятно mysql_query или mysql_select_db) ще се опита да се свърже с [email protected]
-- по този начин причинява проблема, който виждате.
Предлагам да активирате отчитане на грешки и показване на грешки (както е предложено от @DarkMantis):
ini_set('error_reporting', E_ALL|E_STRICT);
ini_set('display_errors', 1);
Също така се уверете, че вашето обаждане до mysql_connect е не предшестван от @
знак; и не забравяйте да проверите върнатата стойност. Трябва да изглежда така:
$cxn = mysql_connect('localhost','yourusername','yourpassword');
if( $cxn === FALSE ) { die('mysql connection error: '.mysql_error()); }