3
2

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.

mLabが使えなくてつまった件(solved!)

Last updated at Posted at 2017-03-10

ローカルからサーバー公開用に移すのは億劫だ
大体設定とかいろいろ詰まるに決まっている
今回もそうだ。結局詰まる。
「mLabというmongoDBを使えるDaaS(?)がよい」
と書いてあったので、使ってみるがcloud9から繋がっていない様子。
herokuでデプロイは成功しているみたいだけれども
dbにつながらないから動いちゃくれない。
単純にcloud9からmLabのDBに「コレクションありますか~?」とかそんなことを聞きたいだけなのに
そこから、もう、繋がっていない感じ。
そもそもだけれど、heroku上のログとか調べてみたらわかる、という確信を書きながら思った。
ログが見れないとか、ないはず(たぶん)だから、もう一度、探してやってみよう。
なんかこういう詰まり方は楽しくないよなぁ。

追記:次の日

解決しました。

くそはまりどはまり先生(イミフ)でしたがなんとかできました。

mLabのmongoDBバージョンと、cloud9側のmongoDBバージョンが(だいたい)一致していないといけなかったみたいです。mongoDB自身のバージョンアップで動かないんですね。はい。

# monogo -version
で確認できます。

2.~.~系と3.~.~系を一緒に使うと「見る権限ないから!」と叱られるみたいです。はい。

じゃあ簡単ですね。cloud9上のmongoDBをバージョンアップさせればよいだけのはずですから。

えーと。たしかmongoDBのインストールのときもなかなかうまくいかずにいろいろやりましたよ、わたし。

# sudo apt-get install mongodb-org
これをやるとできましたよね。はい。
(参照:https://community.c9.io/t/solved-mongod-command-not-found/6517/2)
(「cloud9側の仕様?とかプレインストールの権利問題?とかでなんか入れなおさないとmongoDBが使えないとかなんとか」)

インストールにさえ苦労したのに、バージョンアップとか……
でもやってみれば案外簡単かも!(結構めんどうくさかったです。はい)

結論このページを参照しました!(http://tk2-207-13211.vs.sakura.ne.jp/2016/10/905/)
まずmongoDBをアンインストールして、
次に最新版をインストールする!

# suto apt-get autoremove mongodb-clients
→修正
# sudo apt-get autoremove mongodb-org

あと、公式のやつ(https://docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu/)を参照して順番にやるだけ。

cloud9上のターミナルでcloud9のubuntuバージョンを確認
# lsb_release -a
(参照:http://ubulog.blogspot.jp/2007/06/ubuntu.html)

なんどもmongoDBを入れたり外したりしてたので、
# mongod --smallfiles
でmongoを起動したら「mongo.lockが残ってるぞ、おいごら」ってしかられたりもしましたが、それも解決しました。

「mongo.lock* ファイル探して消して
# mongo --repair
したらええやん」
って書いてありました。
「よくある、よくある」とも。
(参照:https://www.mkyong.com/mongodb/old-lock-file-datadbmongod-lock-probably-means-unclean-shutdown/)

まとめ(?):

今回のくはまりどはまり先生の理由についてまとめてみる。

1.mLabという方の仕様をよく理解していなかった

→そんなもん、初めて触るんやからしょうがないやろ。と思いつつ、mLab自体はそんな複雑な仕様もなく、かなり簡単なつくりにはなっているようでしたが、「DBはいっこやで。コレクションはたくさんつくってもええけどな」的なつくり、っていうのは、すこしつまづきました。苦労して、バージョンアップを確認したのち、mLabで表示されているコードでやっとDBにつながったあと、DBにつながっているのかの確認で、
# [mongo] show dbs
って打ったら、「権限ないんじゃ、われぇ、でなおせ!」って叱られたからです。すこし焦りましたが、深呼吸一つ。
# [mongo] show collections
って打ったら、さーっと表示されました。
cloud9上にDBを置いてある場合はデータベースもコレクションも適当に作ったり、参照したりしていた身としては、「あーそうっかー」的な感じでした。まぁ、DBをたくさん扱って来た人にとってはDaaS(?)の仕様としては、当然なのかもしれませんが。
あとcollection毎にユーザーとかパスワードとか、設定してからじゃないと接続できない、ってこれは仕様というよりDBさわる人には常識(?)なのでしょうか。まぁ、どっちでもいいんですけど。

2.unix系という方の扱い

→設定とか環境構築とか面倒くさいし、意味不明だし(単なる勉強不足)、という感じで「環境構築すっ飛ばせる、cloud9すげぇぇぇぇ!」ってなってた私ですが、まぁ、当然、そこにunixやらlinuxやら、ubuntuやらでてきたら、「うげぇぇぇぇ!」ってなりますよね。
まぁ、でも少し触れたので今回わかったことを書いておきます。
# sudo apt-get ~~~(動詞) ~~~(目的語)
的な使い方でなんとかなる
# yum ~~~~~
は使えない、ということ(あほ)。
じつは前にほんのすこし(ほんとうにすこし)だけubuntuをさわったことがあって(なんで触っていたのかは覚えてない)、mkdirとか、rmとかvimとか(vimは開いたけど、慣れなくて、くそ面倒くさいのでそのままvimの閉じ方を検索した)まぁ、そこらへんが少しだけ役にたったかな、と。

所感

まぁ、一番つまるだろうなぁ、と思っていたところで、まぁ、結局つまったわけだけれども。
「mySQLとかpostgresSQLとか面倒くさそうだなぁ、mongoDBのほうがherokuでデプロイするのがかんたんそうだなぁ」と思ってやって、結局このはまりよう。乙。
ま、一番大きなつまりポイントを克服できたんじゃないだろうか、と勝手に思っている。

追記:地味ながら重要なことheroku上のログをみること
# heroku logs -t
(参照:http://qiita.com/pugiemonn/items/c4077958b480eb29878d )
とすること。cloud9の疑似ローカル環境とheroku上の本番(?)環境とはどうしても差異が生まれるので、そこのログをキャッチしないことには、このはまりは解決できなかった。書き終わった後になって「なんか書いてみると紆余曲折あんまりしてないなぁ」とか思ってたけど、herokuのログを見れる、ってことは地味ながら重要。重要。

3
2
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
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?