[英]unable to run SQL queries in MySQL using phpseclib
我可以成功連接到服務器並登錄到MySQL數據庫。 但是現在我需要在數據庫表上運行一些SQL查詢,但是遇到錯誤:ERROR 1045(28000):用戶'root'@'localhost'的訪問被拒絕(使用密碼:是)。
我不確定SQL查詢的語法是否正確? 另外,我每次需要運行SQL查詢時都需要連接到服務器嗎? 請提供一些建議。 謝謝。
/* SUCCESS */
$ssh = new Net_SSH2('XX.XXX.XX.XXX');
if (!$ssh->login('root', 'password')) {
exit('Login Failed');
}
echo $ssh->exec('pwd');
/* SUCCESS */
if (!$ssh->exec('mysql -h localhost -u root -pDataBaseName \r\n')){
exit('Login to MySQL Failed');
}else{
echo "Login to MySQL Success";
}
/* ERROR - facing error in this code*/
echo $ssh->exec('mysql -h localhost -u root -pDataBaseName -e "SELECT * FROM cmu_util_all"');
有趣地使用php和mysql(肯定是非常規的)。 有一種更簡單的方法:在PDO上閱讀: http : //php.net/manual/en/ref.pdo-mysql.php關於當前的登錄問題:
-pDataBaseName
應該:
-pPassword DataBaseName
這不是問題的答案-已經給出了( -p
)。 但是,對於評論太久了,讓我詳細介紹一下性能問題:
每次腳本運行時,都要連接一個新的SSH隧道,這非常繁瑣-從CPU角度考慮,但在所有延遲方面則最重要。
因此,我建議您嘗試將-L
參數用於SSH並運行系統范圍的ssh -L 127.0.0.1:3306:127.0.0.1:3306 root@...
,然后使用標准的MySQL工具(例如PDO)連接到已經在127.0.0.1
隧道傳輸MySQL。
注意:您必須使用127.0.0.1
,而不是localhost
,因為這將嘗試使用unix套接字連接,這顯然不起作用
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.