$gateway.open("target.server", 3306) do |port|
é mais equivalente a, neste caso,
ssh -L #{port}:target.server:3306 -N [email protected]
que pode muito bem falhar se o seu servidor mysql escutar apenas em 127.0.0.1 (ou em um endereço IP interno, ou com firewall para permitir apenas conexões através de redes internas, todas as quais são configurações razoáveis e normais).
Provavelmente você quer:
$gateway.open("127.0.0.1", 3306) do |port|
em vez disso, neste caso.