当前位置:首页 » 操作系统 » 数据库配额

数据库配额

发布时间: 2024-01-29 08:00:09

Ⅰ 怎样限制Mysql数据库文件的大小

,先计算mysql数据库目录下的每个数据库大小,然后与容量限制进行比较,如果超过容量,则revoke该数据库的insert权限,让用户数据库不能再增长。
脚本如下:
###begin srcript --author pat.dong####
# 如果用户空间超过,此文件将会作为邮件的内容发送到用户信箱
sizeover="/etc/sizeover.log"
dblist="/tmp/dblist"
mysql_path=/usr/local/mysql/bin
# 将数据库名称输出
$mysql_path/mysql -uroot -e "show databases">$dblist
# 删除第一栏 "Database"
sed 1d $dblist >/tmp/tmp123456
cat /tmp/tmp123456 >$dblist
# 数据库的数据路径
DB_PATH="/www/mysql"
# 用户所能使用的最大空间 单位 kb
LIMIT_SIZE=2048
#mysql_quota文件记录每个数据库的配额,内容如下:
####mysql_quota file begin######
cn-ce 10000
cnmr 2048
fulin 2048
ishunde 2048
jljust 15000
####end mysql_quota#####
# mysql 这个数据库不必改
cat $dblist | while read b; do
if [ $b != "mysql" ] && [ -d $DB_PATH/$b ]
then
SIZE=` $DB_PATH/$b -sk|awk {'print $1'};`
LIMIT_SIZE=`cat quota |grep $b|awk {'print $2'}`
echo "User Size is "$SIZE",Limt Size is "$LIMIT_SIZE;
if [ $SIZE -gt $LIMIT_SIZE ]
then
# mysql -uroot -prootpwd -n -e "revoke insert on $b.* from $b@hostname"
# sendmail [email protected] < $sizeover
echo $b" is over quota";
else
# mysql -uroot -prootpwd -n -e "grant insert on $b.* to $b@hostname"
echo $b" is no over quota";
fi
# mysql -uroot -prootpwd -n -e "flush privileges"
fi
done
####end script#####

热点内容
c语言中怎么赋值 发布:2025-09-19 01:17:43 浏览:956
公网服务器如何共享ip 发布:2025-09-19 01:03:43 浏览:237
存储器已几乎满 发布:2025-09-19 00:36:28 浏览:884
安卓系统在哪里输入网址 发布:2025-09-19 00:35:46 浏览:173
armlinuxgccgcc 发布:2025-09-19 00:35:37 浏览:425
wincachephp 发布:2025-09-19 00:30:28 浏览:863
如何给文件夹设置图标 发布:2025-09-19 00:06:09 浏览:750
火车头密码指纹锁多少钱 发布:2025-09-18 23:16:55 浏览:139
雪佛兰最高配置长什么样 发布:2025-09-18 23:16:54 浏览:173
网络通话源码 发布:2025-09-18 23:07:23 浏览:92