A buddy of mine was recently setting up a new installation of Courier with virtual user support via MySQL. He ran into an issue when trying to get
authdaemond to connect to a remote MySQL installation. No matter what he changed in
authmysqlrc, the following kept appearing in his mail log (I've changed hostnames and usernames):
authdaemond: failed to connect to mysql server (server=db.slaptijack.com, userid=mailadm): Access denied for user 'mailadm'@'mail.slaptijack.com' (using password: YES)
The obvious conclusion is a permissions problem in the MySQL database. Double checking the GRANTS in MySQL and testing a remote connection via the
mysql client ruled out that possibility.
In desperation, he began combing through
authmysqlrc line by line. Finally, dumb luck helped him stumble across this issue (I've underlined the problem):
Somehow, a tab had mistakenly been added to the end of the password field. Removing that tag solved the problem straight away. The lesson to be learned is that Courier (at least in the case of
MYSQL_PASSWORD) assumes the value assignment in a configuration file to begin with the first non-whitespace character and continue to the end of the line.