![设置与共享主机类似的每个帐户的 MySQL 限制](https://linux22.com/image/795472/%E8%AE%BE%E7%BD%AE%E4%B8%8E%E5%85%B1%E4%BA%AB%E4%B8%BB%E6%9C%BA%E7%B1%BB%E4%BC%BC%E7%9A%84%E6%AF%8F%E4%B8%AA%E5%B8%90%E6%88%B7%E7%9A%84%20MySQL%20%E9%99%90%E5%88%B6.png)
以前也曾有人问过类似的问题,例如这个,但到目前为止我看到的所有答案都没有真正告诉我我想要的是什么。
我需要为内部开发和测试目的设置一个 Linux 机器,这将需要多个用户帐户。每个帐户的 MySQL 数据库占用的空间量必须受到限制,因为测试将要试图破坏事物,并希望限制任何造成的损害。
我假设我需要为每个帐户设置一个 MySQL 实例,数据库文件位于该帐户的文件空间内,并使用配额进行限制。这是正确的吗?还是还有其他我忽略的方法?
答案1
你是对的 - MySQL 中没有内置配额支持。
请注意,使用磁盘配额来实现目标时,如果用户空间不足,MySQL 可能会缓冲无法完成的语句。这可能会导致服务器稳定性问题。达到磁盘限制的人也报告了数据完整性问题(尽管这可能不会影响所有表引擎)。
答案2
另一个选择是运行一个 cronjob 或守护程序来监控数据库大小,然后在达到指定大小时撤销插入和更新权限。MySQL Quota Daemon 就是这样一个工具