Red de conocimiento informático - Conocimiento del nombre de dominio - ¿Cómo limitar el tamaño de los archivos de la base de datos MySQL?

¿Cómo limitar el tamaño de los archivos de la base de datos MySQL?

Primero calcule el tamaño de cada base de datos en el directorio de la base de datos mysql y luego compárelo con el límite de capacidad. Si se excede el límite de capacidad, se revoca el permiso de inserción de la base de datos, de modo que la base de datos del usuario no puede crecer.

El script es el siguiente:

####begin srcript --author pat.dong####

## Si el usuario excede el espacio, el archivo se enviará al buzón del usuario como contenido de correo electrónico

sizeover="/etc/sizeover.log"

dblist="/tmp/dblist"

mysql_path =/usr/ local/mysql/bin

# Nombre de la base de datos de salida

$mysql_path/mysql -uroot -e "show bases de datos"gt;$ dblist

# Eliminar la primera columna "base de datos"

ed 1d $dblist gt;

cat /tmp/tmp123456 gt;$dblist

# Ruta de datos de la base de datos

DB_ PATH="/www/mysql"

# El espacio máximo disponible para los usuarios, en kb

LIMIT_SIZE=2048

# El archivo mysql_quota registra cada La cuota para cada base de datos es la siguiente:

####el archivo mysql_quota comienza ######

cn-ce 10000

cnmr 2048

fulin 2048

ishunde 2048

jljust 15000

####end mysql_quota#####

# mysql No es necesario cambiar esta base de datos

cat $dblist mientras se lee b; = "mysql" ] amp; '};

LIMIT_SIZE=`cuota de gato |grep $b|awk { 'imprimir $2'}`

LIMIT_SIZE=`cuota de gato |grep $b|awk { 'imprimir $2 '}`

echo "El tamaño del usuario es "$SIZE", el tamaño límite es "$LIMIT_SIZE

if [ $SIZE -gt $LIMIT_SIZE ]

luego

# mysql -uroot - prootpwd -n -e "revocar inserción en $b.* desde $b@hostname"

# sendmail $b@mail.com lt; sizeover

echo $b" está por encima de la cuota";

else

# mysql -uroot -prootpwd -n -e "conceder inserción en $b.* a $b@ hostname"

echo $b" no supera la cuota";

fi

# mysql -uroot -prootpwd -n -e "flush privil

eges"

fi

hecho

####finalizar script#####