25

ご覧のとおり、データベース接続に問題があります。それは私にこのエラーを与えます:

...多くの接続エラーのためにブロックされています

いくつかの答えを検索しましたが、問題を解決できませんでした。

必要な情報をすべて提供できたかどうかわかりません。他に必要な情報があれば教えてください。さまざまなコンピューターからのデータベース接続があり、データベースにアクセスするためにユーザーを作成しましたが、それ%はホスト行にあったため、セキュリティ上の問題のために IP アドレスで変更したかったのですが、このエラーが発生したので、今は立ち往生。

4

2 に答える 2

42

MySQL は、不正な形式のクライアントから MySQL を保護するために、接続中にエラーが発生したクライアントをブロックします。

まず、エラーの種類を見つける必要があります....

データディレクトリのMySQLエラーログを確認してください。(通常はhostname.err )

max_connect_errorsまたは、アーキテクチャに依存する最大値を増やすことができます(現在の値とは何ですか?)。32 ビットでは 4294967295。64 ビットでは 18446744073709547520。(マニュアル)

mysql> SET GLOBAL max_connect_errors = 100000000;

ただし、エラーが頻繁に発生する場合、これは本当の解決策ではありません。

FLUSH HOSTSブロックされたホストを今すぐ排除するのに役立ちます。

mysql> FLUSH HOSTS;

外部の mysql コンソールから実行する場合は、mysqladmin コマンドを使用します。

# mysqladmin flush-hosts
于 2013-11-16T06:02:13.427 に答える
7

最初のフラッシュは、次のコマンドを使用してローカル MySQL をホストします。

mysqladmin -u [username] -p flush-hosts
**** [MySQL password]

また

mysqladmin flush-hosts -u [username] -p
**** [MySQL password]

ネットワーク MySQL サーバー:

mysqladmin -h <ENDPOINT URL> -P <PORT> -u <USER> -p flush-hosts
mysqladmin -h [END POINT URL] -P 3306 -u [DB USER] -p flush-hosts 

追加の提案では、my.ini ファイル [Mysql 構成ファイル] を編集することで、ブロックされた多数の接続エラーの問題を永続的に解決できます。

変数を変更 max_connections = 10000;

また

コマンドラインを使用して MySQL にログインします -

mysql -u [username] -p
**** [MySQL password]

以下のコマンドをMySQLウィンドウに入れます

SET GLOBAL max_connect_errors=10000;
set global max_connections = 200;

コマンドを使用して真偽を確認します-

show variables like "max_connections";
show variables like "max_connect_errors";
于 2016-01-18T08:57:15.140 に答える