The mongoDB documentation at mongodb.com states that 32-bit binaries are deprecated with release 3.2 and will be unavailable in future releases. The latest version with 32-bit support (i.e. R-Pi with Raspbian) is 3.0.14 as of March, 2017. I have compiled MongoDB 3.0.14 for Raspberry Pi 2 and 3. I needed a few tweaks to the build process I used to compile 3.0.9 and associated tools. Use the installation instruction in my previous blog post to install and run MongoDB 3.0.14 on R-Pi. The only change is to download newer files. I have compiled MongoDB and Tools with the SSL flag — so the SSL option is available.
I’m a big fan of MongoDB but contrary to its “humongous” orientation, I like to think small as in ARM-based SBCs like the Raspberry Pi or ODROID-C2 and DBs under a terabyte 😉 You can get a lot of power out of tiny inexpensive computers and USB disk drives! You can find my blog entries, below, for getting 32-bit MongoDB 3.0 working on R-Pi and 64-bit, MongoDB 3.2 working under ArchLinux ARM on ODROID-C2.
I had seen MongoDB community requests for a 64-bit ARM version and even a mention that there was “official experimental” development going on – including the efficient WiredTiger storage engine. I recently perused the MongoDB Community Edition documentation for version 3.4 and saw a download option for “Ubuntu 16.04 Linux 64-bit ARM 64” on the MongoDB Download Center. Ubuntu 16.04 is the default Linux supplied with the ODROID-C2 🙂 You can purchase a bare ODROID-C2 for US$40 at Hardkernel. Micro SD card or EMMC module with preinstalled Ubuntu Linux is extra.
Click more for installation instructions.
Raspberry Pi CouchDB, Raspberry Pi
The Apache Software Foundation has released CouchDB version 2.0. CouchDB 2.0, is a “distributed” version of CouchDB, a mature NoSQL, document-oriented data-store that is accessable via a RESTful JSON API. Developers can take advantage of CouchDB’s offline capability and reliable data sync for web, mobile and IoT apps at (any) scale.
Current Raspbian (November 2016) can “apt-get install” version 1.4 and I have previously written about getting CouchDB 1.6 running on the R-Pi. I have now installed version 2.0.0 on an R-Pi 3 and am sharing the process. It is pretty straightforward to get CouchDB 2.0 running on the R-Pi. It takes a combination of the R-Pi specific 1.6 install and the “generic linux” 2.0 install to get things running.
We had a really old alarm clock in our bedroom. Really old. The LED number segments, which were a nice dim red in color, had been dying at the rate of 1 segment a year and it was getting hard to read the time. My wife finally had enough of my “I’ll get a new one real soon” excuse and bought a new big, bright, blue LED clock to replace the old clock. It was blue … and *really* bright … even in its dim-mode 🙁 It had to go!
My converted 1942 Crosley Radio was collecting dust on my workbench. I had finally received a Raspberry Pi Zero and Zero4U USB hub to play with but was already lusting after the new R-Pi Zero with camera port. I recently upgraded the audio-output on my Mac from an old USB HiFiMan Express DAC to a Schiit Modi DAC. Hmmmmm, seemed like I had the ingredients to make a BIG clock “radio” with alarm(s) and great stereo audio?
I use MongoDB as my database of choice as you can tell by my blog entries. Under current Raspberry Pi OSs, MongoDB is limited by 32 bit binaries. Databases are restricted to 2GB.
The Raspberry Pi 3 sports an ARMv7 processor that supports 64 bits. At this time (May 2016) there is no official OS support for 64 bits. Raspbian and Arch Linux are only available with 32 bit support. I expect that we WILL see 64 bit support sometime in the future 😉
While waiting, I looked around and found MongoDB
3.2.6 3.2.10 in the Arch Linux ARM aarch64 package repository. I also found out that the ODROID C2 single board computer supports aarch64. This SBC costs $40 and has better specs (for my DB purposes) than the R-Pi 3. It has a 4-core ARMv8 processor running at 2GHz, 2GB of RAM and gigabit ethernet. It also supports WAY fast eMMC Flash storage in addition to Micro SD. Android and Ubuntu are the officially supported OSs but Arch Linux ARM (64 bit) can be installed as well.
[UPDATE: 23 Mar 2017] If you prefer to use the default Ubuntu Linux for ODROID C2 as opposed to Arch, you can now install official MongoDB 3.4. See this blog post.
Raspberry Pi database, mongodb, Raspberry Pi
I’ve written about getting MongoDB running on the Raspberry Pi 2. View my other posts where you can get binaries (3.0.9) or learn how to compile from scratch (3.0.7). The mongo shell works great but you may want/need to code in Python, especially for device control or data logging, etc.
PyMongo is a Python distribution containing tools for working with MongoDB, and is the recommended way to work with MongoDB from Python. You can either use Python 2 or Python 3. Python 3 did not come on the minimal Raspbian Jessie image but can be installed using “sudo apt-get install python3”.
To install the appropriate PyMongo for MongoDB 3.0.x you can do the following from the command line. Note you could use “python3” where I use “python”, depending on your preference. I normally use the default Python 2.7.
Instructions after the break: More
Raspberry Pi mongodb, Raspberry Pi
I’ve received feedback that some folks are having problems compiling MongoDB 3.0.7 per my instructions AND it takes a long time 😉
MongoDB 3.0.9 just became available but needs quite a few changes to source in order to compile on the Raspberry Pi. I worked through MongoDB build scripts for ARCH ARM Linux and managed to “translate” for Raspbian (Jessie) Linux on the R-Pi 2. Rather than creating patch files and writing instructions for building from source, I am providing my compiled binaries. PLEASE do not post links to my binaries! Feel free to download for personal use from this site.
NOTE: (18 Mar 2017) I have compiled version 3.0.14 and created binaries for the R-Pi 2 & 3. I have confirmed that the instructions in this blog entry work with the new binaries.
Raspberry Pi mongodb, Raspberry Pi
I have successfully compiled MongoDB version 3.0.7 and tools on the Raspberry Pi 2. Full instructions are after the break — click on “more“. As usual I found great help from the Linux community for getting this to work on ARM7. mongo, mongod, mongos, and tools are all working great. The WiredTiger Engine does NOT work under 32-bit ARM but, AFAIK, all other components do 🙂
NOTE: I have made MongoDB 3.0.9 binaries available for Raspbian (Jesse) for R-Pi 2 – here.
Raspberry Pi CouchDB, database
CouchDB is available for Raspberry Pi via a simple, “apt-get install couchdb” BUT you’ll be installing version 1.2. The latest stable version as of 1 September 2015 is 1.6.1. While 1.6.1 is the latest, I found an excellent how-to for installing 1.6.0 at the blog, “Playing JEE on the Pi“. The big difference between 1.6.0 and 1.6.1 is the fix of an admin password hash issue. If you are using admin passwords, be aware that start-up under 1.6.0 could be an issue. I have not yet had time to upgrade the install process for 1.6.1.
In any case, you can find very easy to follow install instructions in an article, “Installing CouchDB 1.6.0 on the Raspberry Pi” on the “Playing JEE on the Pi” blog. Follow the instructions carefully and you’ll end up with:
pi@Pi-2 ~ $ which couchdb
pi@Pi-2 ~ $ couchdb -V
couchdb - Apache CouchDB 1.6.0
Note: if you have installed an older version of CouchDb using “apt-get” you should uninstall first! You’ll see a few warnings with the new build and install but everything will install and function correctly. Failure to uninstall a previous version will result in permission issues and incorrect start-up.