Настройка MySQL для каждой учетной записи аналогична ограничениям на хостинге

Подобные вопросы задавались и раньше, например, этот, но ни один из ответов, которые я видел до сих пор, действительно не говорит мне, чего я добиваюсь.

У меня есть необходимость настроить Linux-бокс для внутренних целей разработки и тестирования, которые потребуют нескольких учетных записей пользователей. Каждая учетная запись должна быть ограничена в объеме, занимаемом их базами данных MySQL, поскольку тестирование попытается сломать вещи, и я хочу ограничить любой нанесенный ущерб.

Я предполагаю, что мне нужно будет настроить один экземпляр MySQL для каждой учетной записи, с файлами базы данных в файловом пространстве этой учетной записи, и ограничить это квотами. Это правильно или есть другой способ, который я упустил из виду?

2 ответа

Решение

Вы правы - в MySQL нет встроенной поддержки квот.

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

Другой вариант - запустить cronjob или демон, который следит за размерами базы данных, а затем отменяет привилегии вставки и обновления, когда они достигают указанного размера. Одним из таких инструментов является MySQL Quota Daemon

http://lrem.net/software/mysql-quota-daemon.xhtml

Другие вопросы по тегам