Well, the first thing I would do is see if I can connect to the database from the commandline.You know:
mysql -u root -p
Since one of the databases in on your local machine, you should have no problem. If you cannot connect that way, then it is a MySQL issue. If you can connect that way, then its an error in the script. If it is an error in the script, then I would strip it down to the absolute essentials of something like this:
$dbh = DBI->connect("DBI:mysql:$db", $user, $pw) or die "Database conn
+ection not made: $DBI::errstr";
print "Woo Hoo! I connected!\n";
If that works, then I would start rebuilding the cgi script from that point.
All that being said, my guess is that it is a problem with the script since it is unlikely that both MySQL servers you are trying to reach have problems.
By the way Nik, you really need to develop some basic troubleshooting skills.
just my 2 cents,