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
mongodfile, so it might be a good idea to rundos2unixon 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.