LoginSignup
18
16

More than 5 years have passed since last update.

Homebrew で macOS に MongoDB を爆速で導入する手順

Last updated at Posted at 2019-01-26

概要

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

以下の記述を、設定ファイルの末尾に直接追記する

/usr/local/etc/mongod.conf
:
# 認証機能を使用しない場合, 下記をコメントアウト
security:
  authorization: enabled

設定後、MongoDB 再起動

# MongoDB サービス再開
brew services start mongodb

コレで認証設定も完了。mongo コマンドで入ることはできても、検索や登録・更新などを行うと認証エラーの記述が表示される。

mongo -u ユーザID -p パスワード -authenticationDatabase admin で mongo に入るか、
mongo で入った後に use admindb.auth("管理者のID", "パスワード") を実行して中でログインすると、
問題なく検索・登録・更新などが行える。

前者のやり方は、サーバでコマンドログの記録などを行なっている場合は、推奨されない。(パスワード情報が履歴に残っちゃうので)

以上で、MondoDB の構築から認証設定まで完了。

18
16
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
16