2013-08-16 111 views
0

如何使用IP地址连接到我的远程数据库?我有这样的代码,但evetime我打开我的网站,我得到一个错误无法连接到MySQL:无法连接到MySQL服务器“xxx.xx.xxx.xx:80”PHP - 使用IP地址远程连接数据库

define ('DB_USER', 'user'); 
define ('DB_PASSWORD', 'password'); 
define ('DB_HOST', 'xxx.xx.xxx.xx:80'); 
define ('DB_NAME', 'databaseName'); 
$dbc=mysql_connect(DB_HOST, DB_USER, DB_PASSWORD) 
    OR die ('Could not connect to MySQL: '.mysql_error()); @mysql_select_db (DB_NAME) 
    OR die ('Could not select the database" '.mysql_error());; 
+2

端口3306怎么样? –

+0

通常,端口80用于Web服务器。 – DannyThunder

+0

谢谢我将尝试使用端口3306 – user2658838

回答

2

尝试使用3306端口相反:

define ('DB_HOST', 'xxx.xx.xxx.xx:3306'); 

端口3306是默认的MySQL端口,而端口80是HTTP。

+0

当我加载我的网站时,出现服务器错误。 – user2658838

2

数据库服务器必须可用于远程访问。由于通常的MySQL服务器没有加密,并且通常会让整个互联网可用的服务器更具安全性问题,所以任何托管mysql服务器通常只能从本地网络获得(如果有的话)。

如果您可以从外部访问数据库服务器,请咨询您的托管公司。

之后答案是肯定的,你还必须知道MySQL中的用户帐号不仅仅是用户名/密码,还包含一个“源IP”组件(可以是通配符“*”,但通常不是) ,所以还有另一层保护只允许专用IP地址访问。你有一个动态的IP?这可能是另一个需要解决的问题。

+0

我正在使用静态..我的路由器的IP ..然后路由到端口3306 – user2658838

+0

然后将其路由到我的远程数据库所在的PC。 – user2658838

+0

你是说你的设置比你说的更复杂?链中有一些NAT设备可能会影响事情。你没有对你正在使用的accound IP设置说些什么。 – Sven

0

如果使用3306端口,像其他回答说,还是不给你的连接,你可以尝试两件事情:

看着你/etc/mysql/my.cnf。你可能会发现这样的一条线:

bind-address   = 127.0.0.1 

通过在前面加一个“#”来注释它。 如果仍然没有帮助,请检查您尝试连接的用户是否允许从所有主机连接。

哦,还有一件事:不要使用PHP的mysql库。改为使用PDO或mysqli,因为mysql库已被弃用。

+0

PS我使用xampp..where能找到/etc/mysql/my.cnf吗? – user2658838

+0

在命令行中键入'mysql --help',在输出块中有一段文本说明使用哪个配置文件。通常,它是'c:\ xampp \ mysql \ bin \ my.ini'。 – ciruvan

+0

谢谢。 bind-address = 127.0.0.1已经被默认注释掉了。我将尝试PDO或mysqli – user2658838

-1

尝试使用默认端口号:3306

+0

当我加载我的网站时出现服务器错误 – user2658838

+0

你会得到什么错误? –

+0

无法连接到MySQL:主机'xxx.xxx.xxx.hostingprod.com'不允许连接到此MySQL服务器 – user2658838