¡Acabo de mirar tu código! La variable con el nombre de usuario es $database_username pero está usando $db_username. Cambie su código a:
$db_server = mysql_connect($db_hostname, $database_username, $db_password);
o puede cambiar la línea con el nombre de usuario con:$db_username='[su usuario de mysql]';//o el nombre de usuario que creó
Cuando no pasa nada, será el usuario que asume mysql, pero no obtendrá la contraseña, por lo que si no hubiera definido $db_password, diría:(usando contraseña:NO)
configura $database_username con su usuario pero está pasando $db_username que no está configurado, por lo que el usuario es el nombre de usuario de Linux como predeterminado cuando no se pasa nada con la contraseña para el usuario de mysql. Dado que no hay ningún usuario de mysql con esa contraseña o privilegios o incluso con ese nombre, ¡no se le da acceso!
¡Ese usuario es www-data que es, como habrás adivinado, un usuario de apache asignado a las solicitudes del lado del cliente!