MySQL ограничивает дисковое пространство пользователя табличным пространством

MySQL ограничивает дисковое пространство пользователя табличным пространством

Я пытаюсь выяснить, как установить ограничение на дисковое пространство для пользователей в MySQL. Например, я хочу, чтобы администратор выделил 1 ГБ дискового пространства для пользователя A, если A израсходует 1 ГБ дискового пространства, MySQL не позволит A вставить что-либо. Я погуглил эту проблему, и кто-то упомянул, что ее можно решить с помощью табличного пространства, но не сказал, как. Любая помощь будет оценена по достоинству.

решение1

Насколько мне известно, в MySQL нет встроенной поддержки дисковых квот (иограничение использования диска для базы данныхс жесткой квотой звучит как рецепт катастрофы).

Вы можете создать отчет об использовании диска с помощью утилиты MySQL disk usage. https://dev.mysql.com/doc/mysql-utilities/1.5/en/mysqldiskusage.html

решение2

Вы можете поместить mysql/datadir в домашнюю папку каждого пользователя, например
/home/user1 или DATADIR="/var/www/${VHOST}/mysql/datadir", а затем установить ограничение на дисковое пространство для каждого пользователя.

Также, таким образом, у каждого пользователя будет свой файл sock и pid. Я использую это следующим образом:

mysqld --skip-ndbcluster --user=mysql --skip-grant-tables --basedir=/usr --datadir=${DATADIR} --skip-innodb --skip-bdb --skip-networking --max_allowed_packet=8M --net_buffer_length=16K --socket=${sockfile} --pid-file=${pidfile} &>/dev/null

Связанный контент