Mysql

MySQL通過表空間限制使用者磁碟空間

  • January 20, 2017

我試圖弄清楚如何為 MySQL 中的使用者設置磁碟空間限制。我想要的是,例如,管理員為使用者 A 分配 1G 磁碟空間,如果 A 用完 1G 磁碟空間,MySQL 將不允許 A 插入任何東西。我google了這個問題,有人提到可以通過使用表空間來解決,但沒有提到如何。任何幫助表示讚賞。

據我所知,沒有原生的 MySQL 磁碟配額支持(並且限制具有硬配額的數據庫的磁碟使用量聽起來像是災難的根源)。

您可以使用 MySQL 磁碟使用實用程序 https://dev.mysql.com/doc/mysql-utilities/1.5/en/mysqldiskusage.html報告磁碟使用情況

您可以將 mysql/datadir 放在每個使用者主目錄範例

/home/user1 或 DATADIR="/var/www/${VHOST}/mysql/datadir" 然後限制每個使用者的磁碟空間

同樣,每個使用者都會有他的 sock 和 pid 文件,我用它來做這樣的事情:

mysqld --skip-ndbcluster --user=mysql --skip-grant-tables --basedir=/usr --datadir=${DATADIR} --skip-innodb --skip-bdb --skip-networking --max_allowed_packet=8M --net_buffer_length=16K --socket=${sockfile} --pid-file=${pidfile} &>/dev/null

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