我正在寻找从两个服务器到一个服务器的共享数据库,例如有一个mysql数据库服务器与hostgator.com的购物数据库相关,有两个购物网站服务器来自其他托管公司而不是hostgator公司,我的问题是,这是否可以从其他公司的购物网站服务器使用其他两家公司的数据库登录到其他公司的服务器!
如果可能的话,我们可以使用它吗!我们怎么称呼它!有没有网站可以让我了解更多!
非常感谢。
使用:
$con = new mysqli ("SERVER_IP","db_user","db_pass","db");
代替
$con = new mysqli ("localhost",...);
您需要为数据库创建一个具有主机%权限的用户,并且您需要允许远程访问数据库,请参阅此处:
启用远程访问
希望这就是您正在寻找的
如果应用程序可以"看到"任何数据库,则任何应用程序都可以直接使用该数据库。这意味着包括但不限于:
- 应用程序和数据库,并且当前正在运行
- 运行应用程序和数据库的主机可以通过网络相互连接
- 应用程序可以通过网络访问数据库服务
- 必要的端口未被阻塞
- 启用了必要的权限
- 等等
只要不存在一个实例无法"看到"另一个实例的情况(例如防火墙阻止主机和/或端口访问),那么应用程序和数据库所在的主机就没有什么区别。这只是对连接字符串的更改。
但是,如果确实存在这样的情况(例如在这种情况下很常见的端口阻塞),并且数据库对应用程序不"可见",则有两个选项:
- 纠正状况(例如,打开端口)
- 创建一个中介API
在许多情况下,特别是在您不拥有正在使用的网络基础设施的情况下,第一种选择可能是不可能的。(即使您拥有网络基础设施,出于安全原因,这可能也不可取。除非您真正了解该数据库的安全性,否则通常不赞成使用互联网可访问数据库。)
因此,如果您需要创建API,这只是一个附加的应用程序,可以查看数据库(可能在同一主机上或同一防火墙内运行),并公开可见的功能(如web服务而不是直接访问数据库)。它可以非常简单,只向数据库公开获取/保存(CRUD)功能。或者它可以更智能,通过外部客户端可以使用的数据公开业务操作。这取决于你。