Nel punto in cui mysql riceve la connessione, tutto ciò che deve identificare il sistema remoto è l'indirizzo IP . Deve quindi eseguire una ricerca "dns inversa" per convertire l'indirizzo IP del sistema richiedente in un nome host, in modo che possa cercare il nome host nella tabella di autorizzazione. Sebbene tu possa mappare più nomi host su un singolo indirizzo IP, come hai fatto, non c'è modo per mysql di sapere quale nome host è stato originariamente specificato. A quel punto tutto ciò che ha è 127.0.0.1 e il risolutore DNS restituirà il nome 'localhost'. Anche se cambiato, potresti dargli un solo nome, quindi il tuo schema non funzionerà.
È tuttavia possibile assegnare alla scheda di rete più indirizzi IP DIVERSI. Non conosco i dettagli per configurarlo su Ubuntu, ma dovrebbe essere relativamente facile. Quindi puoi impostare più nomi host ciascuno con il proprio IP che si riconnette al tuo sistema. Nella tua configurazione mysql specifica gli indirizzi IP invece dei nomi host nei tuoi comandi GRANT per evitare di dover fare confusione con rDNS.