首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从服务器B上不同版本的PHP访问服务器A上的MySql数据库

从服务器B上不同版本的PHP访问服务器A上的MySql数据库
EN

Stack Overflow用户
提问于 2018-08-17 11:50:55
回答 1查看 1.9K关注 0票数 1

我试图弄清楚,如何从MySql数据库表中检索记录,该表位于服务器A上,即从服务器B php mysqli PHP Version 7.2.8检索PHP Version 5.3.29

我找到了这个例子如何使用PHP连接到远程MySQL数据库,但我不明白,它与我想要做的事情有什么关系,怀疑它是不是我想要的

我是php的新手,我能想象的是,我应该在Remote MySQL服务器AE 221服务器AE 22上添加来自服务器Aphp mysqli连接数据,并在e 123/code>服务器Ae 224中添加服务器B的access host IP,但我不确定在哪里我必须在E 125服务器BE 226上添加数据库用户和密码。

服务器A

phpinfo();PHP Version 5.3.29版本

数据库服务器 服务器:本地主机通过类型: MySQL服务器版本: 5.6.39 - MySQL社区服务器(GPL)协议版本: 10服务器字符集: UTF-8 Unicode (utf8) Web服务器 数据库客户端版本: libmysql - 5.1.73 PHP扩展: mysqliDocumentation curlDocumentation mbstringDocumentation PHP版本: 5.6.30 phpMyAdmin 版本信息: 4.7.7

服务器B

phpinfo();PHP Version 7.2.8版本

数据库服务器 服务器:通过类型的本地主机: MariaDB服务器版本:5.5.56-MariaDB-MariaDB服务器协议版本: 10服务器字符集: UTF-8 Unicode (utf8) Web服务器 数据库客户端版本: libmysql - mysqlnd 5.0.11-dev - $Id: mysqliDocumentation curlDocumentation mbstringDocumentation phpMyAdmin 版本信息: 4.6.6

任何建议、指南或例子都会很有帮助。

编辑:

我的回答是,首先,我在IP服务器A上的Remote MySQL中添加了服务器B。My conn.php,位于服务器B上,用于连接到服务器A

代码语言:javascript
复制
<?php
$servername = "Server_A_IP";
$username = "Server_A_database_user";
$password = "Server_A_database_user_password";
$db = "Server_A_database";

$conn = new mysqli($servername, $username, $password, $db);
$conn->set_charset('utf8');

if(!$conn)
{
    die ("Error on the Connection" . $conn->connect_error);
}
?>

dbtab.php还位于Server B上,conn.php位于同一个文件夹中:

代码语言:javascript
复制
<?php
 include 'conn.php';
$sql = "SELECT * FROM tab";
$result = $conn->query($sql);
?>
<!DOCTYPE html>
<html>
    <h1 align="center">Database</h1>
    <table border="1" align="center" style="line-height:25px;">
    <tr>
    <th colspan="2">Records</th>
    </tr>
    <tr>
    <th bgcolor="#ff897f">id</td> 
    <th bgcolor="#ff897f">name</td>   
    </tr>
<?php
if($result->num_rows > 0)
{
   while($row = $result->fetch_assoc())
   {
    ?>
     <tr>
        <td bgcolor="#e5cac8"><?php echo $row['id']; ?></td>
        <td bgcolor="#e5cac8"><?php echo $row['name']; ?></td>
    <?php
   }
}
else
{
    ?>
    <tr>
    <th colspan="2">There's No data found!!!</th>
    </tr>
    <?php 
}
?>
</body>
</html>

但结果是,当我绑定打开www.site.com/folder/dbtab.phpwww.site.com/folder/conn.php时,页面不会加载,只会结冰

服务器的ping A

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-17 12:05:05

在服务器A上不需要php。您只需将MySQL服务器(服务器A)配置为

  1. 允许网络访问(通过IP地址)和
  2. 为服务器B的IP地址创建一个MySQL帐户

如果已经设置了此连接,则可以通过以下方法从服务器B上的php创建连接

$mysqli = new mysqli("<IP of Server A>", "user", "password", "database");

请参阅以下优秀的php网站:mysqli连接

步骤1、2取决于您的MySQL服务器。如果您有直接的根访问权限,则需要编辑配置文件并允许联网,否则将取决于托管服务。

若要创建具有远程访问权限的用户帐户,请发出以下SQL语句(或使用web ):

GRANT <Rights> ON <db-name>.* TO 'username'@'<IP of Server B>';

请参阅关于向用户授予特权的MySql手册:https://dev.mysql.com/doc/refman/5.5/en/grant.html

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51894844

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档