php - 在 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();
?>
我尝试了以下方法;
在 phpMyAdmin 中创建具有所有权限的新用户并使用 % 作为主机
在 phpmyadmin.conf 和 HTTP.conf 中允许(不要认为这是问题)
在路由器上添加端口转发到 3306
禁用本地计算机上的所有防火墙
将 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 位版本
解决方案
分开你的顾虑。
首先,验证本地网络上的另一台机器可以直接在 3306 端口访问数据库。这将验证服务器是否正常工作、登录是否正确、权限是否正确以及是否已解决所有防火墙设置。
毕竟工作正常,处理通过WAN访问它。目前尚不清楚您是否尝试“从屋内”执行此操作,即使用您自己的外部 WAN ip 地址,有多种方式可能会失败。它可以工作,但这是额外的设置/调试。因此,在这部分测试中,请确保您使用的机器实际上位于您的网络之外。
就目前而言,有点不可能知道问题出在哪里。
推荐阅读
- go - 使用 ptypes.Timestamp 与 timestamppb.Timestamp.AsTime 进行时间转换
- batch-file - 拖放 bat 文件以自动化 exiftool
- c++11 - 配备函数指针作为自定义删除器的 unique_ptr 是否与 shared_ptr 大小相同?
- android - 我可以从 Android/iOS 设备每 5 秒广播一次蓝牙低功耗 20 KB 数据吗?
- angular - 来自组件的 NGRX 顺序调用操作
- javascript - 异步回调返回值
- python-3.x - 如何访问给定的 xpath 结果?
- c# - 使用列表中的列表的 Lambda 方法查询语法
- kotlin - 如何使用从 application.properties 中获取的值初始化伴随对象属性?
- asp.net-core-3.1 - 如何从 Startup.CS 查询数据库