【问题标题】:netcat for MySQL connection forwarding用于 MySQL 连接转发的 netcat
【发布时间】:2015-06-17 16:40:48
【问题描述】:

这个问题与

有关

Dockerized web app connecting to MySQL DB on host

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

按照我的理解,我应该能够在我的容器中执行以下操作

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

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

当我尝试从容器连接时出现问题

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 实例,因为我收到了不同的错误消息。

我无法在日志或标准输出中找到任何信息来提供帮助。

有什么想法吗?

【问题讨论】:

标签: mysql linux docker


【解决方案1】:

根据我的经验,您可能更喜欢 socat 而不是 netcat。

例如

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

我发现 netcat 处理连接的问题

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-09-20
    • 1970-01-01
    • 2013-04-09
    • 2015-03-12
    • 2020-12-15
    • 2021-09-16
    • 1970-01-01
    • 2016-06-08
    相关资源
    最近更新 更多