sql >> データベース >  >> RDS >> Mysql

SSHトンネルを介したMySQL接続

    ここには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にアクセスできないため、関連するマニュアルページにリンクできません。



    1. ユーザーpostgresは、すべてのCPUを100%使用するプロセスを起動します

    2. 1985-02-07T00:00:00.000Z(ISO8601)をOracleで日付値に変換するにはどうすればよいですか?

    3. CASEおよびGROUPBYを使用したピボットの動的な代替手段

    4. varchar2で宣言されている有効な日付を確認してください