【问题标题】:how to connect to database on another server如何连接到另一台服务器上的数据库
【发布时间】:2010-12-18 07:45:55
【问题描述】:

我可以将我的 php 脚本放在服务器 A 上并连接到服务器 B 上的 MySQL 数据库吗?

如果是,会怎么做?提前致谢

【问题讨论】:

    标签: php mysql database amazon-web-services


    【解决方案1】:

    上面的所有技术都很简单

    假设您在服务器 B 上有数据库,在服务器 A 上有网站(假设它的 IP 为 192.234.12.1)

    在cpanel白名单服务器B的IP

    并在数据库中创建一个具有足够权限的新用户(假设该用户是测试用户)

    然后将此用户创建为 test@192.234.12.1

    【讨论】:

    • 假设服务器 B 是我 PC 上的数据库(通过 Mysql Server 安装)。服务器 A(远程共享托管服务器)可以通过 PHP 脚本(简单的 PDO 数据库连接)访问它吗?
    【解决方案2】:

    是的。

    与访问同一服务器上的本地主机的方式相同,您将数据库主机更改为外部主机。这更多是一个配置问题,您需要授予数据库用户对 MySQL 的远程访问权限,还需要确保您的防火墙允许 MySQL 端口上的连接。

    Debian 示例:http://www.debianhelp.co.uk/remotemysql.htm

    【讨论】:

      【解决方案3】:

      可以的。

      找出将上传脚本的服务器 A 的 IP 地址。不要忘记在 mysql_connect() 或 mysqli_connect() 方法中将 localhost 更改为 Server B 的 ip 地址。

      现在转到您的数据库所在的服务器 B 的控制面板。

      在控制面板的主页中,转到数据库部分,然后单击远程 MYSQL 选项。

      然后添加Server A的IP地址,点击添加主机。

      现在您可以在服务器 A 中运行脚本时访问服务器 B 中的数据库。 请注意,获取的结果会很慢,因为它正在从位于另一台服务器上的数据库中获取数据。

      欢迎您

      【讨论】:

      • 您好,我也有同样的问题。但我的情况有点不同。在这种情况下,我希望通过服务器 a 与服务器 b 建立数据库连接,但我希望该连接对象用于 android。因为我正在工作的android项目直接连接到服务器并执行读写操作。我知道这是一种不好的做法,但我仍然需要解决方案。 Android -> 服务器 A -> 服务器 B
      【解决方案4】:

      只是不要连接其他框的主机名。详细信息取决于您使用的扩展程序:

      $mysql = mysql_connect($host, $user, $pass);
      $mysqli = new mysqli($host, $user, $password, $schema);
      $pdo = new PDO("mysql:host=$host", $user, $pass);
      

      确保 MySQL 服务器 (CREATE USER) 允许用户访问,并检查没有防火墙。

      【讨论】:

        【解决方案5】:

        这就是你need的全部内容。

        (即使您可以将脚本放在服务器 A 上,将 Web 服务器放在服务器 B 上,将数据库放在服务器 C 上......)

        【讨论】:

          【解决方案6】:

          看看这里:

          http://us2.php.net/manual/en/function.mysql-connect.php

          您可以将服务器主机名作为参数传入,也可以在 php.ini 中进行配置。

          【讨论】:

            【解决方案7】:

            我也遇到过类似的挑战,但对我有用的是: 要从服务器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";
            }
            

            【讨论】:

              【解决方案8】:

              它是从其他服务器连接另一个数据库的完美解决方案。

              $dbserverName = "191.238.0.2";    
              $dbUsername = "lauranco_L2L";
              $dbPassword = "SL92TIW5T96L";
              $dbName = "lauranco_siteBits";
              

              【讨论】:

                【解决方案9】:

                好旧的线程。

                仍然 - 在此处出现的所有答案中,没有任何关于 安全性 的内容。

                将mysql端口开放到服务器外部是非常不安全的。

                最安全的选择是保持 mysql 端口对所有服务器中的唯一一个本地主机开放。

                让另一个 php 在第二台服务器中运行,使其创建所需的输出并将其传递给您的 php(在第一台服务器中运行)。

                【讨论】:

                • 我有一个共享的托管服务器,我想使用 Mysqlserver(例如安装在我的电脑上)从我的服务器上的 php 脚本从数据库中检索数据。你能更明确地解释一下如何安全地完成它吗?
                • 在共享托管服务器中有一个 php 脚本,使其将数据列传送到您电脑中运行的另一个 php 脚本。
                • 我认为这一切都太复杂了......现在我正在尝试了解更多关于 VPN 试图在我的本地 PC 上的数据库(Mysql Server)和服务器(共享主持一个)。您认为设置 VPN 是一条通往安全的好途径吗?
                • 好。如果你使用 VPN,不要完全打开 mysql 端口,很好。
                • 是的,我猜Mysql默认的3306端口会被关闭。然后我只需要在远程服务器上设置一个 VPN。从另一台服务器(我的电脑)连接它。配置 Mysqlserver 接受远程连接(绑定地址+用户配置)。通过将 localhost 更改为内部 IP 地址来运行一个简单的查询以进行测试。希望它会像我想的那样清楚,并且不会有路由器或防火墙或复杂的配置...
                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 2019-10-16
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2015-07-20
                • 2021-07-17
                • 2017-12-17
                相关资源
                最近更新 更多