【发布时间】:2010-12-18 07:45:55
【问题描述】:
我可以将我的 php 脚本放在服务器 A 上并连接到服务器 B 上的 MySQL 数据库吗?
如果是,会怎么做?提前致谢
【问题讨论】:
标签: php mysql database amazon-web-services
我可以将我的 php 脚本放在服务器 A 上并连接到服务器 B 上的 MySQL 数据库吗?
如果是,会怎么做?提前致谢
【问题讨论】:
标签: php mysql database amazon-web-services
上面的所有技术都很简单
假设您在服务器 B 上有数据库,在服务器 A 上有网站(假设它的 IP 为 192.234.12.1)
在cpanel白名单服务器B的IP
并在数据库中创建一个具有足够权限的新用户(假设该用户是测试用户)
然后将此用户创建为 test@192.234.12.1
【讨论】:
是的。
与访问同一服务器上的本地主机的方式相同,您将数据库主机更改为外部主机。这更多是一个配置问题,您需要授予数据库用户对 MySQL 的远程访问权限,还需要确保您的防火墙允许 MySQL 端口上的连接。
【讨论】:
可以的。
找出将上传脚本的服务器 A 的 IP 地址。不要忘记在 mysql_connect() 或 mysqli_connect() 方法中将 localhost 更改为 Server B 的 ip 地址。
现在转到您的数据库所在的服务器 B 的控制面板。
在控制面板的主页中,转到数据库部分,然后单击远程 MYSQL 选项。
然后添加Server A的IP地址,点击添加主机。
现在您可以在服务器 A 中运行脚本时访问服务器 B 中的数据库。 请注意,获取的结果会很慢,因为它正在从位于另一台服务器上的数据库中获取数据。
欢迎您
【讨论】:
只是不要连接其他框的主机名。详细信息取决于您使用的扩展程序:
$mysql = mysql_connect($host, $user, $pass);
$mysqli = new mysqli($host, $user, $password, $schema);
$pdo = new PDO("mysql:host=$host", $user, $pass);
确保 MySQL 服务器 (CREATE USER) 允许用户访问,并检查没有防火墙。
【讨论】:
这就是你need的全部内容。
(即使您可以将脚本放在服务器 A 上,将 Web 服务器放在服务器 B 上,将数据库放在服务器 C 上......)
【讨论】:
【讨论】:
我也遇到过类似的挑战,但对我有用的是: 要从服务器A连接到服务器B,首先,您需要在cPanel(服务器B),主页->数据库->远程MySQL中允许远程MySQL访问主机,并将防火墙中的IP列入白名单(即B服务器的IP地址)。那么下面的 php db 连接应该可以工作了。
$db_connect = mysqli_connect("serverB.com", "dbuser", "dbpassword", "dbname");
// Evaluate the connection
if (mysqli_connect_errno()) {
echo mysqli_connect_error();
exit();
}else{
//successful connection
echo "Yes, successful";
}
【讨论】:
它是从其他服务器连接另一个数据库的完美解决方案。
$dbserverName = "191.238.0.2";
$dbUsername = "lauranco_L2L";
$dbPassword = "SL92TIW5T96L";
$dbName = "lauranco_siteBits";
【讨论】:
好旧的线程。
仍然 - 在此处出现的所有答案中,没有任何关于 安全性 的内容。
将mysql端口开放到服务器外部是非常不安全的。
最安全的选择是保持 mysql 端口对所有服务器中的唯一一个本地主机开放。
让另一个 php 在第二台服务器中运行,使其创建所需的输出并将其传递给您的 php(在第一台服务器中运行)。
【讨论】: