Monthly Archives: 11月 2016

CentOS7 MongoDB3.2 インストール

調べると、まとまったサイトを見つけ出すことが出来なかったのでメモを残しておきます。

リポジトリ追加
$ sudo vi /etc/yum.repos.d/mongodb-org-3.2.repo

[mongodb-org-3.2]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.2/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.2.asc

インストール
$ sudo yum install -y mongodb-org

起動と自動起動の有効化
$ sudo systemctl start mongod
$ sudo systemctl enable mongod

管理者アカウントの作成
$ mongo

db.createUser(
  {
    user: "admin",
    pwd: "パスワードを指定してください",
    roles:
    [
      {
        role: "userAdminAnyDatabase",
        db: "admin"
      }
    ]
  }
)

mongoコマンドを実行すると警告が複数出るためそれの対策を行います
警告の内容についてはメモを残し忘れてしまいました・・・
$ sudo vi /etc/rc.local

# 以下追記
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
   echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
   echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi

$ sudo chmod +x /etc/rc.d/rc.local

$ sudo vi /etc/security/limits.d/99-mongodb-nproc.conf

# ファイルを新規作成して以下を記述
*          soft    nproc     1024
root       soft    nproc     unlimited
mongod       soft    nproc     unlimited

*          soft    nofile    64000
*          hard    nofile    64000

認証の有効化 2.4系の設定が散乱しているようですが2.6系以降は以下の設定を行うようです。
$ sudo vi /etc/mongod.conf

security:
  authorization: "enabled"

未ログイン時
$ mongo

> db.system.users.find()
Error: error: {
        "ok" : 0,
        "errmsg" : "not authorized on test to execute command { find: \"system.users\", filter: {} }",
        "code" : 13
}

ログイン成功時
$ mongo admin -u admin -p

MongoDB shell version: 3.2.10
Enter password:
connecting to: admin
> db.system.users.find()
{ "_id" : "admin.admin", "user" : "admin", "db" : "admin", "credentials" : { "SCRAM-SHA-1" : { "iterationCount" : 10000, "salt" : "****************", "storedKey" : "****************", "serverKey" : "****************" } }, "roles" : [ { "role" : "userAdminAnyDatabase", "db" : "admin" } ] }