文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>MYSQL中限制资源的使用

MYSQL中限制资源的使用

时间:2008-01-03  来源:carlfeng

MYSQL中限制资源的使用

今天看到手册,不小心看到了这里,自己做了几个例子。

从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语句来生成。

1、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)

2、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)

3、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)

4、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)


5、要想将所有账户当前的记数重设为零,可以执行FLUSH USER_RESOURCES语句。还可以通过重载授权表来重设记数。

mysql> flush user_resources;

Query OK, 0 rows affected (0.00 sec)

相关阅读 更多 +
排行榜 更多 +
找茬脑洞的世界安卓版

找茬脑洞的世界安卓版

休闲益智 下载
滑板英雄跑酷2手游

滑板英雄跑酷2手游

休闲益智 下载
披萨对对看下载

披萨对对看下载

休闲益智 下载