Knowledgebase

How to Install MongoDB on FreeBSD 13 Print

  • 0

Introduction

MongoDB is a document-oriented NoSQL database used for managing, storing, and retrieving document-oriented information structured in a JSON-like format of key and value pairs. MongoDB is mostly used in big data applications and working with ever-growing data sets that don't fit into a relational data model.

MongoDB performs well when deployed in the cloud. It provides excellent operational flexibility, cost-effectiveness, high redundancy, and exceptional data security. In this guide, you will install MongoDB on a FreeBSD 13.0 server.

Prerequisites

To follow along with this guide effectively, make sure to have the following requirements:

Update FreeBSD 13 Base System

An up-to-date FreeBSD system and package repository are essential to rid your system of critical and non-critical bugs, improve functionality, and prevent security vulnerabilities.

SSH into your server and perform the following steps.

  1. To update your FreeBSD system with new and available security patches, version upgrades, and other system files and dependencies, perform the following command:

    $ sudo freebsd-update fetch install
    
  2. FreeBSD uses a tool called pkg to install, upgrade, and manage binary packages. Update the FreeBSD repository with the most recent database package information.

    $ sudo pkg update -f
    

The -f flag in the command above forces updates if the default pkg update command is unable to pull the most recent updates.

Install MongoDB

Now with your server up-to-date and pkg ready and running, install MongoDB and its dependencies.

To install the most recent version of MongoDB from the FreeBSD repository, you must first look for the MongoDB binary in the repository. Unfortunately, MongoDB cannot be installed directly with the pkg install mongodb command due to the expired and deprecated MongoDB port.

  1. Search for the MongoDB package with this command:

    $ sudo pkg search mongodb
    

    As shown below, you should see a list of available MongoDB packages ranging from older versions to the most recent version and other related resources.

    mongodb-tools-100.5.1          Tools for MongoDB 4.4.x and up
    
    mongodb36-3.6.23               Distributed document-oriented "NoSQL" database
    
    mongodb40-4.0.27               Distributed document-oriented "NoSQL" database (4.0.x Branch)
    
    mongodb40-tools-4.0.27         Tools for MongoDB
    
    mongodb42-4.2.17               Distributed document-oriented "NoSQL" database (4.2.x Branch)
    
    mongodb42-tools-4.2.17         Tools for MongoDB 4.2.x
    
    mongodb44-4.4.11               Distributed document-oriented "NoSQL" database (4.4.x Branch)
    
    mongodb50-5.0.5                Distributed document-oriented "NoSQL" database (5.0.x Branch)
    
    p5-Mojolicious-Plugin-Mongodb-1.16_1 Use MongoDB in Mojolicious
    
    p5-MongoDB-2.2.2               Mongo Driver for Perl
    
    php73-pecl-mongodb-1.9.1       PECL classes for MongoDB
    
    php74-pecl-mongodb-1.9.1       PECL classes for MongoDB
    
    php80-pecl-mongodb-1.9.1       PECL classes for MongoDB
    
    py38-nagios-check_mongodb-0.1  Nagios plugin to check mongodb server
    

    You will install the most recent version of MongoDB, version 5.0.5, as of the writing of this guide.

  2. To install MongoDB version 5.0.5 run the following command:

    $ sudo pkg install mongodb50-5.0.5
    

    You will be prompted to proceed with the installation. Press Y and hit ENTER to begin.

  3. Confirm that MongoDB has been successfully installed with the following command:

    $ sudo pkg info mongodb50-5.0.5
    

    The output of the command above would look like this:

    mongodb50-5.0.5
    
    Name           : mongodb50
    
    Version        : 5.0.5
    
    Installed on   : Mon Feb 21 07:48:46 2022 UTC
    
    Origin         : databases/mongodb50
    
    Architecture   : FreeBSD:13:amd64
    
    Prefix         : /usr/local
    
    Categories     : databases net
    
    Licenses       : APACHE20, SSPLv1
    
    Maintainer     : ronald-lists@klop.ws
    
    WWW            : https://docs.mongodb.com/v5.0/
    
    Comment        : Distributed document-oriented "NoSQL" database (5.0.x Branch)
    
    Options        :
    
                    LTO            : on
    
                    SASL           : on
    
                    SSL            : on
    
    Shared Libs required:
    
                    libsasl2.so.3
    
                    libpcre.so.1
    
                    libpcrecpp.so.0
    
                    libsnappy.so.1
    
                    libcurl.so.4
    
    Annotations    :
    
                    FreeBSD_version: 1300139
    
                    cpe            : cpe:2.3:a:mongodb:mongodb:5.0.5:::::freebsd13:x64
    
                    repo_type      : binary
    
                    repository     : FreeBSD
    
    Flat size      : 165MiB
    
    Description    :
    
    Mongo (from "humongous") is a high-performance, open source,
    
    schema-free, document-oriented database. A common name in the
    
    "NOSQL" community.
    
    
    
    WWW: https://docs.mongodb.com/v5.0/
    

Start MongoDB During System Boot up

To avoid manually starting up MongoDB after system boot, you can set up MongoDB to start automatically on system boot-up. To do that, you need to edit the rc.conf file in the /etc directory.

Before you can edit the rc.conf file, you need a command-line text editor. For this guide, you will use GNU nano.

  1. To install nano perform the following command:

    $ sudo pkg install nano
    
  2. Edit the rc.conf file in the /etc directory:

    $ sudo nano /etc/rc.conf
    
  3. Add the following line in the rc.conf file to configure the MongoDB daemon to start automatically when the system boots up:

    mongod_enable="YES"
    

Press CTRL+S to save, and CTRL+X to exit nano.

Start MongoDB Service & Test Database

MongoDB has been successfully installed and set to start automatically when the system is booted. However, the configuration you created has not yet been applied.

  1. For the configuration to take effect, start MongoDB manually:

    $ sudo service mongod start 
    
  2. Confirm that MongoDB has been successfully started:

    $ sudo service mongod status
    

    You should get the following output:

    mongod is running as pid 16173
    
  3. To test the database and further confirm that MongoDB is properly started and fully operational, run the following command to check the connection status of MongoDB:

    $ mongo --eval 'db.runCommand({ connectionStatus: 1 })'
    

    From the output shown below, MongoDB is up and running on localhost (127.0.0.1) via the MongoDB default port, 27017. The key ok as shown in the JSON-like response, has a value of 1, indicating that the server is running as expected.

    MongoDB shell version v5.0.5
    
    connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
    
    Implicit session: session { "id" : UUID("0dc008c4-dab1-4d0f-9745-04d29aade856") }
    
    MongoDB server version: 5.0.5
    
    {
    
                    "authInfo" : {
    
                                    "authenticatedUsers" : [ ],
    
                                    "authenticatedUserRoles" : [ ]
    
                    },
    
                    "ok" : 1
    
    }
    
  4. To stop the MongoDB service (optional), run the following command:

    $ sudo service mongodb stop
    

Secure MongoDB

MongoDB is not secure by default after installation. As a result, users can read, write, delete, and modify data without requiring authentication from the server. For more information on how to secure MongoDB, refer to the Securing MongoDB article here.

Once you are able to secure MongoDB, restart the MongoDB with the following command:

$ sudo service mongod restart

Conclusion

With this guide, you have successfully updated your FreeBSD system and repository, installed MongoDB, configured it to start on system boot-up, and finally secured the server to prevent unauthorized access. For more information and further guides, see the official documentation:


Was this answer helpful?
Back

Powered by WHMCompleteSolution