Changes

Jump to navigation Jump to search
4,115 bytes added ,  23:33, 8 April 2016
Line 1: Line 1:  
== Installation ==
 
== Installation ==
=== Ubuntu 14.04 ===
+
=== Ubuntu 14.04, 15.10 ===
 
  sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927
 
  sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927
 
  echo "deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list
 
  echo "deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list
 
  sudo apt-get update
 
  sudo apt-get update
 +
==== Client and Server ====
 
  sudo apt-get install -y mongodb-org
 
  sudo apt-get install -y mongodb-org
 +
==== Client only ====
 +
sudo apt-get install mongodb-clients
 
Check if service is active
 
Check if service is active
 
  sudo systemctl status mongd
 
  sudo systemctl status mongd
 
If it's not working  
 
If it's not working  
 
  sudo reboot
 
  sudo reboot
If it still not working<br />
+
If it still not working, create and run the script enable_mongo.sh with:<br />
https://gist.github.com/sgnn7/54146c8a13c8b5ca2201
+
<source lang="bash">echo '[Unit]
 +
Description=High-performance, schema-free document-oriented database
 +
After=syslog.target network.target
 +
 +
[Service]
 +
User=mongodb
 +
Group=mongodb
 +
ExecStart=/usr/bin/mongod -f /etc/mongod.conf
 +
 +
[Install]
 +
WantedBy=multi-user.target' > /lib/systemd/system/mongod.service
 +
 
 +
# Setup the required directories
 +
mkdir -p /var/run/mongodb/
 +
mkdir -p /var/log/mongodb/
 +
mkdir -p /var/lib/mongodb/
 +
mkdir -p /data/db/
 +
 
 +
chown mongodb:mongodb /var/run/mongodb/
 +
chown mongodb:mongodb /var/log/mongodb/
 +
chown mongodb:mongodb /var/lib/mongodb/
 +
chown mongodb:mongodb /data/db
 +
 
 +
chmod 0755 /var/log/mongodb/
 +
chmod 0755 /var/run/mongodb/
 +
chmod 0755 /var/lib/mongodb/
 +
chmod 0755 /data/db/
 +
 
 +
# Start the new service and enable it on boot
 +
systemctl --system daemon-reload
 +
systemctl enable mongod.service
 +
 
 +
echo "Starting"
 +
systemctl start mongod.service</source>
    
  # Specific version install: sudo apt-get install -y mongodb-org=3.2.1 mongodb-org-server=3.2.1 mongodb-org-shell=3.2.1 mongodb-org-mongos=3.2.1 mongodb-org-tools=3.2.1<br />
 
  # Specific version install: sudo apt-get install -y mongodb-org=3.2.1 mongodb-org-server=3.2.1 mongodb-org-shell=3.2.1 mongodb-org-mongos=3.2.1 mongodb-org-tools=3.2.1<br />
Configuration file:<br />
+
 
  /etc/mongod.conf
+
=== Enable authentication ===
 +
* Connect to mongo instance:
 +
mongo
 +
* Add an admin user:
 +
<nowiki>
 +
use admin
 +
db.createUser(
 +
  {
 +
    user: "myUserAdmin",
 +
    pwd: "abc123",
 +
    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
 +
  }
 +
)</nowiki>
 +
 
 +
* Edit configuration file
 +
sudo nano /etc/mongod.conf
 +
 
 +
* Restart mongoDB server:
 +
sudo service mongod restart
 +
 
 +
* connect to your instance:
 +
<nowiki>security:
 +
  authorization: enabled</nowiki>
 +
==== Add user roles ====
 +
<nowiki>use reporting
 +
db.grantRolesToUser(
 +
    "reportsUser",
 +
    [
 +
      { role: "read", db: "accounts" }
 +
    ]
 +
)</nowiki>
 +
==== Revoke user roles ====
 +
<nowiki>use reporting
 +
db.revokeRolesFromUser(
 +
    "reportsUser",
 +
    [
 +
      { role: "readWrite", db: "accounts" }
 +
    ]
 +
)</nowiki>
 +
 
 +
==== Create User ====
 +
<nowiki>use test
 +
db.createUser(
 +
    {
 +
      user: "tester",
 +
      pwd: "password",
 +
      roles: [
 +
        { role: "read", db: "test1" },
 +
        { role: "read", db: "test2" },
 +
        { role: "read", db: "test3" },
 +
        { role: "readWrite", db: "test" }
 +
      ]
 +
    }
 +
);</nowiki>
 +
or
 +
<nowiki>use products
 +
db.addUser( { user: "Alice",
 +
              pwd: "Moon1234",
 +
              roles: [ "readWrite", "dbAdmin" ]
 +
            } )</nowiki>
 +
or
 +
<nowiki>db.createUser(
 +
...        {
 +
...          user: "....",
 +
...          pwd: ".........",
 +
...          roles: [ "readWrite" ]
 +
...        }
 +
... )
 +
</nowiki>
 +
 
 +
==== Drop User ====
 +
<nowiki>db.dropUser(username)}</nowiki>
 +
 
 +
=== Enable remote connections ===
 +
* Edit /etc/mongodb.conf
 +
* Add the ip's you whish to enable for remote access to bind_ip separated by ',' (Dont remove 127.0.0.1!!)
 +
bind_ip = 127.0.0.1,192.168.56.222
 +
 
 +
=== Disable Transparent Huge Pages (THP) ===
 +
Create the init.d script.<br />
 +
Create the following file at /etc/init.d/disable-transparent-hugepages:
 +
<source lang="bash">#!/bin/sh
 +
### BEGIN INIT INFO
 +
# Provides:          disable-transparent-hugepages
 +
# Required-Start:    $local_fs
 +
# Required-Stop:
 +
# X-Start-Before:    mongod mongodb-mms-automation-agent
 +
# Default-Start:    2 3 4 5
 +
# Default-Stop:      0 1 6
 +
# Short-Description: Disable Linux transparent huge pages
 +
# Description:      Disable Linux transparent huge pages, to improve
 +
#                    database performance.
 +
### END INIT INFO
 +
 
 +
case $1 in
 +
  start)
 +
    if [ -d /sys/kernel/mm/transparent_hugepage ]; then
 +
      thp_path=/sys/kernel/mm/transparent_hugepage
 +
    elif [ -d /sys/kernel/mm/redhat_transparent_hugepage ]; then
 +
      thp_path=/sys/kernel/mm/redhat_transparent_hugepage
 +
    else
 +
      return 0
 +
    fi
 +
 
 +
    echo 'never' > ${thp_path}/enabled
 +
    echo 'never' > ${thp_path}/defrag
 +
 
 +
    unset thp_path
 +
    ;;
 +
esac</source>
 +
Make it executable:
 +
  sudo chmod 755 /etc/init.d/disable-transparent-hugepages
 +
Configure your operating system to run it on boot.<br />
 +
 
 +
Use the appropriate command to configure the new init script on your Linux distribution.<br />
 +
 
 +
Distribution Command<br />
 +
 
 +
Ubuntu and Debian <nowiki>sudo update-rc.d disable-transparent-hugepages defaults</nowiki><br />
 +
SUSE <nowiki>sudo insserv /etc/init.d/disable-transparent-hugepages</nowiki><br />
 +
Red Hat, CentOS, Amazon Linux, and derivatives <nowiki>sudo chkconfig --add disable-transparent-hugepages</nowiki><br />
    
== Start/Stop/Restart MongoDB ==
 
== Start/Stop/Restart MongoDB ==
Line 89: Line 245:  
#::    user: "myUserAdmin",
 
#::    user: "myUserAdmin",
 
#::    pwd: "abc123",
 
#::    pwd: "abc123",
#::    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
+
#::    roles: [ { role: "root", db: "admin" } ]
 
#::  }
 
#::  }
 
#::)</pre>
 
#::)</pre>

Navigation menu