将特定的存储空间分配给MariadB用户



我正在使用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,以便您可以更轻松地与肿的用户打交道。

最新更新