先日 ubuntu を 17.04 へアップデートしてしまい、インストールする時にしまったと思ったのですが、何も問題なかったので晒していきます。
インストールはここの 16.04 の方を参考にした。理由は 17.04(zesty) 用のリポジトリを未だに提供してないからです。(もし 17.04 用のリポジトリが提供されたら、17.04 専用のリポジトリから使うようにしてください。)
sudo apt update && sudo apt install -y mongodb-org
のあとに sudo systemctl start mongod
を行い、 mongo
で起動する。
$ mongo MongoDB shell version v3.4.3 connecting to: mongodb://127.0.0.1:27017 MongoDB server version: 3.4.3 Server has startup warnings: 2017-04-17T22:16:47.289+0900 I STORAGE [initandlisten] 2017-04-17T22:16:47.289+0900 I STORAGE [initandlisten] ** WARNING: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine 2017-04-17T22:16:47.289+0900 I STORAGE [initandlisten] ** See http://dochub.mongodb.org/core/prodnotes-filesystem 2017-04-17T22:16:48.496+0900 I CONTROL [initandlisten] 2017-04-17T22:16:48.496+0900 I CONTROL [initandlisten] ** WARNING: Access control is not enabled for the database. 2017-04-17T22:16:48.496+0900 I CONTROL [initandlisten] ** Read and write access to data and configuration is unrestricted. 2017-04-17T22:16:48.496+0900 I CONTROL [initandlisten] 2017-04-17T22:16:48.496+0900 I CONTROL [initandlisten] 2017-04-17T22:16:48.496+0900 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'. 2017-04-17T22:16:48.496+0900 I CONTROL [initandlisten] ** We suggest setting it to 'never' 2017-04-17T22:16:48.496+0900 I CONTROL [initandlisten] >
こんな感じで warnings が発生します。
2 つ目以降の warnings を潰すだけでなぜか全ての warnings が消えたのでその方法を書きます。
WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
これは以下のページを参考に行いました。
この後に sudo reboot
を行うと warnings が 1 個減っています。
WARNING: Access control is not enabled for the database.
mkdir /etc/mongod
openssl rand -base64 741 > /etc/mongod/mongodb-keyfile
chmod 600 /etc/mongod/mongodb-keyfile
chown mongodb.mongodb /etc/mongod/mongodb-keyfile
これが完了したら vim /etc/mongod.conf
以下を追記します。
security: keyFile: /etc/mongod/mongodb-keyfile
これで sudo systemctl restart mongod
管理ユーザの作成
admin データベースにユーザを管理する権限を追加しておきましょう。
user
、pwd
は各自修正してください。
> use admin switched to db admin > db.createUser({user:"YOURUSERNAME",pwd:"PASSWORD",roles:[{role:"userAdminAnyDatabase",db:"admin"}]}) Successfully added user: { "user" : "YOURUSERNAME", "roles" : [ { "role" : "userAdminAnyDatabase", "db" : "admin" } ] }
そのあと
vim /etc/mongod.conf
security: keyFile: /etc/mongod/mongodb-keyfile authorization: enabled
へ変更しておきましょう。 詳しくは以下の記事を参考にするといいです。
後から助かる設定
Ubuntu Firewall を使用している場合、mongodb サーバーのためにポートを許可しておかなければいけません。
ufw allow 27017
また、ubuntu を起動した時に自動で mongodb を起動したいという場合は
sudo systemctl enable mongod
を行っておきましょう。