Mysql

限制 MySQL 使用者的空間

  • March 29, 2011

我維護一個 MySQL 伺服器。有一位使用者的數據庫大小迅速增長。由於他使用的是 InnoDB,因此 /data/mysql/ibdata1 文件已超出部分。我可以掛載一個小分區並將他的數據庫放在那裡,但 ibdata1 文件似乎在所有數據庫中共享。

我關心的是如何限制特定使用者使用比為他定義的更多的數據庫空間。

沒有開箱即用的解決方案。但您可以執行以下操作:

  1. 獲取使用者擁有的表的data_lengthand (這是數據文件在文件系統中使用的空間量)index_length``show table status
  2. 總結所有數據庫的這些數字
  3. 如果達到限制,例如刪除該使用者的 INSERT 權限,這樣他就不能再插入新數據了。

但請記住,從 InnoDB 表中刪除數據不會釋放文件系統中的空間。因此,如果您的使用者達到了限制,他將無能為力。(除了轉儲所有 InnoDB 表,刪除它們並重新導入它們)

引用自:https://serverfault.com/questions/253037