PHP 到 MySQL 的连接是不是需要是本地的?

Posted

技术标签:

【中文标题】PHP 到 MySQL 的连接是不是需要是本地的?【英文标题】:Does a PHP to MySQL connection need to be local?PHP 到 MySQL 的连接是否需要是本地的? 【发布时间】:2015-01-03 04:35:43 【问题描述】:

好的,我知道这可能是一个非常愚蠢的问题,所以请原谅我,但现在我有 XAMPP,并且我正在我的个人计算机上运行本地 Apache 服务器来测试 php 代码。我已经通过 webhost (Hostgator) 上的 phpmyadmin 设置了一个测试数据库,但看起来如果我想连接到该数据库,我需要在同一台服务器上编辑我正在编辑的 PHP 文件,因为我阅读的任何教程都告诉我我在使用 mysqli 或 PDO 时使用 localhost 来满足服务器名称要求。

这是因为您“无法”连接到单独服务器上的数据库吗?还是因为它不常见,因为有更好的做事方式? (我已经看到有关能够将 MySQL 和 phpmyadmin 下载到我的 PC 上,然后导入和导出表的提示,但我所看到的并不清楚这是否是我需要为此做的事情。) 谢谢!

【问题讨论】:

您可以连接到远程服务器。只需将远程服务器设置为允许远程连接。大多数免费主机不允许这样做。 远程服务器必须允许 tcp 连接,您必须在该服务器上拥有一个允许远程登录的帐户,例如user@host_you_connect_from,加上防火墙必须允许流量等...但总的来说,没有理由不能使用远程 mysql。 【参考方案1】:

你可以做到,我看你已经想通了。

但是,将您的数据库暴露在公共互联网上从来都不是一个好主意,因此出于安全目的,它默认是关闭的。

如果只是为了测试您的代码,那么最好使用本地 mysql 服务器设置您的开发环境,这样您就不会弄乱生产数据库。

【讨论】:

【参考方案2】:

问题解决了!我必须进入远程 MySQL 并允许 IP 地址。再说一次,也许是一件很无聊的事情,但我不知道这是你需要做的事情。虽然从中学到了!谢谢大家!

【讨论】:

【参考方案3】:

不,为 web 和 mysql 使用不同的机器是很常见的做法。可能存在一些问题(不熟悉 Hostgator,但我处理过类似的问题)。一种可能是防火墙。 Hostgator 网络之外的任何东西都无法访问。

如果我想连接到那个数据库,我需要有一个 PHP 文件 我正在同一台服务器上编辑,因为我阅读的任何教程 告诉我在使用时使用 localhost 来满足服务器名称要求 MySQLi 或 PDO。

我会找到更好的教程。将 MySQL 服务器与 Web 服务器分开是一种很好的做法。

【讨论】:

【参考方案4】:

如果服务器机器在其防火墙中打开了适当的端口并且两台机器之间存在路由,则可以连接到另一台机器上运行的数据库服务器。

【讨论】:

以上是关于PHP 到 MySQL 的连接是不是需要是本地的?的主要内容,如果未能解决你的问题,请参考以下文章

如何在非本地连接到mysql [重复]

C++ 原子数组是不是也需要是原子的?

本地php 连接 MySQL

结构的大小是不是需要是该结构对齐的精确倍数?

Salesforce REST API 回调 URL 是不是需要是 HTTPS?

为啥在字符串中使用 javascript 转义字符的引号需要是 \\' 而不是 \'