首页 > 解决方案 > 在 WAMP 上从 cPanel 到 MySQL 的远程连接

问题描述

我正在尝试使用简单的 PHP 连接远程连接到 MySQL 数据库。我搜索了许多线程,但仍然收到错误“连接失败:无法连接到“我的 IP 地址”上的 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. 在 phpmyadmin.conf 和 HTTP.conf 中允许(不要认为这是问题)

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

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

  5. 将 bind-address = 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 位版本

标签: phpmysqlwamp

解决方案


分开你的顾虑。

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

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

就目前而言,有点不可能知道问题出在哪里。


推荐阅读