$gateway.open("target.server", 3306) do |port|
aus
entspricht in diesem Fall eher
ssh -L #{port}:target.server:3306 -N [email protected]
was sehr gut fehlschlagen kann, wenn Ihr MySQL-Server nur auf 127.0.0.1 lauscht (oder auf einer internen IP-Adresse oder mit einer Firewall versehen ist, um nur Verbindungen über interne Netzwerke zuzulassen, was alles vernünftige und normale Konfigurationen sind).
Wahrscheinlich möchten Sie:
$gateway.open("127.0.0.1", 3306) do |port|
stattdessen in diesem Fall.