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

Google ComputeEngineVMでMySQLにリモート接続する

    問題の解決策を見つけました

    道を教えてくれた@Slavaに特に感謝します。結局のところ、それはiptablesでした。

    そのため、リモートで接続しようとすると「MySQL接続が拒否されました」というメッセージが表示され続けたため、TCP接続ログを表示する方法を検索し、tcpdumpを見つけました。 コマンド。

    sudo tcpdump port 3306 -vvv -nを実行する リモートで接続しようとするたびに、次の出力が表示されました。

    tcpdumpのマニュアルページを検索したところ、RはTCP RST(RESET)フラグを意味していることがわかりました。

    少し検索して、この質問 そして、その受け入れられた答えは、@Slavaが最初のコメント以来提案したIPTABLESに再び私を導きました。

    そのとき、よく調べて、私のINPUT ACCEPT tcp:3306がREJECT TCPreject-with tcp-resetルールの後に定義されているので、ログが表示されていることがわかりました。

    この後、tcp:3306を受け入れるルールを削除し、tcpルールを拒否して出来上がりの前に追加しました!

    iptables -D INPUT -p tcp -m tcp --dport 3306 -j ACCEPT
    iptables -I INPUT {line number from the first reject tcp rule} -p tcp -m tcp --dport 3306 -j ACCEPT
    

    IPTABLESは次のようになり、最終的にMySQLにリモートで接続できます:

    行番号付きのiptablesを一覧表示するには、次のように入力します。

    sudo iptables -nL --line-numbers
    

    最終的な考え:

    • これは、セキュリティ問題のためにリモート接続を行っている場所から送信元IPアドレスをホワイトリストに登録することで改善できます。


    1. MariaDBでのTRIM()のしくみ

    2. その年の各月の第2土曜日を見つけるためにクエリを実行します

    3. MySQLサーバーまたはPHPで多くの結果をより速くランダム化

    4. MySQLからランダムな行を選択します(確率付き)