MySQL自体はクォータシステムを提供していません。 James McNellisによって提案された方法を使用することはおそらく機能しますが、InnoDBが突然ハードクォータ制限に達することは、確かに安定性に利益をもたらしません。すべてのデータファイルは、システムテーブルスペースを介して接続されたままであり、削除することはできません。
残念ながら、私はあなたが望むものを達成するための実用的な方法を見ていません。ディスクスペースの使用量が事前定義された制限を超えることを懸念していて、外部クォータ規制の邪魔をしたくない場合は、テーブルスペースの設定を組み合わせたままにすることをお勧めします(つまり、innodb_file_per_table
)そして:autoextend
を削除します 構成から。
そうすれば、ユーザーまたはスキーマ固有の制限は発生しませんが、このセットアップでは表スペースが初期サイズを超えて大きくならないため、少なくともディスクがデータでいっぱいになるのを防ぐことができます。 innodb_file_per_table
を使用 残念ながら、特定の最大サイズで停止するようにそれぞれを構成する方法はありません。
これは、MySQLが他の、おそらくよりエンタープライズレベルのデータベースと異なる側面の1つです。誤解しないでください。数千のインストールで大量のデータを含むInnoDBを使用しているため、本番環境に対応できることが確かに証明されています。管理機能だけが少し欠けていることがあります。