After purchasing a Raspberry Pi 2, I decided to move some of my projects to it. I also added an external 2.5 inch USB drive via a USB hub. I store various sensor information in a MongoDB database and needed everything to run on the R-Pi 2. I chose to stick with the well-supported Debian Linux port, Raspbian Wheezy, as opposed to ARCH Linux that I used on my old R-Pi B+, as the R-Pi 2 has a quad core ARMv7 processor that requires a new kernel.
UPDATE (30 January 2016): I’ve compiled MongoDB 3.0.9 and tools for R-Pi 2 Raspbian (Jessie). Check here.
UPDATE (25 December 2015): Instructions for compiling MongoDB 3.0.7 and tools for R-Pi 2 running Raspbian Jessie are now available. Check here.
UPDATE (8 November 2015): If you are running Raspbian Jessie, you can “apt-get install mongodb”. This will result in an install of MongoDB v2.4. Good enough for most uses and you get a working mongo shell 😉 If you want MongoDB v2.6.3, read-on!
I was back to hunting for a compatible MongoDB binary — or instructions on how to compile from source. Research showed that MongoDB does not compile for ARM after version 2.6.3 🙁 Searching the ‘net led me to the “facat’ blog.” This blog shows how to cross-compile MongoDB 2.6.3 for ARM. Precompiled binaries are also available. NOTE that the mongo shell does NOT work correctly on the R-Pi. “mongod”, the server, does work fine and can be accessed programmatically or via a mongo shell from another (non-R-Pi) computer. I use “mongo” on my Mac to connect to “mongod” running on the R-Pi 2.
more after the break
I created a “mongodb.conf” in “/etc” that configures MongoDB to use a data directory and log file on my USB-connected hard drive which is mounted on “/mnt”. The config file:
$ cat mongodb.conf
I invoke mongod with “mongod -f /etc/mongodb.conf” I connect via mongo on my Mac with “mongo −−host XXX.0.0.XXX” You can get a zip file of all of the MongoDB executables here. NOTE again that the MongoDB shell, “mongo” does not work correctly on the R-Pi and throws a segment fault on many operations.