簡體   English   中英

SSH直接進入MySQL服務器

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

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