Windows Server 2008 プラットフォームで MySQL Community Server 5.5 と PHP 5.3.3 を使用しています。ユーザーごとのリソース制限、特に DB ユーザーが 1 時間以内に実行するクエリに関連する制限を設定しました。私はこのドキュメントを読みましたが、とても興味深いのですが、いつもうまくいきません。
http://dev.mysql.com/doc/refman/5.5/en/user-resources.html
mysql コマンド ライン ツール (mysql.exe) を介してクエリを実行すると、制限が適切に機能し、1 時間あたりのクエリ制限が 7 の場合、1 時間以内に 7 つのクエリを実行すると、次のエラーが表示されます。
エラー 1226 (42000): ユーザー 'user' が 'max_questions' リソースを超えました (現在の値: 7)
これは上記の望ましい動作です。
PHP経由でクエリを実行すると(DBへの接続に使用したユーザーは上記と同じです)、クエリの制限は機能しません.phpを介した同じユーザーは、必要なすべてのクエリを無制限に実行できます。そして、mysql コマンド ラインに戻ると、カウンターがリセットされているように見えます (1 時間が経過していなくても)。1 時間以内に 7 つのクエリを実行することもできます。これは望ましい動作ではないと思います。PHP がカウンターをリセットし、クエリ制限をトリガーしていないようです。
PS: 「ユーザー」はSELECT,INSERT,UPDATE,DELETE
特権のみを所有し、PHP コードにはFLUSH USER_RESOURCES
、ユーザー「ユーザー」が実行できなかった SQL コードはありません (RELOAD
特権がユーザーに割り当てられていないため)。
前もって感謝します