"资源ID#5"在ssh2_exec中使用mysql时返回

时间:2014-12-17 17:35:54

标签: php mysql bash ssh libssh2

我正在使用ssh2在远程服务器上进行mysql查询。 以下是我的专栏:

$connection = ssh2_connect("ip_address", 22);
if (ssh2_auth_pubkey_file($connection, "user", ".ssh/id_rsa.pub", ".ssh/id_rsa"))
{
echo("Ok");
}
else
{
die("KO");
}
$stream = ssh2_exec($connection, "mysql -u root --password=password -D db -e 'SELECT * FROM table'");
echo $stream;

当我启动命令时,我收到消息“OK”并且$ stream变量写道:“Ressource id#5” 我不知道为什么它不起作用。我使用正确的ssh命令在bash中测试了命令:

ssh user@ip_address "command"

它有效。 我在等你的帮忙, 谢谢, Cordialement,

1 个答案:

答案 0 :(得分:2)

我想你可能会有更多的运气phpseclib, a pure PHP SSH implementation。例如

<?php
include('Net/SSH2.php');
include('Crypt/RSA.php');

$ssh = new Net_SSH2("ip_address", 22);
$key = new Crypt_RSA();
$key->loadKey(file_get_contents(".ssh/id_rsa"));
if ($ssh->login('user', $key)) {
    echo "Ok";
} else {
    die("KO");
}
echo $ssh->exec("mysql -u root --password=password -D db -e 'SELECT * FROM table'");