Reputation: 4480
I am trying to connect to my MySQL database on my online server via PHP on my localhost.
$con = mysql_connect("$hostname", "$username", "$password");
if (!$con) {die('Could not connect: ' . mysql_error());}
mysql_select_db($databasename, $con);
When I upload the script to the server it connects to the database fine. However, when I load the script on my localhost it will not connect to the online database. I shut off my firewall to make sure it was not blocking it.
Is the connection above formatted correctly to do this? Any other suggestions?
Upvotes: 5
Views: 11630
Reputation: 11628
Your code is ok.
As others stated the MySQL server has to allow connections from remote machines. Also make sure your provider's firewall isn't blocking the request and double check the hostname, because it may differ from the one you use on your server.
If you didn't set up your server yourself, you'll probably have to speak with th user support of your hoster, because they have the permissions to change settings and more accurate info on this topic.
Upvotes: 2
Reputation: 33749
As the others say you need to allow that particular host (in this case your IP) to connect. This is in your user
table in the mysql
database. If you don't have access to this database (or don't have grant privileges) then you can't change this.
Upvotes: 2
Reputation: 154573
Your MySQL server needs to have your IP address (or %
as wild card) specified in the allowed hosts.
Upvotes: 7
Reputation: 798774
Does the host allow this? Many won't let external clients connect.
Upvotes: 2