Um die Perfomance von seinem MySQL zu erhöhen, kann man diesen temporär in den RAM laden. In diesem Artikel sollen jedoch nicht die Gefahren behandelt werden.
Wir reservieren 2 Gigabyte Speicher für ramfs und mounten das Filesystem.
sudo mkdir mkdir /tmp/ramfs
sudo mount -t ramfs -o size=2G ramfs /tmp/ramfs/
Nun ist das RAM-Filesystem erstmal gemountet und kann mit Daten gefüttert werden. Um nun die Auslastung auf ramfs zu übertragen, müssen wir den MySQL Server erstmal stoppen und umlagern. Dazu den Service stoppen und per cp kopieren und die Rechte übertragen.
sudo /etc/init.d/mysql stop
sudo cp -R /var/lib/mysql /tmp/ramfs/
sudo chown -R mysql:mysql /tmp/ramfs/mysql
Nun müssen die Änderungen natürlich noch in der config angepasst werden. Dazu einfach ein Kopie von der config erstellen und dann editieren.
sudo cp /etc/mysql/my.cnf /etc/mysql/original-my.cnf
sudo nano /etc/mysql/my.cnf
Wichtig: Pfad zur Datadir ändern.
datadir = /tmp/ramfs/mysql
Durch das Verschieben müssen wir auch den Apparmor anpassen, bzw. das Profil editieren.
sudo nano /etc/apparmor.d/usr.sbin.mysqld
Folgende Line’s müssen hinzugefügt werden:
/var/lib/mysql/ r,
/var/lib/mysql/** rwk,
/var/ramfs/mysql/*.pid rw,
Hat es funktioniert? MySQL Server starten und AppArmor neustarten (wegen Veränderung des Profiles)
sudo /etc/init.d/apparmor restart
sudo /etc/init.d/mysql start
Über „show variables like ‚datadir‘;“ kann man alles nochmal überprüfen.
Quelle: askubuntu.com