我正在尝试通过 ssh 建立到远程服务器的隧道,然后使用转发端口访问 MySQL。
我目前正在使用它
$gateway = Net::SSH::Gateway.new('target.server', 'user')
def with_gateway
$gateway.open("target.server", 3306) do |port|
yield port
end
end
在我看来,这将与此类似...
`ssh -L #{port}:localhost:3306 -N user@target.server`
然后当我尝试使用它并做这样的事情时。
with_gateway do |port|
puts `mysql -u user -ppass -h 127.0.0.1 -P #{port} -e SHOW\ DATABASES\;`
end
它给了我这个错误信息..
ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 0
我错过了什么?