ここには3つの問題があります。
1-SSHトンネルについては今のところ忘れてください
MySQLを複数の特定のIPにバインドすることはできません。最初のbind-address
句は2番目の句によって上書きされます(したがって無視されます)。サーバーは99.99.99.99
のみをリッスンします 。
-h localhost
に接続できる理由 ただし、-h 127.0.0.1
では使用できません 最初の形式では、実際にはTCP / IPを介して接続するのではなく、ローカルソケットを介して接続します。
my.cnf
を見てください socket
の場合 条項。
冗長なbind-address
を1つ削除します 句。 bind-address=0.0.0.0
を使用することをお勧めします 、MySQLデーモンにすべてをリッスンするように指示します ネットワークインターフェイス。
2-SSHトンネルを設定しましょう
エラーの理由ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 0
私には明らかではありません。 疑わしい SSHトンネルは、実際には接続要求を受信した場合にのみ確立されます(この場合、mysql
を実行した場合)。 クライアント)。サーバーは127.0.0.1をリッスンしないため(前の段落を参照)、SSHトンネルを確立できず、接続に失敗し、クライアントはそれをネットワーク障害として解釈します。
3-なぜmysql -v -h localhost -P 9989 -u user userdb -p
失敗する
の出力を投稿してください
[編集:追加したばかりの...OR host LIKE 'localhost'
以下、これはトラブルシューティングの目的に関連する可能性があるため]
mysql > SELECT user, host FROM mysql.user WHERE user LIKE 'user' OR host LIKE 'localhost';
('user'
を置き換えます 、LIKE
の後 条項、必要に応じて実際のユーザー名を使用)
MySQLアクセス制御は、ユーザー名とパスワードの両方をチェックします(user
)と接続の発信元(host
)ユーザーを識別します。ユーザー'user'@'localhost'
を作成していない可能性があります 。
注:現時点では、私の場所からmysql.comにアクセスできないため、関連するマニュアルページにリンクできません。