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
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 に以下を記述して、サーバーを起動します。
auth=true
ユーザーを指定してデータベースに接続する
mongo
コマンドでデータベースに接続する際に、パラメータを指定して実行します。
mongo -u <ユーザー名> -p <パスワード> --authenticationDatabase <データベース名>
また、対象のデータベースに接続してから db.auth()
メソッドで認証を行うこともできます。
use <データベース名>
db.auth("<ユーザー名>","<パスワード>")