Ubuntu 14.04 に MongoDB 3.x をインストール
ubuntu mongodb
Published: 2015-10-07

ちょっとしたことでMongoDBを使ってみたいと思ったので、
Ubuntu 14.04にMongoDB 3.0.6を入れてみます。

環境

  • Host: Ubutu 14.04

前提条件とか

この記事を書いているタイミングで、MongoDB 3.0.6が最新でした。
そのためMongoDB公式のインストール手順にそってインストールしてみます。

{USERNAME}とか{PASSWORD}、{YOUSR_IP_ADDRESS} は、皆さんの環境に合わせてください。

インストール

公開鍵の設定 / setting for public key

$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10

MongoDB用のリストファイルを作成 / create list file for mongodb

$ echo "deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.0.list

更新 / apt-get update

$ sudo apt-get update

MongoDB (Stable) インストール / Installing stable mongodb

$ sudo apt-get install -y mongodb-org

MongoDB サービスの操作 / Manage for mongodb service.

# Start service
$ sudo service mongod start

# Stop service
$ sudo service mongod stop

# Restart service
$ sudo service mongod restart

ユーザ・パスワードでの認証を行う / Setting for authentication.

管理者ユーザ認証を追加 / add administrator user.

$ mongo
> use admin
> db.createUser( {user: "{USERNAME}", pwd: "{PASSWORD}", roles: [ "readWrite", "dbAdmin" ]});
$ sudo vi /etc/mongod.conf

# authのコメントを外す
- #auth = true
+ auth = true

# MongoDB 再起動
$ sudo service mongod restart

ログインしないと怒られるのを確認 / response is error when you not authenticating

$ mongo
> use admin
> show collections
2015-10-07T01:49:43.481+0900 E QUERY    Error: listCollections failed: {
	"ok" : 0,
	"errmsg" : "not authorized on admin to execute command { listCollections: 1.0 }",
	"code" : 13
}
    at Error (<anonymous>)
    at DB._getCollectionInfosCommand (src/mongo/shell/db.js:646:15)
    at DB.getCollectionInfos (src/mongo/shell/db.js:658:20)
    at DB.getCollectionNames (src/mongo/shell/db.js:669:17)
    at shellHelper.show (src/mongo/shell/utils.js:625:12)
    at shellHelper (src/mongo/shell/utils.js:524:36)
    at (shellhelp2):1:1 at src/mongo/shell/db.js:646

認証してアクセス / access after authenticating.

$ mongo
> db.auth("{USERNAME}", "{PASSWORD}");
1 #これが認証成功らしい / 1 is authticated.
> show collections
system.indexes
system.users
system.version

MongoDB 外部接続許可 (必要がある場合のみ) / ufw and config settings, if you use extarnal servers.

$ sudo vi /etc/mongod.conf
---
- bind_ip = 127.0.0.1
+ bind_ip = 127.0.0.1,{YOUSR_IP_ADDRESS} #your server IPAddresses
---

$ sudo service mongod restart

$ sudo ufw allow 27017/tcp
$ sudo ufw reload

client $ mongo {YOUSR_IP_ADDRESS[:PORT]}
db.auth("{USERNAME}", "{PASSWORD}");

さいごに

ファイル監視ログように使おうと思ってただけだけど、
これはこれで便利そうなのでいじってみよう。

最近Golangばかりさわってるのでそこからかな…