2012-04-22 7 views
0

MongoDBを使い慣れていません。私は2ヶ月前にそれを使い始めました。私は1つのウェブサイトのログ(ユーザーの動作)をテストすることにしました。最初にユーザー名とパスワードを使わずに。そしてそれは魅力のように働いた。私はadminのためにRockMongoを使用します。その後、ユーザー名とパスワードを作成してサーバーを再起動しました。再起動後、私のスクリプトはデータベースにデータを置くことができませんでした。しかし、私がRockmongoの設定を更新したときに、それを削除し、RockMongo経由で挿入/更新することができます。私はUbuntu 10でPHP5でMongoDBを使用しています。私のコードは のようになります:MongoDB PHP auth

$m = new Mongo(); 
    $db = $m->testlogs; 
    $db->authenticate('username', 'password'); 

シェルも使えません。

"$ errを": "不正デシベル:testlogsロックタイプ:-1クライアント:127.0.0.1"、 "コード":10057

どれでも私は 次のエラーを取得しています認証しようとすると助けに感謝します。

答えて

6

まず、特定のデータベースに接続する必要があります。 $ m-> testlogsにアクセスするだけではそれはできません。代わりに、あなたは最初の行として使用する必要があります。

$m = new Mongo('mongodb://localhost/testlogs'); 

そして、必要に応じて、あなたが行うことができます:あなたがドロップすることができます

$m = new Mongo('mongodb://username:[email protected]/testlogs'); 

- >認証()の呼び出しを。またhttp://php.net/manual/en/mongodb.authenticate.php のドキュメントは言う:

In general, you should use the authenticate built into Mongo::__construct() in preference to this method. If you authenticate on connection and the connection drops and reconnects during your session, you'll be reauthenticated. If you manually authenticated using this method and the connection drops, you'll have to call this method again once you're reconnected.

+0

Derickが、私は本当にあなたの助けに感謝します。ありがとう:) –

+0

これは現在 "遺産"です。新しいドライバを使用してください。 http://docs.php.net/manual/en/set.mongodb.php –