SSHトンネルを使用して、MySQL GUI(重要な場合はSequel Pro)からMySQLに接続しようとしています。ただし、次のエラー(mysql.log)が発生し続けます。
[注] dbへの接続98を中止しました: 'example' user: 'example_user' Host: 'localhost'(通信パケットの読み取り中にエラーが発生しました)
私の接続設定は次のようになります。
問題なくSSHに接続できます。 SSH内からMySQLに接続することもできます(mysql -u example_user -p -h 127.0.0.1
を使用)
ただし、トンネリングは機能していません。 sshd_configにAllowTcpForwarding yes
があります。 MySQL設定にはbind-address = 127.0.0.1
があります。
サーバーで16.04 LTSおよびMySQL Community Editionを使用しています。
私は何が間違っているのですか?私がこの問題を見たのはこれが初めてです。
例として、ワークステーションでコマンドを使用して複数のトンネルを作成できます。
ssh -L 10080:127.0.0.1:80 -L 10006:127.0.0.1:3306 user@server
127.0.0.1
-サーバーから接続するIPアドレストンネルの宛先、80
および3306
宛先ポート、10080
および10006
-ローカルワークステーションのポート。これにより、サーバーのローカルホストインターフェイスを介してMySqlサーバーおよびHttpサーバーに接続できるようになります。ワークステーションでコマンドmysql -p -u db_user -P 10006 -h 127.0.0.1 database_name
を実行して、MySqlサーバーに接続します。 127.0.0.1からのみ許可されているPhpMyAdminWebインターフェイスに接続できます。これを行うには、ブラウザにアドレスhttp://127.0.0.1:10080
を入力するだけです。
私も同様の問題を抱えていましたが、これにより answer 、解決策は「any」ユーザーを削除することでした。
MySQLは、ローカルホスト経由で接続しているユーザーと127.0.0.1の違いを認識しているようです。これは、正しく理解していれば問題の一部です。