2011-05-12 176 views
1

我想通過端口轉發連接到我的遠程Mysql服務器。不幸的是,我的託管服務提供商沒有在服務器上安裝php_ssh2,所以我必須通過phpseclib庫。到目前爲止,我能夠做的事情:
1.連接到服務器使用Net_SSH2
$ssh = new Net_SSH2('xx.xxx.xx.xx');
if (!$ssh->login('user', 'password')) {
exit('Login Failed');
}

如果我做 echo $ssh->exec('ls -la');Phpseclib連接MYSQL服務器

它獲取我們已經成功地連接目錄列表說明問題。

,如果我跑

  1. echo $ssh->exec('echo "select * from table where company_id=\"15\";" | mysql');

它觸發:
標準輸入:是不是tty ERROR 1045(28000):拒絕訪問用戶 '用戶' @ 'localhost' 的(使用密碼:NO)

  1. 如果我做
    echo $ssh->exec('ssh -f -L 3307:localhost:3306 [email protected] sleep 60 >> logfile');

它永遠運行,然後導致從服務器沒有響應錯誤。

我拉我的頭髮。幫幫我!!!!!

回答

1

也許試試這個?:

echo $ssh->exec('echo "select * from table where company_id=\"15\";" | mysql -u username -password=password database'); 

正如它可能在等待,要輸入密碼。

+0

@peter stdin:不是tty 錯誤1045(28000):拒絕用戶'用戶'@'localhost'的訪問(使用密碼:是) – Rahi 2011-05-20 13:41:26

+0

我無法幫助拒絕Access,但對於「 stdin:不是tty「...嘗試在$ ssh-> exec()之前調用'$ ssh-> enablePTY()'' – neubert 2013-08-20 04:22:50