http://qs321.pair.com?node_id=1189875

nysus has asked for the wisdom of the Perl Monks concerning the following question:

I'm trying to figure out how run mysql queries on a remote server over SSH using a tunnel. Here's what I got so far, but I have no idea if I'm on the right path so I could be way out to lunch:

use Net::OpenSSH; use DBI; use Modern::Perl; use Data::Dumper; my $ssh = Net::OpenSSH->new('me@10.0.1.17'); my ($socket, $pid) = $ssh->open_tunnel('10.0.1.17', '3306'); print Dumper $socket; print Dumper $pid; my $dsn = "DBI:mysql:database=calendar;mysql_socket=$socket"; my $dbh = DBI->connect($dsn, 'user', 'pass');

This throws an error:

$VAR1 = \*{'Net::OpenSSH::$win'}; $VAR1 = 12877; DBI connect('database=calendar;mysql_socket=GLOB(0x20f38e0)','user',.. +.) failed: Can't connect to local MySQL server through socket 'GLOB(0 +x20f38e0)' (2) at t/XMLRPC.t line 27. at /usr/lib/x86_64-linux-gnu/perl5/5.20/DBI.pm line 685.

I'm not sure how to dereference that glob in a way that would be useful to DBI. Thanks.

$PM = "Perl Monk's";
$MCF = "Most Clueless Friar Abbot Bishop Pontiff Deacon Curate";
$nysus = $PM . ' ' . $MCF;
Click here if you love Perl Monks