Właśnie spojrzałem na twój kod! Zmienna z nazwą użytkownika to $database_username, ale używasz $db_username. Zmień kod na:
$db_server = mysql_connect($db_hostname, $database_username, $db_password);
lub możesz zmienić linię z nazwą użytkownika na:$db_username='[twój użytkownik mysql]';//lub nazwę użytkownika, którą utworzyłeś
Jeśli niczego nie podasz, będzie to użytkownik, który mysql przyjmie, ale nie otrzyma hasła, więc jeśli nie zdefiniowałeś $db_password, powiedziałby:(za pomocą hasła:NIE)
ustawiasz $database_username z twoim użytkownikiem, ale przekazujesz $db_username, która nie jest ustawiona, więc użytkownik jest domyślną nazwą użytkownika linux, gdy nic nie jest przekazywane z hasłem dla użytkownika mysql! Ponieważ nie ma użytkownika mysql z tym hasłem lub uprawnieniami, a nawet z taką nazwą, nie masz dostępu!
Ten użytkownik to www-data, który jest, jak się domyślasz, użytkownikiem Apache przypisanym do żądań po stronie klienta!