Perhaps, the user name is just "john" and not "john@helle.grapevine2.net"
Or, the passward could be wrong
Or, you do not have access / rights to create databases on the MySQL server
Do you want to create a new table on the database $db or do you want to create a new database $db?
Try perform a query. If it works, then you know you do not have the rights to create databases. Just change the permissions / rights for user John or john@helle.grapevine2.net.
Cheers...
Kai