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

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

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

答案1

據我所知,沒有本機 MySQL 磁碟配額支援(並且限制資料庫的磁碟使用硬配額聽起來像是災難的根源)。

您可以使用 MySQL 磁碟使用公用程式報告磁碟使用量 https://dev.mysql.com/doc/mysql-utilities/1.5/en/mysqldiskusage.html

答案2

您可以將 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

相關內容