Я делаю ssh на сервере, где sql был установлен, используя perl-модуль Net :: OpenSSH.
Здесь происходит соединение с ssh-сервером.
Вот как я ssh'ing на сервер:
my $ssh = Net::OpenSSH->new("$user:$passwd\@$host");
$ssh->error and die "Couldn't establish SSH connection: ". $ssh->error;
Но при подключении к серверу sql и выполнении запроса я получаю следующее сообщение.
**********************************************
* unixODBC - isql *
**********************************************
* Syntax *
* *
* isql DSN [UID [PWD]] [options] *
* *
* Options *
* *
* -b batch.(no prompting etc) *
* -dx delimit columns with x *
* -x0xXX delimit columns with XX, where *
* x is in hex, ie 0x09 is tab *
* -w wrap results in an HTML table *
* -c column names on first row. *
* (only used when -d) *
* -mn limit column display width to n *
* -v verbose. *
* -lx set locale to x *
* -q wrap char fields in dquotes *
* -3 Use ODBC 3 calls *
* -n Use new line processing *
* -e Use SQLExecDirect not Prepare *
* -k Use SQLDriverConnect *
* --version version *
* *
* Commands *
* *
* help - list tables *
* help table - list columns in table *
* help help - list all help options *
* *
* Examples *
* *
* isql WebDB MyID MyPWD -w < My.sql *
* *
* Each line in My.sql must contain *
* exactly 1 SQL command except for the *
* last line which must be blank (unless *
* -n option specified). *
* *
* Please visit; *
* *
* http://www.unixodbc.org *
* nick@lurcher.org *
* pharvey@codebydesign.com *
**********************************************
Мой код выглядит так:
$result = $ssh->capture("isql -SWebDB -UMyID -PMyPWD -w2222 < query.sql");
$ssh->error and warn "operation didn't complete successfully: ". $ssh->error;
, где query.sql
Я поместил на удаленный сервер, где я делаю SSH.
Я думаю, отсутствует ли синтаксис внутри $ssh->capture(....);
или у нас есть какая-либо другая функция в Net::OpenSSH
для выполнения запросов SQL. Потому что через $ssh->capture(....);
, если я передаю какие-либо сценарии или команды Unix (например, ls), все работает нормально. Так что я подозреваю, есть ли в Net::OpenSSH
какие-либо функции для запуска SQL-запросов. Вам нужен вклад от вас, ребята.