Der Beaglebone Black hat standardmäßig 2 GB eingebauten Flash-Speicher, allerdings kann das das je nach installiertem Betriebssystem und den installierten Programmen irgendwann recht knapp werden.
Zudem ist es sinvoll, gewisse Anwendungen wie zum Beispiel ein php-basierendes CMS mit MySQL-Datenbank auf Schnellerem Speicher wie USB-Flash oder einer externen USB-Festplatte laufen zu lassen.
Wie man den Speicher eines Beaglebone Black erweitern kann, kann man hier nachlesen Speicher auf dem Beaglebone Black erweitern
Per default speichert MySQL seine Datenbanken unter Debian in dem Ordner /var/lib/mysql
. Wenn man auf dem internen Speicher keinen Platz mehr hat und den Speicherort auf externe Speichermedien verschieben möchte, ist das eigentlich recht einfach.
- Einen Ordner auf dem externen Speicher erstellen, z.B. mit
mkdir /path-to-mountpoint/mysql/
- dem Ordner die notwendigen Rechte zuweisen mit
chown -R mysql:mysql /path-to-mountpoint/mysql/
(chown = change owner und durch das -R werden die Rechte rekursiv gesetzt, also auch Ordner und Unterordner)
- Die Dateien aus dem alten Verzeichnis in den neuen Ordner kopieren mit
cp -r /var/lib/mysql/* /path-to-mountpoint/mysql/
- die Konfigurationsdatei von MySQL anpassen
Zum Anpassen der Konfigurationsdatei wird diese in einem beliebigen Editor geöffnet - wie zum Beispiel nano.
Die Datei ist etwas umfangreicher, aber der wichtige Part ist dieser
[mysqld] # # * Basic Settings # user = mysql pid-file = /var/run/mysqld/mysqld.pid socket = /var/run/mysqld/mysqld.sock port = 3306 basedir = /usr datadir = /var/lib/mysql tmpdir = /tmp lc-messages-dir = /usr/share/mysql skip-external-locking
Dort ist der Eintrag "datadir" so anzupassen, dass er auf den neu erstellten Ordner verweist.
[mysqld] # # * Basic Settings # user = mysql pid-file = /var/run/mysqld/mysqld.pid socket = /var/run/mysqld/mysqld.sock port = 3306 basedir = /usr datadir = /path-to-mountpoint/mysql/ tmpdir = /tmp lc-messages-dir = /usr/share/mysql skip-external-locking
Die Datei abspeichern und mit service mysql restart
MySQL neu starten und dann war es das auch schon.
Anmerkung
Nach dem Verschieben der Datenbanken auf eine über USB angeschlossene Festplatte kam es immer wieder zu Problemen und Fehlern bei MySQL. Verschieben auf eine installierte SD-Karte läuft dagegen problemlos.
Comments
ingolf (not verified)
Danke für diese Anleitung.
Tue, 06/09/2015 - 8:43pmDanke für diese Anleitung.
Ich musste nach dem Kopieren nochmal chmod ausführen weil alle files im neuen mysql-ordner noch dem Benutzer root gehörten.
Die my.cnf ist im Ordner /etc/mysql zu finden.
Klappt! :)
Bjoern Stremmel (not verified)
Autsch .. OK, hatte ich echt
Mon, 06/15/2015 - 11:04pmAutsch .. OK, hatte ich echt vergessen .. Das chown -R ... sollte NACH dem Verschieben / Kopieren passieren.
Danke für den Hinweis
Der Bjoern
Iggy (not verified)
Meine Empfehlung den
Tue, 09/01/2015 - 3:39pmMeine Empfehlung den Kopiervorgang mittels:
cp -p -R /var/lib/mysql/* /neuer/pfad/
Dann werden die korrekten Berechtigungen mit übernommen auch wenn man als root am Terminal den Vorgang startet!
:)
Bjoern Stremmel (not verified)
Ja, ist richtig. Aber man
Tue, 09/01/2015 - 11:38pmJa, ist richtig. Aber man kann nicht immer alles im Kopf haben. Aber jetzt steht es ja hier ;-)
Vielen Dank dafür.
Gruß Bjoern
DapperDan (not verified)
Hi,
Tue, 10/06/2015 - 6:08pmHi,
Datenbank Dateien kopieren ohne vorher den Server zu Stoppen == nogo
Erst Stoppen, dann kopieren, so verhindert man gegebenfalls Datenverlust.
Gruß
DapperDan
Bjoern Stremmel (not verified)
Hey DapperDan
Tue, 10/06/2015 - 11:05pmHey DapperDan
Ups .. natürlich. Aber das war irgendwie so selbstverständlich, dass ich es nicht extra hin geschrieben hatte. Aber du hast natürlich recht: Das gehört natürlich dazu!
Danke für den Hinweis!
Gruß vom Bjoern
Alexander Pokraka (not verified)
Hi,
Thu, 03/24/2016 - 9:57amHi,
super Anleitung.
Ich habe alles umgesetzt wie in der Anleitung beschrieben und mit den Hinweisen der Kommentaren.
Leider lässt sich meine MySQL Dienst nicht mehr starten!
Wieso ?
Gruß
Alexander
Bjoern Stremmel (not verified)
Hey Alexander
Sat, 03/26/2016 - 6:43pmHey Alexander
Das kann natürlich mehrere Gründe habe.
Als erstes würde ich mal checken, ob die Pfade alle richtig sind und ob die Berechtigungen für das Verzeichnis und die Dateien stimmen.
Gruß Bjoern
Alexander (not verified)
Hi,
Mon, 03/28/2016 - 10:46pmHi,
ich habe alles üpberprüft, aber es geht immer noch nicht.
KHN (not verified)
Hi,
Wed, 03/30/2016 - 12:29amHi,
insgesamt hab ich nirgend anders eine bessere und kompaktere Anleitung gefunden - danke dafür, aber ich bekomme auch die folgende Fehlermeldung, obwohl die Rechte passen ...
...Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) in lock_may_be_available() ...
Bjoern Stremmel (not verified)
Hey Alexander
Wed, 03/30/2016 - 7:46amHey Alexander
Ich habe jetzt nicht weiter gelesen, aber MySQL auf GlusterFS aufzusetzen braucht wohl etwas mehr Konfiguration, siehe zum Beispiel hier
http://serverfault.com/questions/171166/can-i-run-mysqld-on-top-of-glust...
Ich hoffe, damit kommst du weiter.
Gruß Bjoern
Costantino (not verified)
Hi,
Thu, 10/19/2017 - 12:12pmHi,
erstmal danke für die Anleitung.
Habe sie soweit gemacht jedoch kommt beim service mysql restart folgende Fehlermeldung am ende dabei raus:
Job for mysql.service failed because the control process exited with error code. See "systemctl status mysql.service" and "journalctl -xe" for details.
Kann mir vielleicht jemand helfen?
Bjoern Stremmel (not verified)
Hey Costantino,
Fri, 10/27/2017 - 6:59pmHey Costantino,
Was kommt denn raus, wenn du „systemctl status mysql.service“ und „journalctl -xe“ ausführst.
Mit den Details könnte man sicher besser sagen, was da weggeflogen ist.
Gruß Bjoern
Add comment