[url]http://projects.marsching.org/mysql_quota/[/url]
这是另一个限制MySQL容量的php脚本。
两个的实现方式都大同小异,都是通过对其权限进行设定,当容量大于数据库所限定的大小时,就取消其插入和创建的权限。下午对它进行测试,还是可以实现这个目的的。只是在更新完权限之后,这个脚本没有“flush privileges”,这样即使权限改变,用户还是可以对其进行插入和创建的。这就要通过手工的方式去更新,这也是这个脚本需要改进的地方。
现在就介绍这个脚本的使用方法:
1.
创建quotadb并建立表quota
mysql>create database quotadb;
mysql>CREATE TABLE `Quota` (`Db` CHAR(64) NOT NULL,`Limit` BIGINT NOT NULL,`Exceeded` ENUM('Y','N')DEFAULT 'N' NOT NULL, PRIMARY KEY (`Db`), UNIQUE `Db`));
2.添加要限定的数据库和限额的大小
mysql>INSERT INTO `quota` (`Db`, `Limit`, `Exceeded`)VALUES (your_database_name, the_database_Size, 'N');
3.新建用户并分配数据库权限
mysql>grant select,update,insert,delete,create,drop on database.* to user@'host' indetified by 'password'
4.运行mysql_quota.php脚本,如果数据库容量大于quotadb限定的容量,quota表中的Exceeded就会被置为'N',且数据库mysql中的表db中的Insert_privCreate_priv也会被置为'N'
5.重新载入权限
mysql>flush privileges<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />