If you use MySQL version older than 4.1.18, or in 5.x series older than 5.0.19, there's a problem with conflicting symbols. Either the linking fails completely, or Dovecot can't log in:
dovecot: Oct 14 01:02:22 Error: auth-worker(default): mysql: Connect failed to localhost (db): Access denied for user 'user'@'localhost' (using password: YES) - waiting for 1 seconds before retry
They both have the same root reason: Conflicing sha1_result symbol. Either upgrade to newer MySQL library, or modify Dovecot sources:
cd dovecot perl -i -pe 's/sha1_result/dovecot_sha1_result/' `find . -name '*.[ch]'`
Another solution to "access denied" is to use OLD_PASSWORD() function to set the password in MySQL. This works because it doesn't use the SHA1 functions.