當前位置:首頁 » 操作系統 » 資料庫配額

資料庫配額

發布時間: 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#####

熱點內容
安卓軟體為什麼經常自啟動 發布:2025-05-14 04:38:17 瀏覽:158
譚浩強c語言第三版課後答案 發布:2025-05-14 04:37:31 瀏覽:59
san存儲和nas存儲 發布:2025-05-14 04:34:44 瀏覽:152
幽靈戰士3什麼配置 發布:2025-05-14 04:33:53 瀏覽:114
安卓的虛擬機哪個好用 發布:2025-05-14 04:32:34 瀏覽:871
宿遷存儲式化工設備 發布:2025-05-14 04:32:33 瀏覽:54
s7200編程s7200 發布:2025-05-14 04:28:32 瀏覽:413
安卓定製版蘋果手機是什麼意思 發布:2025-05-14 04:26:27 瀏覽:379
如何搭建php環境虛擬伺服器免費 發布:2025-05-14 04:25:37 瀏覽:103
相冊加密怎麼看 發布:2025-05-14 04:24:53 瀏覽:573