netcat用于MySQL连接转发
这个问题是关于 我试图打开从docker容器到主机的连接,以支持MySQL连接 按照我的理解,我应该能够在我的容器中执行以下内容netcat用于MySQL连接转发,mysql,linux,docker,Mysql,Linux,Docker,这个问题是关于 我试图打开从docker容器到主机的连接,以支持MySQL连接 按照我的理解,我应该能够在我的容器中执行以下内容 nc.traditional -l -p 3306 -c "nc.traditional 172.17.42.1 3306" & mysql --host=127.0.0.1 --port=3306 -uroot -ppassword 打开从Docker容器端口3306到主机(IP 172.17.42.1)MySQL实例的隧道,该实例在端口3306上运行
nc.traditional -l -p 3306 -c "nc.traditional 172.17.42.1 3306" &
mysql --host=127.0.0.1 --port=3306 -uroot -ppassword
打开从Docker容器端口3306到主机(IP 172.17.42.1)MySQL实例的隧道,该实例在端口3306上运行
问题是我一尝试从容器连接就开始了
nc.traditional -l -p 3306 -c "nc.traditional 172.17.42.1 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实例
我一直无法在日志或std上找到任何信息以提供帮助
有什么想法吗?根据我的经验,你可能在追求socat而不是netcat 乙二醇
我发现netcat处理连接时存在问题可能不需要任何隧道。您只需要将MySQL端口3306公开给其他本地端口。也可能是3306。参见