$gateway.open("target.server", 3306) do |port|
es más equivalente a, en este caso,
ssh -L #{port}:target.server:3306 -N [email protected]
que muy bien puede fallar si su servidor mysql solo escucha en 127.0.0.1 (o en una dirección IP interna, o con firewall para permitir solo conexiones a través de redes internas, todas las cuales son configuraciones razonables y normales).
Probablemente quieras:
$gateway.open("127.0.0.1", 3306) do |port|
en cambio en este caso.