こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

突然MySQLへアクセス出来なくなりました

いつもお世話になっております。
昨日の夜までアクセスできていたMySQLサーバに、本日の朝からアクセスできなくなっております。
PHPのエラー文は下記の様になっております。
『Warning: mysql_connect(): Host '***.***.***.**' is blocked because of many connection errors. Unblock with 'mysqladmin flush-hosts'』
これを翻訳ソフトで直訳すると、
『多くの接続エラーのため、ブロックされる。『mysqladmin紅潮-ホスト』で点数の多い札を出しなさい』
という意味のわからない内容になってしまい、原因がさっぱりわかりません。このエラーの意味をどなたか教えてください!お願いします!!

投稿日時 - 2007-05-12 11:31:27

QNo.2993400

すぐに回答ほしいです

質問者が選んだベストアンサー

説明不足でした。

Linux(OS)のユーザ、MySQL(アプリケーション)のユーザがそれぞれあり、phpMyAdminで特権表示されているのは、MySQLのユーザの権限です。
しかるべきLinuxのユーザでログインし(・・・にスイッチし)、
しかるべきMySQLのユーザで、MySQLにコマンドを実行する必要
があります。具体的には、
Linuxのユーザ=mysql
MySQLのRELOAD権限を持つユーザ=root
とすれば、

# su - mysql
$ mysqladmin -u root -p flush-hosts
<ここでrootのパスワードが求められるので入力すると実行される>

というようになります。

投稿日時 - 2007-05-12 15:04:22

お礼

ありがとうございます!!できました!!!
OSのユーザとMySQLのユーザ、この2点が存在し、コマンドラインから実行するには、両方のアカウント情報が必要なんですね。
いままでphpMyAdminしか使った事が無かった為、コマンドラインでのMySQLの取り扱い方がまるで分りませんでした。
本当に助かりました!これで、これから同じ現象が発生してもすぐ対応できます!
本当にありがとうございます!!

投稿日時 - 2007-05-12 15:39:00

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.2

MySQL5だと参考URLに情報がありました。
デフォルトで、同じホストから10回アクセスに失敗するとブロックされる?ようです。
mysqladmin flush-hosts は、おそらくrootでは実行できないのでは。mysqldを実行しているユーザにスイッチして、コマンドを実行できませんでしょうか。
# ps -aux | grep mysqld
とかで、mysqldを起動しているユーザをしらべて、たとえばmysqlユーザで起動していれば、
# su - mysql
$ mysqladmin flush-hosts
とトライしてみては?
ただ、アクセスした覚えがなければ、総当りアタックを仕掛けられた可能性もありますので、あとで調査が必要です。

参考URL:http://dev.mysql.com/doc/refman/5.0/en/blocked-host.html

投稿日時 - 2007-05-12 13:54:16

補足

ありがとうございます。
早速mysqlユーザに切替えて実行してみました。
しかし、別のエラーで実行されませんでした。
エラーコードは
『Access denied. You need the RELOAD privilege for this operation』
という内容で、このアカウントにはリロード特権がないというようなメッセージでした。
しかし、phpMyAdminで特権をチェックすると、このアカウントにはreload特権が含まれております。
なんで出来ないのでしょうか?これはサーバの設定の問題なのでしょうか??
取り急ぎ、サーバの再起動をする事でアクセスできない問題は解消しました。しかし、今後も同じ事が起こりうるので、できれば、この問題も解消したいです。

投稿日時 - 2007-05-12 14:15:48

ANo.1

このエラーは環境・状況に左右されるものです。

ファイアウォール関連とか、
ブラウザをインストールしたとか、
ウィルスとか、
サーバ攻撃など。

#1の答えも読解力が足りない気がします。
英訳せよ、という問いだと思いましたか?

投稿日時 - 2007-05-12 11:50:42

補足

恐らくサーバの攻撃が関係しているようです。
ネットで調べてみたところ、コマンドラインから
mysqladmin flush-hosts
を実行する必要があるようです。そこまでは突き止めたのですが、SSHでroot権限にてサーバにアクセスしてもmysqladminが実行できません。
私もサーバ会社の人間ではなく、専有サーバの利用者なので、私のアカウントも完全なるroot権限ではないようなのです。
本当に困った【><。】

投稿日時 - 2007-05-12 12:01:58

あなたにオススメの質問