从 cPanel 远程连接到 WAMP 上的 MySQL

Remote connection from cPanel to MySQL on WAMP

我正在尝试使用简单的 PHP 连接远程连接到 MySQL 数据库。我搜索了很多线程,仍然收到错误“连接失败:无法连接到 'my IP address' 上的 MySQL 服务器(111“连接被拒绝”)'

我可以使用 wan IP 地址远程访问服务器,没问题,即软件文件。我正在使用端口转发在端口 80 上执行此操作。

我的连接很简单

<?php
$servername = "my ip address";
$username = "user";
$password = "password";
$dbname = "company";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
  die("Connection failed: " . $conn->connect_error);
}

$sql = "SELECT id, name FROM table";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
  // output data of each row
  while($row = $result->fetch_assoc()) {
    echo "id: " . $row["id"]. " - Name: " . $row["name"]. "<br>";
  }
} else {
  echo "0 results";
}
$conn->close();
?>

我尝试了以下方法;

  1. 在 phpMyAdmin 中创建一个拥有所有权限的新用户并使用 % 作为主机

  2. Allow from all in phpmyadmin.conf and HTTP.conf(不要认为这是问题所在)

  3. 在路由器上添加端口转发到3306

  4. 禁用本地计算机上的所有防火墙

  5. 正在将绑定地址 = 0.0.0.0 添加到 my.ini 文件(重新启动服务器)

很多线程建议将默认绑定地址设置为 localhost 或 127.0.0.1 但在 [mysqld] 下的 my.ini 中,我默认的是

default_authentication_plugin=mysql_native_password
port = 3306

我正在使用 WAMP 版本 3.1.9 64 位版本

分开你的顾虑。

首先,验证您本地网络上的另一台机器是否可以直接在 3306 端口访问数据库。这将验证服务器是否正常工作、登录是否正确、权限是否正确以及是否已处理所有防火墙设置。

一切正常后,处理通过 WAN 访问它。目前尚不清楚您是否试图“从屋内”执行此操作,即使用您自己的外部 WAN ip 地址,有多种方法可能会失败。它 可以 工作,但那是额外的 setting/debugging。因此,请确保您在这部分测试中使用的机器实际上在您的网络之外。

按目前的情况,有点不可能知道问题出在哪里。

在尝试了所有方法后,我在单独的机器上安装了另一个 WAMP,并连接到单独的网络。我可以让它连接到我原来机器上的远程 MYSQL。 PHP 脚本似乎在请求发送之前就被 cPanel 阻止了。 link 此处 https://docs.cpanel.net/knowledge-base/general-systems-administration/how-to-configure-your-firewall-for-cpanel-services/84/ 显示 cPanel 不允许端口 3306 上的出站连接。不幸的是,我无法访问共享主机上的设置来更改此设置。