My answer may be dumb, but this has happened sooo many times to me, too. The reason for me is ALWAYS that I have misspelled/mistyped the database.
Also, make SURE what you THINK your, "username" is, is actually the correct username.
For example, lets say my website is blahblahblah.com and I "pick" the username, "billybob."
Okay.... you may THINK your username is "billybob," but your webhost/server/whoever might create your username as:
blahblahblah_billybob
At least that's how one of my servers does it. It appends my site and an underscore onto the username I select.