質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.36%
MongoDB

MongoDBはオープンソースのドキュメント指向データベースの1つです。高性能で、多くのリトルエンディアンシステムを利用することができます。

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

Express

ExpressはNode.jsのWebアプリケーションフレームワークです。 マルチページを構築するための機能セットおよびハイブリッドのWebアプリケーションを提供します。

Q&A

解決済

1回答

6015閲覧

Centos6.6 mongo-expressが動きません

RayNavarro

総合スコア18

MongoDB

MongoDBはオープンソースのドキュメント指向データベースの1つです。高性能で、多くのリトルエンディアンシステムを利用することができます。

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

Express

ExpressはNode.jsのWebアプリケーションフレームワークです。 マルチページを構築するための機能セットおよびハイブリッドのWebアプリケーションを提供します。

0グッド

0クリップ

投稿2016/03/06 09:35

編集2016/03/06 09:55

最近LAMP環境から
MEAN stackに変えたんですが
mongo dbがよくわからなくて
GUIツールのmongo-expressを導入しましたが
エラー?がでて使えません
対処法分かる人いたら教えて下さい

mongo-express下で
node app をすると

下記のように出ます

Welcome to mongo-express

basicAuth credentials are "admin:pass", it is recommended you change this in your config.js!
Mongo Express server listening on port 8081 at localhost
Database connected
Connecting to db...
{ [MongoError: Authentication failed.]
name: 'MongoError',
message: 'Authentication failed.',
ok: 0,
code: 18,
errmsg: 'Authentication failed.' }
Could not authenticate to database "db"
Database db connected

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

エラー errmsg: 'Authentication failed.' の意味は「Mongo DBのデータベースの認証に失敗しました」です。

mongo-express の README を軽く読んでみましたが、使う前に Mongo DB と mongo-express の両方に、多少の設定が必要なようです。

  1. MongoDB でデータベース(DB)を作成して、そのDBに認証情報(ユーザーとパスワード)を設定する
  2. mongo-express の設定ファイルを作成して、DBの名前と、認証情報を設定する

1については、ネットで「mongodb ユーザ認証」などとすると、やり方を解説している記事が見つかると思いますので、そちらを参照してください。

2は、node_modules/mongo-express/config.default.js というサンプル設定ファイルがあるので、まず、それを node_modules/mongo-express/config.js にコピーします。そして config.js 内の以下の項目を、1で設定した内容に合わせて変更してください。

javascript

1 mongo = { 2 db: 'db', 3 host: 'localhost', 4 password: 'pass', 5 port: 27017, 6 ssl: false, 7 url: 'mongodb://localhost:27017/db', 8 username: 'admin', 9 };

投稿2016/03/07 14:08

tatsuya6502

総合スコア2046

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

RayNavarro

2016/03/08 08:07

回答ありがとうございます!! その通りにやってみたら Welcome to mongo-express ------------------------ basicAuth credentials are "admin:pass", it is recommended you change this in your config.js! Mongo Express server listening on port 8081 at localhost Database connected Connecting to sample... Database sample connected このように出てきて認証はできたと思うんですが サーバーのIPアドレスのポート番号8081にアクセスすると ERR_CONNECTION_REFUSEDが出てアクセスできません なにがダメなのかわかりません! もし分かれば対処法を教えて下さい!! ちなみに、mongoDBはさくらのvpsサーバに置いてあり 自分のメインpcからmongo-expressにアクセスしようとしています。
tatsuya6502

2016/03/10 14:18 編集

mongo-express に限らず、他のマシンからサーバーに接続できない時は、ほとんどの場合、以下の2つの原因のどちらかになります。 1. 該当のポート(8081)がファイアウォールでブロックされている 2. サーバーソフトが、特定のIPアドレス(例:127.0.0.1だけ)に届いたリクエストのみに応答するように設定されている。(bind address とか、listen address とかと呼びます) まず2について。mongo-express には、そのような機能は無さそうなので、今回は該当しないと思います。 1について、さくらの VPS は使ったことがないのですが、こちらを見ると、標準的OSがインストールされているサーバーでは、iptables を使用しているようです。 - https://help.sakura.ad.jp/app/answers/detail/a_id/2423/~/iptables%E3%81%AE%E8%A8%AD%E5%AE%9A%E6%96%B9%E6%B3%95 上記の手順に従って、8081 ポートの通信が許可されているかを確認し、もし、そうでなかったら、許可するように iptables の設定を変更してください(STEP 4-2)。
RayNavarro

2016/03/09 15:44

詳しく回答してもらってありがとうございます。 iptablesの設定で8081を許可しましたが メインPCのブラウザからはアクセスできませんでした。 ためしにmongo-expressで使うポート番号を8888に変えて それもiptablesで許可しましたがアクセス出来ませんでした。
tatsuya6502

2016/03/10 13:43 編集

ダメでしたか。では2の方を疑ってみますか。 ひょっとすると、以下の設定により、localhost の IP アドレス(127.0.0.1)だけを listen しているのかもしれません。つまり、今はサーバー上で、http://localhost:8081 にアクセスした時だけ、ページが表示されるのかも。 https://github.com/mongo-express/mongo-express/blob/bdae2cf53e56a0fa99a931dcb658c0c5f143e875/config.default.js#L83 ---------------------- host: process.env.VCAP_APP_HOST || 'localhost', ---------------------- 切り分けのために、サーバーに w3m という、テキストベースのウェブブラウザをインストール(sudo yum install w3m)して、それで、http://localhost:8081(または、http://localhost:8888)にアクセスしてみてはどうでしょうか? (サーバーに ssh 接続して、ターミナルから、w3m http://localhost:8888 と打って起動。qキーを押すと終了します) それでアクセスできるようなら、次に、同じくサーバー上で、w3m http://サーバーのIPアドレス:8081 を試す。もしダメなら、config.js で site: { host: ... } を 'localhost' から、'サーバーのIPアドレス' に変えてみてください。
RayNavarro

2016/03/10 15:00

siteの中のlocalhostをipアドレスに変えたらできました!! 最後まで付き合ってもらって本当に有難うございます!!!!! tatsuya6502さんの優しさに感動しました笑
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問