This error has become the bane of email server management for me. I know the cause and I know how to fix it, yet it always seems to take forever to get it right and it seems to break so very easily. Thankfully after a lot of frustration i have found a very easy way to get past the following error.
dovecot: auth-worker(default): mysql: Connect failed to localhost (mail): Access denied for user ‘postfix’@’localhost’ (using password: YES) - waiting for 1 seconds before retry
You have tried granting the user full permissions for everything, you can log in via the command line and nothing appears to be wrong with the user account. I tried all of this too and the problem appears to be the method that MySQL uses to encrypt the passwords. I’m not sure if its dovecot that needs to catch up with this or if SQL is acting up. Either way you can fix this error with the following command.
SET PASSWORD FOR 'postfix'@'localhost' = OLD_PASSWORD('password');
This will alter the password hash for the user account using the older hashing method. Im not really sure the big details of this, but all i know for sure is that it fixed the issue for me.
Of course this might not be the cause of your error. It might be a simple fact that the login is incorrect or that the user does not have the correct permissions to view the database. However it goes, hopefully this helps and you can get over this issue as easy as possible.