怎样限制MySQL数据库文件的大小?

怎样限制MySQL数据库文件的大小?,第1张

,先计算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 bdo

if [ $b != "mysql" ] &&[ -d $DB_PATH/$b ]

then

SIZE=`du $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 $b@mail.com <$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#####

首次运行网站管理助手,会d出“系统配置”窗口,一般情况下只需要检查站点开设目录是否存在,如果不存在,

请先手工建立目录。强烈建议保持我司的默认配置环境,不要修改mysql、php的安装路径,建议使用我司

推荐的D:\wwwroot目录作为网站目录,出现问题时方便核查原因。

创建站点

软件界面

点击“创建站点”,

站点名称:填写一个FTP账号,可以是英文(建议小写)和数字的组合

FTP密码:建议保持默认或自己设定一个容易记住但比较复杂的密码,切勿用FTP账号做密码。

FTP空间配额:建议保持默认设置

FTP个目录:建议保持默认设置

站点所属池:建议保持默认设置

脚本权限:如果是asp程序,请将php_isapi修改为“无”;

如果是PHP程序,请将ASP修改为“无”;

如果是ASP.NET程序,请将ASP修改为“无”,请将PHP_ISAPI修改为“无”,请将“不使用asp.net”修改为

您需要的版本,如asp.net2.0 。

如果您对脚本权限概念不熟悉,请保持默认设置。

伪静态组件:PHP程序请在下拉菜单选择对应规则,如果没有找到对应的,请选择自定义,保存配置后进入您站点的

others目录下,修改httpd.conf中的规则即可。ASP和ASP.NET程序建议保持默认设置(不使用)

绑定域名:可以填写多个域名,用英文逗号隔开。

进程池:建议保持默认设置

备注:可以备注站点名称,或者装的什么程序,比如discuz,方便管理。也可以保持默认

右侧列表(连接数、最大CPU、带宽、内存等)一般保持默认,如果是ASP或者ASP.NET程序,可以取消“创建MYSQL”

的勾,不创建mysql。如果需要创建mysql,创建完成后mysql用户名和mysql数据库名都是FTP账号,mysql密码默认

是FTP密码。

最后点“确认创建”就新建完一个站点了。

提示框提示“MYSQL创建结果:Ture”表示mysql创建成功,若mysql创建失败,请检查mysql服务是否正常启动或系统

设置中mysql的路径是否正确。

*** 作: 、创建/data目录mkdir/datachmod /data(要给这个目录至少要附加读写权限) 、把mariadb服务停掉:systemctlstopmariadb.service 、把/var/lib/mysql整个目录复制到/datacp-r/var/lib/mysql/*/data/这样就把MySQL的数据文档复制到了/data下 、编辑mariadb的配置文档/etc/my.cnf在[client]下添加:把原来的socket=/var/lib/mysql/mysql.sock,前边加#注释掉,添加socket=/data/mysql.sock(以防有问题再改回来)。在[mysqld]下添加:把原来的socket=/var/lib/mysql/mysql.sock,前边加#注释掉,添加socket=/data/mysql.sock(以防有问题再改回来)。datadir=/datal(这行没有,需要自己加上)保存后退出。 、chown-Rmysql:mysql/data/mysql 、重新启动mariadb服务systemctlstartmariadb.service。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7486087.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-06
下一篇 2023-04-06

发表评论

登录后才能评论

评论列表(0条)

保存