[英]SSH directly into MySQL server
我有一個運行有mysql數據庫的遠程網絡服務器。 現在,我使用SSH進行任何服務器端管理,而且我經常訪問MySQL。 我想知道是否有可能制作一個可以ssh進入服務器的腳本,並且如果在命令行上使用“ -sql”(可能會更改)運行,那么它將進入mysql。
我到目前為止所做的:
#!/bin/bash
if [ "$1" == "-l" ]; then
ssh user@192.168.0.101 //local address for privacy;
mysql -u root -p;
else
ssh user@192.168.0.101
fi
這將導致SSH會話,並且在它結束時,我的計算機將嘗試在本地計算機上創建mysql連接。
#!/bin/bash
if [ "$1" == "-l" ]; then
ssh user@192.168.0.101 'mysql -u root -p';
else
ssh user@192.168.0.101
fi
這導致輸入密碼,然后什么也沒有。 我假設它是因為將ssh與命令配合使用會期望響應,然后關閉連接。
有沒有辦法做到這一點,我意識到這並不重要,但是與它一起玩很有趣
提前致謝
如果輸入的是終端,則mysql
命令僅以交互方式執行。 當使用命令參數運行ssh
時,通常不會在服務器上分配偽tty。 因此, mysql
只處理其標准輸入而不會顯示提示。
使用-t
選項強制執行此操作:
ssh -t user@192.168.0.101 'mysql -u root -p'
您可能要考慮解決這種訪問問題的一個方法是使用ssh中的隧道工具:
ssh -l user -L 33306:192.168.0.101:3306 192.168.0.101
或者可能
ssh -l user -L 33306:127.0.0.1:3306 192.168.0.101
這將在本地計算機(33306)上創建一個端口,該端口通過隧道連接到遠程計算機上的mysql端口(3306)。
然后在本地計算機上運行mysql的本地副本:
mysql --port=33306 -u root -p
它應該通過隧道端口連接到您的數據庫。
嘗試這樣。 使用命令輸入mysql密碼。 因此,您不必輸入密碼。
ssh user@192.168.0.101 'mysql --user="root" --password="password" --database="database" --execute="My Query;"'
我也建議您設置基於密鑰的ssh身份驗證。 因此,您也可以避免每次都鍵入ssh密碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.