web-dev-qa-db-ja.com

SSHトンネルを介してMYSQLに接続する

リモートサーバーにSSHでログインし、問題なくログインできます。

私はsshトンネルを介してリモートのmysql dbに接続しようとしていて、問題が発生しています。トンネルを正常に作成しました(Telnetで検証済み)。コマンドでログインしようとすると:

mysql --Host=127.0.0.1 -P 3302 -u fakeuser -p

私は得る

Access denied for user 'fakeuser'@'192.168.100.93'

問題は@ 192.168.100.93です。私はそれをfakeuser @ localhostにする必要があると思います。 SSHトンネルを介して接続しているので、なぜlocalhostに設定されていないのですか?ローカルホストに強制するにはどうすればよいですか? 192.168.100.93はどこから取得していますか?

MySQLサーバーの設定は変更できないことに注意してください。

助けてくれてありがとう!

6
Scott W

Sshトンネルを実行すると、システムとリモートサーバーとの間で暗号化された通信が行われ、リモートで開いているポートが定義済みのポートにバインドされます。

ssh -L 33333:localhost:3306 [email protected]

あなたが言ったようにここで3306はmysqlポート番号です。

localhostの代わりにIPADDRESSを使用します(例:127.0.0.1)

 10.10.0.31への接続が閉じられました。
 linux @ tuxworld:〜$ ssh -fNg -L 33333:localhost:3306 [email protected] 
 [email protected]'sパスワード:
 linux @ tuxworld:〜$ 
 

以下を参照してください。たとえば、私が少し前に行ったように、mysqlユーザーはrootで、sshユーザーもrootです。新しいターミナルを開いた

 linux @ tuxworld:〜$ mysql -u root -h 127.0.0.1 -P 33333 
 MySQLモニターへようこそ。コマンドは;で終わります。または\ g。
 MySQL接続IDは4です。その関連会社。 All rights reserved。
 
 OracleはOracle Corporationおよび/またはその
関連会社の登録商標です。その他の名前は、それぞれの所有者の商標です。
所有者。
 
「help;」と入力します。または '\ h'を使用してください。 「\ c」と入力して、現在の入力ステートメントをクリアします。
 
 mysql> exit 
 Bye 
 linux @ tuxworld:〜$ 
 
 
4
Sharad Chhetri