
Ich versuche herauszufinden, wie ich in MySQL ein Speicherplatzlimit für Benutzer festlegen kann. Ich möchte beispielsweise, dass der Administrator dem Benutzer A 1 GB Speicherplatz zuweist. Wenn A den 1 GB Speicherplatz aufgebraucht hat, lässt MySQL A nichts einfügen. Ich habe dieses Problem gegoogelt und jemand hat erwähnt, dass es durch die Verwendung von Tablespace gelöst werden kann, hat aber nicht erwähnt, wie. Jede Hilfe ist willkommen.
Antwort1
Soweit ich weiß, gibt es keine native MySQL-Festplattenkontingentunterstützung (undBegrenzung der Festplattennutzung für eine Datenbankmit harten Quoten klingt nach einem Rezept für eine Katastrophe).
Sie können jedoch mit dem MySQL-Dienstprogramm zur Festplattennutzung Berichte zur Festplattennutzung erstellen. https://dev.mysql.com/doc/mysql-utilities/1.5/en/mysqldiskusage.html
Antwort2
Sie können mysql/datadir auf jedem Benutzer-Home-Beispiel
/home/user1 oder DATADIR="/var/www/${VHOST}/mysql/datadir" ablegen und dann eine Begrenzung des Speicherplatzes für jeden Benutzer festlegen.
Außerdem möchte ich, dass jeder Benutzer seine eigene Sock- und PID-Datei hat. Ich mache es folgendermaßen:
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