When you tried creating the new database user, did you specify the host portion to be the IP of your nagios server that the connections will be coming from? Like:
Code:
GRANT ALL ON foo.* TO someuser@'192.168.1.10' IDENTIFIED BY 'SOME_PASSWORD';
where foo is replaced by the name of your database and 192.168.1.10 is replaced with your nagios server IP address.
For instance, if you're specifying in your nagios check that it should log into mysql using the root account, then you'd want to add root@'your nagios IP' to all your mysql databases.
Doing the above should at least help get rid of error #3 in your original post.
Let me know if you have any luck.