www-data
adalah pengguna Debian yang menjalankan Apache dan php. Jika Anda mencoba kueri saat Anda tidak memiliki koneksi yang valid, php/mysql akan mencoba membuat koneksi menggunakan <unix-user>@localhost
tanpa kata sandi. Di sinilah [email protected] (using password:NO)
berasal dari.
Alasan yang paling mungkin mengapa ini mulai terjadi sekarang (meskipun telah berjalan dengan baik selama 2 tahun sebelumnya) adalah bahwa beban db Anda telah meningkat ke titik di mana beberapa koneksi tidak dapat berhasil (mungkin karena max_connections, atau max_user_connections; meskipun ini juga dapat dihasilkan dari batasan lain seperti memori, utas, dll). Ketika ini terjadi, panggilan Anda ke mysql_connect
akan memancarkan pesan kesalahan, dan mengembalikan FALSE
. Jika Anda gagal mendeteksi kegagalan ini, maka panggilan mysql Anda berikutnya (mungkin mysql_query, atau mysql_select_db) akan mencoba koneksi ke [email protected]
-- sehingga menyebabkan masalah yang Anda lihat.
Saya sarankan mengaktifkan pelaporan kesalahan, dan tampilan kesalahan (seperti yang disarankan oleh @DarkMantis):
ini_set('error_reporting', E_ALL|E_STRICT);
ini_set('display_errors', 1);
Juga, pastikan bahwa panggilan Anda ke mysql_connect tidak didahului oleh @
tanda; dan pastikan untuk memeriksa nilai pengembalian. Seharusnya terlihat seperti ini:
$cxn = mysql_connect('localhost','yourusername','yourpassword');
if( $cxn === FALSE ) { die('mysql connection error: '.mysql_error()); }