Es normal, si diciendo "acceder a la base de datos a través de mysql -u root -p funciona bien" quiere decir que lo está ejecutando mientras es un root del sistema (o bajo sudo ). No debería poder hacerlo como un usuario normal.
Los paquetes generados por Ubuntu por defecto tienen unix_socket autenticación para la raíz local. Para verificar, ejecute
SELECT user, host, plugin FROM mysql.user;
Debería ver unix_socket en el plugin columna para example@sqldat.com .
Si desea utilizar la autenticación de contraseña en su lugar, ejecute
UPDATE mysql.user SET plugin = '' WHERE plugin = 'unix_socket';
FLUSH PRIVILEGES;