我正在使用Amazon EC2实例和MariadB数据库。
假设我有20GB数据库存储和10个用户帐户。我希望每个帐户都有2GB数据库存储。
我该如何实现?
我认为没有任何内置方法来监视或报告用户的磁盘使用。
如果将每个用户限制在一个数据库中:
GRANT ALL PRIVILEGES ON user1_db TO user1@'...' ...;
并定期运行一个查询
SELECT table_schema AS db_name,
SUM(data_length+index_length) / 1073741824 DB_Gigabyte
FROM information_schema.tables
GROUP BY table_schema;
获取每个数据库中有多少GB的列表。从那里开始,您需要与任何饮食中的用户打交道。
注意:由于临时表,自由空间等,用户很有可能暂时超过限制。同样,在某些情况下,插入一排将通过兆字节或更多的情况增长。因此,要宽容,否则您和用户都会对正在发生的事情感到困惑。
确保拥有innodb_file_per_table = ON
,以便您可以更轻松地与肿的用户打交道。