我希望能够限制每个MySQL数据库的存储大小(例如每个数据库2GB)。这可以实现吗?我找不到特定的MySQL配置来实现这一点。
具体而言,我希望在AWS RDS实例上实现这一点 - 因此与此相关的任何知识都将有所帮助。
如果您能提供任何帮助或指导,将不胜感激。
具体而言,我希望在AWS RDS实例上实现这一点 - 因此与此相关的任何知识都将有所帮助。
如果您能提供任何帮助或指导,将不胜感激。
innodb_file_per_table=0
,则可以为系统表空间设置最大限制,所有表和模式都将填满此空间。你可以通过以下方式在my.cnf中配置最大容量:innodb_data_file_path=ibdata1:12M:autoextend:max:1G
这只是一个例子,它表示ibdata1文件最初创建为12MB,根据需要增长,但不会超过1GB。有关更多信息,请参见https://dev.mysql.com/doc/refman/8.0/en/innodb-init-startup-configuration.html。
即使系统表空间存在潜在限制,这也无法控制每个模式可以使用多少空间。它们都使用相同的表空间。
如果使用innodb_file_per_table=1
,则每个表存储在自己的表空间文件中。没有选项来定义特定表空间的大小。
自MySQL 5.7以来,您还可以创建通用表空间,并将多个表分配给它。例如,您可以选择将特定模式的所有表放入一个通用表空间中。但这也没有语法来定义通用表空间的大小限制。
我在网络上看到一些解决方案,如果模式超过其大小限制,则撤销对其插入/更新权限。但这不是由MySQL强制执行的,这是外部解决方案。