用于 MySQL 连接转发的 netcat



这个问题与

连接到主机上的 MySQL 数据库的 Docker 化 Web 应用程序

我正在尝试打开从码头工人容器到主机的连接以支持 MySQL 连接。

我的

理解方式,我应该能够在我的容器中执行以下内容

nc.traditional -l -p 3306 -c "nc.traditional 172.17.42.1 3306" &

以打开从 Docker 容器端口 3306 到在端口 3306 上运行的主机 (IP 172.17.42.1) MySQL 实例的隧道。

麻烦是一旦我尝试从容器连接

mysql --host=127.0.0.1 --port=3306 -uroot -ppassword

我收到错误,隧道退出

root@7ec710b77baf:/var/log# mysql --host=127.0.0.1 --port=3306 -uroot -pAcc355
(UNKNOWN) [172.17.42.1] 3306 (mysql) : Connection refused
ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 0
[1]+  Exit 1                  nc.traditional -l -p 3306 -c "nc.traditional 172.17.42.1 3306"

为什么隧道会退出? 我做错了什么?它似乎确实联系了MySQL实例,因为我在尝试其他端口时收到不同的错误消息。

我无法在日志或 std 上找到任何信息来提供帮助。

有什么想法吗?

根据我的经验,你可能追求的是socat而不是netcat。

例如

socat TCP-LISTEN:3306,fork TCP:db-host:3306

我发现网猫处理连接时存在问题

最新更新