在 127.0.0.1:3306 上添加客户端到服务器端口转发规则失败
Posted
技术标签:
【中文标题】在 127.0.0.1:3306 上添加客户端到服务器端口转发规则失败【英文标题】:Failed to add client-to-server port forwarding rule on 127.0.0.1:3306 【发布时间】:2020-01-24 07:50:48 【问题描述】:我打开 ssh 隧道,在 Windows 上使用 Putty,设置端口 3306 以从外部网络远程连接到 Ubuntu 14.04 操作系统上的 mysql 服务器数据库。 而且我只在端口 3306 上收到以下错误:
Failed to add client-to-server port forwarding rule on 127.0.0.1:3306: Address is already in use; bind () in ListeningSocket :: StartListening () failed: Windows error 10013: Attempting to access the socket in ways not allowed by the respective access authorizations.
对于其他端口...例如 5900 和 2222,隧道正常工作,我不明白为什么会出现错误,因为我还执行了检查 Ubuntu 上的端口的命令
sudo lsof -i: 3306
我发现了
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
mysql 8637 mysql 10u IPv4 37615 0t0 TPC *: mysql (LISTEN)
我必须进行哪些更改才能使端口 3306 上的隧道为我工作?提前致谢
【问题讨论】:
发现问题...问题不是 Ubuntu 上的 MySQL 服务器,而是 Windows 10 使用 IPv6 和相同的 3306 端口,因此该端口被标记为已在使用中。为避免此问题,请使用端口 3306 停止 IPv6,例如使用 TCPView 程序并验证 Putty 在 SSH 中打开隧道。然后连接到 MySQL Workbench 并连接到 127.0.0.1 端口:3306 就可以了。 您已正确指出问题是 IPv6 并通过在启动计算机上禁用它来解决。创建答案并将此问题标记为已解决! 【参考方案1】:我也有
bitvise failed to add server-to-client port forwarding rule 127.0.0.1:8080: Operation was rejected
我使用了 bitvise 并尝试进行远程端口转发。正如@IISanto 指出的那样。这是通过在启动 Windows 机器上禁用 IPv6 协议来解决的。之后效果很好:
【讨论】:
以上是关于在 127.0.0.1:3306 上添加客户端到服务器端口转发规则失败的主要内容,如果未能解决你的问题,请参考以下文章
无法在 127.0.0.1:3306 连接到 mysql,用户 'root'@'localhost' 的用户 root 访问被拒绝(使用密码:YES)
Docker Compose 在 MySQL 和 NodeJS 中出现错误 ECONNREFUSED 127.0.0.1:3306
Node.js 连接MySQL时 出现 connect ECONNREFUSED 127.0.0.1:3306
mysql.connector.errors.InterfaceError: 2003: Can't connect to MySQL server on '127.0.0.1:3306' (111
Workbench 说:使用 root 用户通过 34.xxx.xxx.xxx:22 处的 SSH 隧道连接到 127.0.0.1:3306 处的 MySQL 失败