MongoDB + Raspberry Pi (without building anything!)
Table Of Contents
I show how to get MongoDB running on your Pi without needing to build anything
Update 2: There's now an easier way to install Mongo on Raspbian:
apt install mongodb
. This blog is kept for historical purposes now.
Update: @svvitale has made an install script that does all of this tutorial for you. So if you just need to quick get Mongo installed (which is fine, I probably would have done the same thing), that script is what you're looking for. If you really want to do it manually, read on.
I wanted to put this out there, because every other tutorial/blog I've seen for getting Mongo on a Pi requires you to build from a source, usually RickP's. However, doing that requires at least several hours, which I didn't feel like giving up. So, I did some digging around and found Mark Little's repo, which is a pre-compiled package of Mongo 2.1.1 (same as RickP's), which should be modern enough for most uses.
Install
Installation is super simple, just uncompress the mongo.tar.gz
from the repo
and copy everything from /bin
into /usr/bin
, /lib
to /usr/lib
,
and /include
to /usr/include
.
Next, make a new user for mongodb:
sudo adduser --firstuid 100 --ingroup nogroup --shell /etc/false --disabled-password --gecos "" --no-create-home mongodb
Then, create a folder for logs and state data:
sudo mkdir /var/log/mongodb/
sudo mkdir /var/lib/mongodb/
And set permissions on those folders:
sudo chown mongodb:nogroup /var/log/mongodb/
sudo chown mongodb:nogroup /var/lib/mongodb/
Then go to RickP's repo, and grab the
/debian/init.d
and /debian/mongodb.conf
files. Rename init.d
to mongod
and copy to /etc/init.d/
on the Pi. Also copy the mongodb.conf
file to /etc/
Note: Some people have had trouble with carriage returns in the
mongod
file, so it might be a good idea to rundos2unix
on that file.
Finally, we need to sudo chmod u+x /etc/init.d/mongod
and
sudo update-rc.d mongod defaults
to make our script executable on startup.
Starting it up
You can now start MongoDB by executing sudo /etc/init.d/mongod start
or
sudo service mongod start
. It should run like any other MongoDB installation
now, running mongo
from the terminal will open the interactive shell. If
you're looking for how to use mongo (because it is a little different than
traditional SQL syntax),
their documentation
is a great starting point.
Shutting it down
Note: Never pull the power cord from a Pi without first stopping Mongo.
If you do, the databases may become corrupted and you will have a hard time
fixing the mess you made. Before powering down the pi, quick run
sudo service mongod stop
or sudo /etc/init.d/mongod stop
, and make sure it
is stopped before you shut down.
That's all you need to run Mongo on the Pi. Hopefully an enterprising person will come along and build a more recent version of Mongo for ARM devices. If that happens, I'll update this post accordingly, but for now, enjoy your MongoPi!
Changelog:
2014/09/19 - Added link to svvitale's script
2014/10/28 - Added how to start the mongo shell and link to documentation, thanks to Timo Denk.