Votre installation a l'air bien. Cela semble être un problème d'autorisations.
Vous devez accorder à cet utilisateur l'accès dans mysql. Bien que Java se connecte à localhost, il le fera en utilisant tcp/ip - cependant, dans mysql, localhost et 127.0.0.1 ont une signification différente. Émettre ce SQL devrait faire l'affaire.
grant all on twitter.* to 'root'@'127.0.0.1' identified by 'mypwd';
Cela suppose que Java résout 'localhost' en 127.0.0.1, si les choses ne fonctionnent toujours pas, vous pouvez essayer de changer votre chaîne de connexion en "jdbc:mysql://127.0.0.1:3306/twitter"
Comme vous l'avez maintenant, le mot de passe en clair.