28
38

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Windows で MongoDB を動かすメモ

Posted at

MongoDB をインストールする

インストーラの取得

公式サイトから msi 形式のファイルをダウンロードして、インストールします。
https://www.mongodb.com/download-center?jmp=nav#community

インストールしたら

MongoDBのインストールされているフォルダーの下にある bin フォルダにパスを通しておきます。
例) C:\Program Files\MongoDB\Server\3.2\bin

binフォルダの中に mongodb.config を作成してデータベースの保存場所を指定します。
例) c:\mongodb\data

mongodb.config
dbpath=c:\mongodb\data

mongodb.config で指定したディレクトリを作成しておきます。

mkdir c:\mongodb\data

サーバーを起動する

コマンドプロンプトから mongod を実行します。実行する際は、 --config パラメータに先ほど作成した mongodb.config のパスを指定します。 もし、パスにスペースが含まれている場合は " で囲ってあげてください。

mongod --config "C:\Program Files\MongoDB\Server\3.2\bin\mongodb.config"

サーバーを停止したい場合は、サーバーを実行しているコマンドプロンプトで Ctrl + c で停止することができます。

実行中のサーバーのシェルに接続する

サーバーを実行したコマンドプロンプトとは別のコマンドプロンプトを起動して

mongo

を実行します。

サーバーとの接続を切断する場合は exit コマンドを使います。

exit

また、サーバーに接続している場合は以下のコマンドでサーバーを停止することができます。

use admin
db.shutdownServer()

サーバーを停止する場合は admin データベースに接続している必要があります。データベースへの接続や切り替えは use コマンドに接続したいデータベース名を指定して実行します。

use  <データベース名>

また、サーバーと接続するときにデータベース名を指定すると、指定したデータベースに接続した状態でサーバーに接続できます。

mongo <データベース名>

認証の有効化

認証を有効化したい場合は以下の操作を行います。

ユーザーの作成

ユーザーを作成したいデータベースに接続し、 'db.createUser()' メソッドを実行します。

例) 全てのデータベースに対してユーザーの追加が可能な管理者

use admin
db.createUser({
  user: "<ユーザー名>",
  pwd: "<パスワード>",
  roles: [
      { role: "userAdminAnyDatabase", db: "admin" },
  ]
})

例) 指定したデータベースに対して読書きが可能なユーザー

use <データベース名>
db.createUser({
  user: "<ユーザー名>",
  pwd: "<パスワード>",
  roles: [
      { role: "readWrite", db: "<データベース名>" },
  ]
})

例) ルートユーザー

use admin
db.createUser({
  user: "<ユーザー名>",
  pwd: "<パスワード>",
  roles: [ "root" ]
})

パスワードの変更

パスワードを変更したいユーザーが登録されているデータベースに接続し、db.changeUserPassword() メソッドを実行します。

use sample
db.changeUserPassword("<ユーザー名>", "<パスワード>")

ユーザーの削除

削除したいユーザーが登録されているデータベースに接続し、db.removeUser() メソッドを実行します。

db.dropUser("<ユーザー名>")

登録されているユーザーの確認

admin データベースに接続して、 db.system.users.find() メソッドを実行します。

use admin
db.system.users.find()

認証ありでサーバーを起動する

mongodb.config に以下を記述して、サーバーを起動します。

mongodb.config
auth=true

ユーザーを指定してデータベースに接続する

mongo コマンドでデータベースに接続する際に、パラメータを指定して実行します。

mongo -u <ユーザー名> -p <パスワード> --authenticationDatabase <データベース名>

また、対象のデータベースに接続してから db.auth() メソッドで認証を行うこともできます。

use <データベース名>
db.auth("<ユーザー名>","<パスワード>")
28
38
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
28
38

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?