O próprio MySQL não oferece um sistema de cotas. Usar o método sugerido por James McNellis provavelmente funcionaria, no entanto, ter o InnoDB atingindo um limite de cota rígido de repente certamente não beneficiaria a estabilidade; todos os arquivos de dados ainda estão conectados através do espaço de tabela do sistema, do qual não pode se livrar.
Infelizmente não vejo uma maneira prática de alcançar o que você deseja. Se você está preocupado com o uso de espaço em disco excedendo os limites predefinidos e não quer seguir o caminho dos regulamentos de cotas externas, sugiro ficar com as configurações de espaço de tabela combinadas (ou seja, sem
innodb_file_per_table
) e remova o :autoextend
da configuração. Dessa forma, você ainda não obterá limites específicos de usuário ou esquema, mas pelo menos evitará que o disco seja preenchido com dados, porque o espaço de tabela não crescerá além de seu tamanho inicial nesta configuração. Com
innodb_file_per_table
infelizmente não há como configurar cada um deles para parar em um determinado tamanho máximo. Este é um dos aspectos que o MySQL difere de outros bancos de dados supostamente mais corporativos. Não me entenda mal, porém, usamos o InnoDB com muitos dados em vários milhares de instalações, por isso certamente provou estar pronto para o nível de produção. Apenas os recursos de gerenciamento são um pouco ausentes às vezes.