I had this same problem because I created the user with the host=’%’ only. I created the same user with the same password with host=’localhost’ and it worked.
From what I understand host=’%’ enables that user to logon from any remote hostname, not necessarily the local one.
I’m not sure if my explanation is correct, but it did work once I did this.