今天看到手冊,不當心看到了這裏,本身作了幾個例子。
從MYSQL4.x開始,MYSQL就增長了以每一個用戶爲基礎,限制MYSQL服務器的資源利用。
本身查看MYSQL.USER 表就會發現裏面最後幾個字段:
mysql> select version();
+------------------------------------+
| version() |
+------------------------------------+
| 5.1.17-beta-community-nt-debug-log |
+------------------------------------+
1 row in set (0.00 sec)
*************************** 36. row ***************************
Field: max_questions
Type: int(11) unsigned
Null: NO
Key:
Default: 0
Extra:
*************************** 37. row ***************************
Field: max_updates
Type: int(11) unsigned
Null: NO
Key:
Default: 0
Extra:
*************************** 38. row ***************************
Field: max_connections
Type: int(11) unsigned
Null: NO
Key:
Default: 0
Extra:
*************************** 39. row ***************************
Field: max_user_connections
Type: int(11) unsigned
Null: NO
Key:
Default: 0
Extra:
39 rows in set (0.00 sec)
這三個字段能夠用GRANT語句來生成。
一、MAX_QUERIES_PER_HOUR 用來限制用戶每小時運行的查詢數量
mysql> grant select on *.* to 'cu_blog'@'localhost' identified by '123456' with
max_queries_per_hour 5;
Query OK, 0 rows affected (0.00 sec)
...
mysql> select user();
+-------------------+
| user() |
+-------------------+
| cu_blog@localhost |
+-------------------+
1 row in set (0.00 sec)
當到了指定的次數時就會報錯
mysql> select user();
ERROR 1226 (42000): User 'cu_blog' has exceeded the 'max_questions' resource (cu
rrent value: 5)
二、MAX_UPDATES_PER_HOUR 用來限制用戶每小時的修改數據庫數據的數量。
mysql> grant select on *.* to 'cu_blog'@'localhost' with max_updates_per_hour 5;
Query OK, 0 rows affected (0.00 sec)
三、MAX_CONNECTIONS_PER_HOUR用來控制用戶每小時打開新鏈接的數量。
mysql> grant select on *.* to 'cu_blog'@'localhost' with max_connections_per_hou
r 5;
Query OK, 0 rows affected (0.00 sec)
四、MAX_USER_CONNECTIONS 限制有多少用戶鏈接MYSQL服務器。
mysql> grant select on *.* to 'cu_blog'@'localhost' with max_user_connections 2;
Query OK, 0 rows affected (0.00 sec)
五、要想將全部帳戶當前的記數重設爲零,能夠執行FLUSH USER_RESOURCES語句。還能夠經過重載受權表來重設記數。
mysql> flush user_resources;
Query OK, 0 rows affected (0.00 sec)