![MySQL透過表空間限制使用者磁碟空間](https://rvso.com/image/697373/MySQL%E9%80%8F%E9%81%8E%E8%A1%A8%E7%A9%BA%E9%96%93%E9%99%90%E5%88%B6%E4%BD%BF%E7%94%A8%E8%80%85%E7%A3%81%E7%A2%9F%E7%A9%BA%E9%96%93.png)
我想弄清楚如何為 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