リモートサーバーに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サーバーの設定は変更できないことに注意してください。
助けてくれてありがとう!
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:〜$