È normale, se dicendo "accedere al DB tramite mysql -u root -p funziona bene" vuoi dire che lo stai eseguendo mentre sei un root di sistema (o sotto sudo ). Non dovresti essere in grado di farlo come utente normale.
I pacchetti generati da Ubuntu per impostazione predefinita hanno unix_socket autenticazione per la radice locale. Per controllare, esegui
SELECT user, host, plugin FROM mysql.user;
Dovresti vedere unix_socket nel plugin colonna per example@sqldat.com .
Se invece desideri utilizzare l'autenticazione tramite password, esegui
UPDATE mysql.user SET plugin = '' WHERE plugin = 'unix_socket';
FLUSH PRIVILEGES;