コネクション

based on v10 (2010/07/18 追従)

MongoDBはデータベースサーバです。起動中、フォアグラウンドまたはバックグラウンドでユーザからのコネクションを待ちます。MongoDBを開始する場合には次のようにします。

~/$ ./mongod
# 
# some logging output
#
Tue Mar 9 11:15:43 waiting for connections on port 27017
Tue Mar 9 11:15:43 web admin interface listening on port 28017

ここで、出力は停止しますが、固まってしまったわけではありません。ポート27017で接続を待っています。ユーザが接続し、コマンドを送ると、何が起こっているか続けて表示します。MongoDBの driversMongoシュル などで、データベースに接続することができます。

ブラウザでの、 http://localhost:27017 への接続は できません 。このデータベースは HTTP 経由でのport 27017のアクセスは 受け付けていません

標準的な接続のためのフォーマット

このページで記述しているuriスキーマは、現在のところすべてのドライバではサポートされていません。ドライバのドキュメントを参照し、どのくらい標準化されたuriがサポートされているか確認してください。このフォーマットがサポートされていないドライバでは、独自の接続方法をサポートしています。

mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/database]
  • mongodb:// は、この書式が標準的な接続フォーマットであることを示すプレフィクスです。
  • username:password@ はオプションです。ドライバはデータベースに接続後ログインを試みます。
  • host1 は、URIの一部として必須です。接続先のサーバアドレスです。
  • :portX はオプションで、デフォルトでは27017です。
  • /database は、ログインするデータベース名です。 username:password@ が指定された場合のみ有効です。指定されていない場合には、"admin"データベースがデフォルトでは使われます。

必要に応じて複数のホストを指定でいます(replica pairs/sets 用)

ローカルで動いているサーバーにデフォルトのポートで接続。

 
mongodb://localhost 

接続し、ユーザ "fred" パスワード "foobar" でadminデータベースにログインします。

Connect and login to the admin database as user "fred" with password "foobar":

 
mongodb://fred:foobar@localhost 

接続し、ユーザ "fred" パスワード "foobar"で"baz"データベースに接続します。
Connect and login to the "baz" database as user "fred" with password "foobar":

 
mongodb://fred:foobar@localhost/baz 

example1.com と example2.com で、動いているreplica pairに接続します。

 
mongodb://example1.com:27017,example2.com:27017 

localhost(のポート 27017, 27018, 27019)の3つのサーバ上で動いているreplica setに接続します。

 
mongodb://localhost,localhost:27018,localhost:27019 

コネクションプーリング

サーバでは、1スレッド毎に1つのTCPコネクションが使われます。そのため、アプリケーションサイドで、コネクションプールをすることを強く推奨します。幸いにも、多くのドライバはこれを裏で行っています。明らかな例外は、アプリケーションがリクエストごとに新しいプロセスを作る場合です。CGIや、設定によってはPHPがこれにあたります。


Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.

IF YOU HAVE A QUESTION, POST IT TO THE USER GROUP.

These pages are fine for comments, but for questions, your best bet will always be the MongoDB User Group.

blog comments powered by Disqus