CentOS7にmongodbをインストールする

ここ最近mongodbを使ったWebサイトを構築しました。 今回はmongodbのセットアップについての内容をまとめました。

yumでインストール

mongodb公式のyumリポジトリが公開されているのでそちらを利用します。 最初に下記ファイルを作成し、リポジトリの情報を追加します。

/etc/yum.repos.d/mongodb.repo

[mongodb]
name=MongoDB Repository
baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/x86_64/
gpgcheck=0
enabled=1

yumでインストールします。

$ yum install --enablerepo=mongodb mongodb-org

自動起動の設定をONに設定した上で、mongodbのサービスを起動します。

$ sudo systemctl enable mongod
$ sudo systemctl start mongod

認証設定

まず最初に管理用ユーザを追加します。

> use admin
> db.createUser(
  {
    user: "myUserAdmin",
    pwd: "password",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
  }
)

※user,pwdの項目は適切な値をセットしてください。

設定ファイルを変更し、ユーザ認証をONに設定します。

/etc/mongod.conf

auth=true

サービス再起動し、ユーザ認証を有効化します。

$ sudo service mongod restart

データベースごとにユーザを追加

先ほど作成した管理ユーザでログインし、ユーザを追加するDBに移動し、createUserを実行します。 データベースを作成していない状態であれば、『use データベース名』を打ち込んだ時点でデータベースが作成されます。

$ mongo admin -u myUserAdmin -p PASSWORD 
> use test
> db.createUser(
  {
    user: "myUserAdmin",
    pwd: "password",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
  }
)

ユーザ認証を行っていなくてもCLIにアクセスできるので紛らわしいですが、 認証通っていない状態であればコマンドを打ち込んでもエラーになります。