--- title: Installing MongoDB description: How to install MongoDB on Ubuntu 22.04 published: true date: 2023-06-28T12:09:18.672Z tags: linux, server, ubuntu, mongodb editor: markdown dateCreated: 2023-06-28T12:09:18.672Z --- # Installing MongoDB This guide provides instructions on how to install MongoDB on Ubuntu 22.04. Installing Mongo is a fairly simple process. ## Updating the System - We will start by updating the apt package list. Run the following command: ```bash sudo apt update ``` This will update the apt package list so that we ensure that the latest versions of packages are available. - Next, we will upgrade the packages. Run the following command: ```bash sudo apt upgrade ``` This will upgrade the packages to the latest versions. ## Installing required packages - Now, we will install some packages that are required. Run the following command: ```bash sudo apt install gnupg2 wget ``` ## Installing MongoDB 1. Import the MongoDB GPG key. Run the following command: ```bash wget -nc https://www.mongodb.org/static/pgp/server-6.0.asc cat server-6.0.asc | gpg --dearmor | sudo tee /etc/apt/keyrings/mongodb.gpg >/dev/null ``` These commands will download the GPG key and import it, which will allow us to verify the packages. 2. Add MongoDB to the apt sources list. Run the following command: ```bash sudo sh -c 'echo "deb [ arch=amd64,arm64 signed-by=/etc/apt/keyrings/mongodb.gpg] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/6.0 multiverse" >> /etc/apt/sources.list.d/mongo.list' ``` This command will add the MongoDB apt repository to the sources list. 3. Update the apt package list. Run the following command: ```bash sudo apt update ``` This will update the apt package list so that we ensure that the latest versions of packages are available. 4. Install MongoDB. Run the following command: ```bash sudo apt install mongodb-org ``` This will install the latest stable version of MongoDB. 5. Start MongoDB. Run the following command: ```bash sudo systemctl start mongod ``` 6. Enable MongoDB so that it will automatically start on system boot. Run the following command: ```bash sudo systemctl enable mongod ``` 7. Verify that MongoDB is running. Run the following command: ```bash sudo systemctl status mongod ``` You should see something like this: ```bash ● mongod.service - MongoDB Database Server Loaded: loaded (/lib/systemd/system/mongod.service; enabled; vendor preset: enabled) Active: active (running) since Tue 2023-06-27 08:00:00 UTC; 1min 30s ago Docs: https://docs.mongodb.org/manual Main PID: 1234 (mongod) Tasks: 33 (limit: 4915) Memory: 1.2G CGroup: /system.slice/mongod.service └─1234 /usr/bin/mongod --config /etc/mongod.conf ``` ## Securing MongoDB 1. Connect to MongoDB, so that we can create an admin user. Run the following command: ```bash mongosh ``` 2. Switch to the `admin` database. Run the following command: ```bash use admin ``` 3. Create an admin user. Run the following command: ```bash db.createUser( { user: "admin", pwd: "SET ME", # Generate a random string with: openssl rand -base64 32 | cut -c1-32 roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] } ) ``` 4. Exit the mongo shell. Run the following command: ```bash exit ``` 5. Now, we need to secure enable authentication, this will secure the server and prevent unauthorized access. Run the following command: ```bash sudo nano /etc/mongod.conf ``` 6. Find the `security` section. We need to uncomment it, and add the following line below it, it should look like this: ```bash security: authorization: enabled ``` 7. Save the file and exit the editor. You can do this by pressing `CTRL + X`, then `Y`, then `ENTER`. ## Adding a user / database 1. Connect to MongoDB, so that we can create a user. Run the following command: ```bash mongosh -u admin -p --authenticationDatabase admin ``` This will ask you for the password that you set earlier in the Securing MongoDB section, or if you didn't secure MongoDB, run the following command: ```bash mongosh ``` 2. Switch to the database that you want to add a user to eg: `forum`. Run the following command: ```bash use forum ``` 3. Create a user. Make sure to change the `db` to match the database used above. Run the following command: ```bash db.createUser( { user: "forum", pwd: "SET ME", # Generate a random string with: openssl rand -base64 32 | cut -c1-32 roles: [ { role: "readWrite", db: "forum" } ] } ) ``` 4. Exit the mongo shell. Run the following command: ```bash exit ``` You have now created a user for the `forum` database. You can repeat this process for any other databases that you want to create users for. ## Optional: Allowing remote connections 1. Open the MongoDB configuration file. Run the following command: ```bash sudo nano /etc/mongod.conf ``` 2. Find the `net` section, we need to update the `bindIp` value, it should look like this: ```bash net: port: 27017 bindIp: 0.0.0.0 ``` 3. Save the file and exit the editor. You can do this by pressing `CTRL + X`, then `Y`, then `ENTER`. 4. Restart MongoDB. Run the following command: ```bash sudo systemctl restart mongod ``` You should now be able to connect to MongoDB from a remote machine. ## Finished You have successfully installed MongoDB on Ubuntu 22.04. You can now connect to MongoDB and start using it.