簡體   English   中英

無法使用phpseclib在MySQL中運行SQL查詢

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM