通过web界面向PHP脚本公开MySQL?

通过web界面向PHP脚本公开MySQL?,php,mysql,Php,Mysql,情况如下: 我有一个web主机,它提供了一个MySQL数据库帐户,但连接只允许从localhost进行 我正在考虑通过web界面公开这个MySQL,并扩展mysqli类,这样我就可以正常地从另一台主机读/写这个数据库 在执行此操作之前,我想知道我的解决方案是否是一个好主意,以及是否已经有这样一个开源解决方案来解决我的情况?使用Web服务。Web服务旨在提供API,以便一台服务器可以与另一台服务器通信以访问该服务器的资源。在MySQL数据库周围创建Web服务包装器的优点是避免将SQL层暴露在广泛的

情况如下:
我有一个web主机,它提供了一个MySQL数据库帐户,但连接只允许从localhost进行

我正在考虑通过web界面公开这个MySQL,并扩展mysqli类,这样我就可以正常地从另一台主机读/写这个数据库


在执行此操作之前,我想知道我的解决方案是否是一个好主意,以及是否已经有这样一个开源解决方案来解决我的情况?

使用Web服务。Web服务旨在提供API,以便一台服务器可以与另一台服务器通信以访问该服务器的资源。在MySQL数据库周围创建Web服务包装器的优点是避免将SQL层暴露在广泛的Internet上

通常,通过编写Web服务,您的应用程序只能使用您特别选择公开的服务。此外,许多Web服务框架提供身份验证包和验证,有助于防止恶意实体非法访问或操纵您的数据

最后,如果迁移到不同的数据源,可以在应用程序和数据源之间保持相同的统一接口,这样就不需要修改PHP应用程序

但是,通过将数据库直接暴露在Internet上,您可能会面临数据被盗和数据丢失的风险


有关Web服务的更多信息,可以从这里开始。

这需要大量的开销和重新实现工作。而是考虑使用SSL和证书授权打开MySQL服务器进行远程连接:

这允许您公开真正的mysqld服务器。您将需要使用最新的PHP版本,例如,这将在PDO接口中添加SSL支持。但我要说的是,这比构建自己的RPC接口并保护它更容易


如果您实际使用Mysqli,那么SSL/cert支持已经内置:

这里是一个您可以开始学习的好地方。
首先,您应该评估要在服务器之间共享的数据类型,看看是否真的需要这些数据。

只有在必须实现这一点并且没有其他解决办法的情况下,这才是一个好主意。您可以创建一个api,仅允许访问特定数据,以便可以从任何地方访问这些数据。我认为这是一个好主意,任何人都不能连接到您的数据库。那么您需要从其他公司访问数据库的具体原因是什么?另外,请确保仅将帐户限制为其他Web主机的ip地址。@mazzzz:可能是为了使用比phpmyadmin更强大的软件。。。例如,一个Java DB管理器,一个远程备份的软件,一个分析表的软件(如SchemaSpy),一个访问数据并用PHP以外的语言进行操作的软件,等等。我有这样的Web服务器:我们的访问受到限制(我们只能通过同一服务器上的PHP脚本访问DB),因为它是一个共享主机,这通常不允许数据库服务器调整,唉。也没有贝壳。