Настройка MySQL для каждой учетной записи аналогична ограничениям на хостинге
Подобные вопросы задавались и раньше, например, этот, но ни один из ответов, которые я видел до сих пор, действительно не говорит мне, чего я добиваюсь.
У меня есть необходимость настроить Linux-бокс для внутренних целей разработки и тестирования, которые потребуют нескольких учетных записей пользователей. Каждая учетная запись должна быть ограничена в объеме, занимаемом их базами данных MySQL, поскольку тестирование попытается сломать вещи, и я хочу ограничить любой нанесенный ущерб.
Я предполагаю, что мне нужно будет настроить один экземпляр MySQL для каждой учетной записи, с файлами базы данных в файловом пространстве этой учетной записи, и ограничить это квотами. Это правильно или есть другой способ, который я упустил из виду?
2 ответа
Вы правы - в MySQL нет встроенной поддержки квот.
Помните, что при использовании дисковых квот для достижения вашей цели, когда у пользователя заканчивается свободное место, MySQL может буферизовать операторы, которые не могут быть выполнены. Это может вызвать проблемы со стабильностью сервера. Люди, достигшие лимита диска, также сообщали о проблемах целостности данных (хотя это, вероятно, не влияет на все механизмы таблиц).
Другой вариант - запустить cronjob или демон, который следит за размерами базы данных, а затем отменяет привилегии вставки и обновления, когда они достигают указанного размера. Одним из таких инструментов является MySQL Quota Daemon