MySQL配额的PHP脚本

2023-08-11 14:16:19 4544

一个目录就是一个数据库。所以可以通过检测目录的大小得到数据库大小,判断容量是否超过限额,如果超过限额就取消该用户的insert,create,update,create temp table权限,允许select,delete等其他权限。那么就可以通过脚本来实现限制mysql的配额,现在就介绍一下脚本的使用方法

 

1.创建quotadb并建立表quota

create database quotadb;

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.添加要限定的数据库和限额的大小

INSERT INTO `quota` (`Db`, `Limit`, `Exceeded`)VALUES (your_database_name, the_database_Size, 'N');


3.新建用户并分配数据库权限

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_priv和Create_priv

也会被置为'N'


5.重新载入权限

flush privileges<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题: