PHP-使用IP地址远程连接数据库

PHP-使用IP地址远程连接数据库,php,database,connection,ip,host,Php,Database,Connection,Ip,Host,如何使用ip地址连接到远程数据库?我有这段代码,但每次加载我的站点时,我都会遇到一个错误:无法连接到MySQL:无法连接到“xxx.xx.xxx.xx:80”上的MySQL服务器 define ('DB_USER', 'user'); define ('DB_PASSWORD', 'password'); define ('DB_HOST', 'xxx.xx.xxx.xx:80'); define ('DB_NAME', 'databaseName'); $dbc=mysql_connect(

如何使用ip地址连接到远程数据库?我有这段代码,但每次加载我的站点时,我都会遇到一个错误:无法连接到MySQL:无法连接到“xxx.xx.xxx.xx:80”上的MySQL服务器

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());;

尝试改用端口3306:

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

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

尝试改用端口3306:

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

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

必须使数据库服务器可用于远程访问。由于通常的MySQL服务器没有加密功能,而让这样一个服务器在整个互联网上都可用通常是一个更大的安全问题,因此任何托管的MySQL服务器通常只能从本地网络上使用(如果有的话)

如果可以从外部访问数据库服务器,请与托管公司联系


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

必须使数据库服务器可用于远程访问。由于通常的MySQL服务器没有加密功能,而让这样一个服务器在整个互联网上都可用通常是一个更大的安全问题,因此任何托管的MySQL服务器通常只能从本地网络上使用(如果有的话)

如果可以从外部访问数据库服务器,请与托管公司联系


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

如果使用端口3306,如另一个答案所述,仍然无法为您提供连接,您可以尝试两种方法:

查看您的
/etc/mysql/my.cnf
。您可能会发现这样一行:

bind-address           = 127.0.0.1
在前面加一个“#”作为注释。 如果仍然没有帮助,请检查您尝试连接的用户是否允许从所有主机进行连接


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

如果使用端口3306(如另一个答案所述)仍然无法连接,您可以尝试两种方法:

查看您的
/etc/mysql/my.cnf
。您可能会发现这样一行:

bind-address           = 127.0.0.1
在前面加一个“#”作为注释。 如果仍然没有帮助,请检查您尝试连接的用户是否允许从所有主机进行连接



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

尝试使用默认端口号:3306

尝试使用默认端口号:3306

端口3306如何?端口80通常用于Web服务器。谢谢,我将尝试端口3306。端口3306如何?端口80通常用于Web服务器。谢谢,我将尝试端口3306PS。我正在使用xampp。在哪里可以找到/etc/mysql/my.cnf?在命令行中键入
mysql--help
,在后面的输出块中有一个文本块,说明使用了哪个配置文件。通常是
c:\xampp\mysql\bin\my.ini
。谢谢。绑定地址=127.0.0.1已被注释为默认值。我将尝试PDO或mysqliWhere我可以检查是否允许用户从所有主机连接吗?检查数据库“mysql”中的表user。如果您试图连接的用户只有主机“localhost”,则无法从外部连接。将其更改为“%”。PS我正在使用xampp..在哪里可以找到/etc/mysql/my.cnf?在命令行中键入
mysql--help
,在后面的输出块中有一个文本块,说明使用了哪个配置文件。通常是
c:\xampp\mysql\bin\my.ini
。谢谢。绑定地址=127.0.0.1已被注释为默认值。我将尝试PDO或mysqliWhere我可以检查是否允许用户从所有主机连接吗?检查数据库“mysql”中的表user。如果您试图连接的用户只有主机“localhost”,则无法从外部连接。将其更改为“%”。我正在使用静态。。我的路由器的IP。然后将其路由到端口3306,然后将其路由到我的远程数据库所在的pc。你是说你的设置比你在问题中所说的更复杂吗?链中有一些NAT设备可能会产生影响。你没有对你正在使用的accound IP设置说什么。我正在使用roter的静态IP,然后在端口使用3306时将端口转发到数据库所在的我的电脑。为什么要使用端口80?我使用的是静态。。我的路由器的IP。然后将其路由到端口3306,然后将其路由到我的远程数据库所在的pc。你是说你的设置比你在问题中所说的更复杂吗?链中有一些NAT设备可能会产生影响。你没有对你正在使用的accound IP设置说什么。我正在使用roter的静态IP,然后在端口3306用于数据库所在的我的电脑时向前端口。为什么要使用端口80?无法连接到MySQL:Host'xxx.xxx.hostingprod.com'不允许连接到此MySQL服务器无法连接到MySQL:Host不允许“xxx.xxx.xxx.hostingprod.com”连接到此MySQL服务器