Ho trovato la soluzione al mio problema da solo, ma ancora non capisco perché non ha funzionato:
Ho concesso i privilegi a quell'utente sugli host % e localhost:
# Before
+-----------------+------------+
| Host | User |
+-----------------+------------+
| % | username |
| localhost | username |
+-----------------+------------+
Con queste impostazioni ho ottenuto i risultati che ho mostrato sopra. Quando ho concesso i privilegi a quell'utente sull'host, improvvisamente ha funzionato.
# After
+-----------------+------------+
| Host | User |
+-----------------+------------+
| % | username |
| localhost | username |
| <myIpAddress> | username |
+-----------------+------------+
Apparentemente % funziona per le connessioni remote, ma non per le connessioni locali.