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

AmazonRDSでmysqladminflush-hostsを実行する方法

    場合によっては、Amazon RDS(または他の場所)でMySQLを実行しているときに、FLUSHを実行する必要があります。 すべてのhost MySQLからのレコード。通常、これはエラー"Host 'host_name' is blocked"の場合に必要です。 発生します。これにより、その特定のhost_nameからの追加の接続が防止されます。 。

    host_name blocked max_connect_errorsの数が発生するとエラーが発生します MySQLの構成で指定された値を超えています。これは、特定のホストが何度も接続に失敗したことを意味します。これは、適切な資格情報を持たないホスト/ユーザーからの不当な攻撃を防ぐためにMySQLによって実施されているセキュリティ対策ですが、誤って発生する可能性があり、ホストをフラッシュすることで解決する必要がある場合があります。

    フラッシングホストは何をしますか?

    適切な権限を持つMySQLユーザーを使用して、FLUSHを実行します ステートメント、MySQLは、渡されたoptionsに応じて、フラッシュテーブル、ロック、および内部キャッシュシステムをクリアできます。 。 FLUSH HOSTS;の場合 、MySQLはホストキャッシュを空にします。これは、事実上、現在または最近接続されたホストのMySQLの記録がリセットされ、そのホストからのさらなる接続を可能にすることを意味します。

    FLUSHHOSTを直接実行する

    MySQLへの接続が完全に妨げられている可能性がありますが、場合によっては、システムがプライマリまたはrootのみが使用できる接続スロットを「保存」する可能性があります。 アカウント。

    Amazon RDSの場合 、このユーザー名は通常、デフォルトまたは「マスター」として管理コンソールに表示されます。このプライマリユーザー名でMySQLサーバーに接続してみてください。

    接続できる場合、ホストのフラッシュはFLUSH HOSTS;を実行するのと同じくらい簡単です。 MySQLステートメント:

    FLUSH HOSTS;
    

    これで、host_name blockedをクリアする必要があります エラーが発生し、標準のMySQLアカウントに接続できるようになります。

    MySQLAdminを使用してホストをリモートでフラッシュする

    マスターアカウントとしてMySQLに接続できず、引き続きblockedを受信して​​いる場合 エラーが発生した場合、次のオプションはサーバーにリモートで接続してflushを実行することです mysqladminを使用したコマンド ツール。

    これを行うには、別のに接続する必要があります エラーを生成しているRDSサーバーにアクセスできるEC2インスタンスまたはサーバー。

    接続したら、<>の間に適切なオプションを置き換えて次のコマンドを実行します :

    $ mysqladmin -h <RDS_ENDPOINT_URL> -P <PORT> -u <USER> -p flush-hosts
    

    成功した場合、flush-hosts コマンドは期待どおりに実行され、通常どおりMySQLに接続できるようになります。

    RDSインスタンスの再起動

    他のすべてが失敗した場合の最後のオプションは、RDS管理コントロールパネルにログインし、エラーが発生しているRDSインスタンスを手動で再起動することです。これにより、hosts cacheが効果的にリセットされます 実稼働環境では理想的ではないかもしれませんが、あなたにとっては。


    1. Oracle Cloud:自律型トランザクション処理(ATP)データベースの作成

    2. phpを使用してMySqlデータベースにBlobを挿入します

    3. アクセスソースコード管理にOASIS-SVNとgitを使用する

    4. データベース単体テストで依存関係とデータを分離する技術