I've been dealing with this problem for a couple of days and, having finally resolved it, I think there is a code flaw. Any database connection issue seems to give a password error rather than a clue to the true cause.
If you're having the same problem and are sure the user name and password are correct, look in the /frontaccount/tmp/errors.log.
If you see something along the lines of "A link to the server could not be established", "Lost connection to MySQL server" or "Can't connect to local MySQL server through socket", it's because the mysql server is not running.
If you see something like "Access denied for user 'bob'@'localhost' (using password: YES)", the MySQL server is running but it's not happy with the database user. These settings are held in the /frontaccount/config_db.php file.
In my case the system changed the way it was identifying the host server from it's IP address to it's host name. I'm still not sure why this changed but after adding a new user@host to MySQL all is now happy.