繁体   English   中英

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

[英]PHP - Connect database remotely using IP address

如何使用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。

必须使数据库服务器可用于远程访问。 由于通常的MySQL服务器没有加密,因此使这样的服务器可用于整个Internet通常更是一个安全问题,因此任何托管的mysql服务器通常仅可从本地网络使用(如果有的话)。

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

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

如果使用端口3306(如其他答案所述)仍然无法建立连接,则可以尝试两种方法:

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

bind-address           = 127.0.0.1

通过在前面加上“#”来注释掉它。 如果仍然不能解决问题,请检查是否允许与您尝试连接的用户从所有主机进行连接。

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

尝试使用默认端口号:3306

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM