概要
Homebrew で macOS に MongoDB を超簡単に導入する手順の備忘録。
前提
2019年1月1日時点の情報です。また、以下の環境になっている前提です。
- OS: macOS Mojave (10.14.2)
- Homebrew: v1.9.3
MongoDB を導入
homebrew でインストール
brew install mongodb
インストールはコレで終わり。
インストール中にエラーが出る場合
ほとんどの場合、権限エラーによるものなので、権限が無いと怒られたディレクトリに対して全て以下のコマンドを打てば良い。
sudo chown -R $(whoami) /usr/local/該当するディレクトリ
例: sudo chown -R $(whoami) /usr/local/Frameworks
必要があれば、 sudo
で必要なディレクトリなど作ってから行う。
確認
バージョン確認コマンドを利用して、入ったか確認
mongod -version
起動
brew services start mongodb
コレで、MondoDB が利用可能となる。
mongo
と打てばインタラクティブモードで MongoDB を実行できる。
管理ユーザ作成と認証機能有効化
管理ユーザ登録
# MongoDB に入る
mongo
# admin データベースに接続する。
use admin
# 管理ユーザを登録
db.createUser({user:"admin", pwd:"Zaq12wsx", roles:[{role:"root", db:"admin"}]})
# ユーザの存在確認
db.getUsers()
# もしくは以下でもユーザ確認できる (パスワードはハッシュ化されているので文字列になっている)
db.system.users.find()
管理ユーザ登録時は以下に注意
- user: 管理者 ID を適当に決めてください(任意)。上記は一例。
- pwd: 適当なパスワードを決めてください(任意)。上記は一例。
- roles: 上記に記載のとおりに書いてください(固定)
MongoDB 認証有効化 (その1)
# 一度 MongoDB から抜ける
exit
# 認証・認可を有効にして再起動
mongod --auth --dbpath /usr/local/var/mongodb
MongoDB 認証有効化 (その2)
その1 の認証付き再起動コマンドがエラーでうまくいかない場合は、こちらで試してください。
# 一度 MongoDB から抜ける
exit
# 一度 MongoDB サービスを停止
brew services stop mongodb
# 設定ファイルを編集 (sudo 不要でできるならそれで OK)
sudo vi /usr/local/etc/mongod.conf
以下の記述を、設定ファイルの末尾に直接追記する
:
# 認証機能を使用しない場合, 下記をコメントアウト
security:
authorization: enabled
設定後、MongoDB 再起動
# MongoDB サービス再開
brew services start mongodb
コレで認証設定も完了。mongo
コマンドで入ることはできても、検索や登録・更新などを行うと認証エラーの記述が表示される。
mongo -u ユーザID -p パスワード -authenticationDatabase admin
で mongo に入るか、
mongo
で入った後に use admin
→ db.auth("管理者のID", "パスワード")
を実行して中でログインすると、
問題なく検索・登録・更新などが行える。
前者のやり方は、サーバでコマンドログの記録などを行なっている場合は、推奨されない。(パスワード情報が履歴に残っちゃうので)
以上で、MondoDB の構築から認証設定まで完了。