Jest to normalne, jeśli mówiąc "dostęp do bazy danych przez mysql -u root -p działa dobrze" masz na myśli, że używasz go będąc rootem systemu (lub pod sudo ). Nie powinieneś być w stanie tego zrobić jako zwykły użytkownik.
Pakiety generowane przez Ubuntu domyślnie mają unix_socket uwierzytelnianie dla lokalnego roota. Aby to sprawdzić, uruchom
SELECT user, host, plugin FROM mysql.user;
Powinieneś zobaczyć unix_socket w plugin kolumna dla example@sqldat.com .
Jeśli zamiast tego chcesz użyć uwierzytelniania hasłem, uruchom
UPDATE mysql.user SET plugin = '' WHERE plugin = 'unix_socket';
FLUSH PRIVILEGES;