10 May, 2015

MongoDB Einrichten

Zuerst sicherstellen, dass das System aktuell ist, vor allem wenn der letzte Aufruf lange her ist.

sudo apt-get update sudo apt-get upgrade

MongoDB gibts es aktuell für den Rasberry PI noch keine offizielle Version. Diese müssen wir aus den Quellen bauen.

Bei meinem Raspberry PI konnte ich nicht einmal die Quellen aus Github herunterladen weil git einen 'Out-Of-Memory'-Fehler verursachte. Der Speicher ist war klein. Deshalb überprüft zuerst ob der Swap genug gross ist.

Swap (Auslagerungsdatei) auflisten:

cat /proc/swaps

Die Grösse der Swap-Datei erhöhen:

sudo vi /etc/dphys-swapfile  CONF_SWAPSIZE=100

Den Wert von 100 auf z.B. 1000 korrigieren und neu starten.

Für ARM angepasste MongoDB Quellen herunterladen:

git clone https://github.com/skrabban/mongo-nonx86

Der folgende Befehl compiliert die Quellen und dauert Stunden:

sudo scons

Die Installation danach dauert auch Stunden:

sudo scons --prefix=/opt/mongo install

Nun folgen Aufrufe für die Einrichtung vom mongodb als eigener Benutzer und die Erstellung des Verzeichnisses für Log und Daten.

sudo adduser --firstuid 100 --ingroup nogroup --shell /etc/false --disabled-password --gecos "" --no-create-home mongodb
sudo mkdir /var/log/mongodb
sudo chown mongodb:nogroup /var/log/mongodb
sudo mkdir /var/lib/mongodb
sudo chown mongodb:nogroup /var/lib/mongodb
sudo cp debian/init.d /etc/init.d/mongod
sudo chmod u+x /etc/init.d/mongod
sudo cp debian/mongodb.conf /etc/
sudo ln -s /opt/mongo/bin/mongod /usr/bin/mongod
sudo update-rc.d mongod defaults

Damit der MongoDB-Client direkt ohne Angabe vom vollem Pfad gestartet werden kann, muss die System-Umgebungsvariable PATH ergänzt werden. Wenn eine Shell geöffnet wird, führt das System alle *.sh Scripts im /etc/profile.d automatisch aus. Dort erstellen wir eine neue mongodb.sh-Datei.

sudo vi /etc/profile.d/mongodb.sh

und fügen die folgende Zeile ein:

PATH=$PATH:/opt/mongo/bin/

MongoDB Server starten:

sudo /etc/init.d/mongod start

MongoDB Server neustarten:

sudo /etc/init.d/mongod restart

Falls der Start nicht funktioniert, kann es sein, dass mongod unerwartet beendet wurde. Wenn die Datei mongod.lock existiert, wurde mongod unerwartet beendet.

ls /var/lib/mongodb
sudo mongod --repair --config /etc/mongodb.conf

MongoDB Client starten:

/opt/mongo/bin/mongo