Okay, let's implement this tactic: in the php script, attempt to connect with user root and (obviously) the correct password. Does that work?
Next plan of action: Okay, I know that we think that all of the privs. are okay, but for kicks let's start over. From the mysql interface (on the mail.hardrive.co.za machine) , do:
GRANT ALL ON . to username@www.hardrive.co.za IDENTIFIED BY "textpassword"
So you should replace the username in front of the @ symbol with the username you want to use, and put the password inside of the quotations at the end...I'm not intending to talk down to you, because I'm sure you know how to do this, but I'm trying to go through problems the way I go through them with myself when things are acting up...just taking obvious simple baby steps.
Now, 'kill -9' the mysql process, and restart it with safe_mysqld.
Now just create a simple php script on the www.hardrive.co.za machine:
<?
if(!(mysql_connect("mail.hardrive.co.za", "username", "pass"))){
echo("Unable to connect to database");
}
?>
If the connection is made, no error will be shown. Otherwise, it will print the message.
Let me know how this works!