プログラミングとSEOと暇つぶし

駆け出しエンジニアdallPのブログです。元SEOコンサルタントです。プログラミング、SEO、アフィリエイト、お金などについて役に立つかもしれない情報をやりたいように書きます。

MeteorJSのMongoDBポートが分からずDBのGUIツールの設定に躓いた話

タイトル通りです。

普段の仕事ではMySQLクライアントのSequel Proを使っているのですが、同じ感じでRobo 3T(旧 Robomongo)を使いたいなと思ったわけです。

しかしこれまで自分で一から環境を作ったことなんてなく、会社の先輩にやってもらった or マニュアル通りの設定で業務をこなしていたので、いざとなるとRobo 3TをどうやってローカルのmongoDBに接続すれば良いのか分からず笑

調べたら別になんてことはなかったのですが、一応困る人もいるかもなのでこちらに書いときます。

検索するにあたって、「コレ知ってたらもっと早く答えにたどり着いたな」って情報から書いていきます。

そもそもクライアントとかGUIとか何なの

少なくともデータベースの文脈でクライアント(Client)とかGUIとかの単語が出てきた場合、それは「データベースを人に分かりやすい形で表示してくれるツール」のことを表しています。

この記事にたどり着いた方なら、すくなくともコマンドライン・ターミナルでローカルのDBをいじったことはあるのでは無いでしょうか。

慣れてる人ならそうでもないのかもしれないですが、やっぱコマンドラインからいろいろやるのはめんどくさいです。

なので、 f:id:dallP:20180210224137p:plain こんなかんじでデータベースを一覧表示してくれたり、画面から直接データベースの内容をいじれたりするとすごく幸せなわけです。

DBクライアント、DB GUIって例えばどんなのがあるの

メジャーなDBMSとそのGUIツールだけ書き出しときます。

RDBMS

MySQL

MySQL Workbench

MySQL :: MySQL Workbench

phpMyAdmin

phpMyAdmin

Sequel Pro

Sequel Pro

HeidiSQL

HeidiSQL - MySQL, MSSQL and PostgreSQL made easy

PostgreSQL

postico

Postico – a modern PostgreSQL client for the Mac

pgAdmin

pgAdmin - PostgreSQL Tools

psequel

PSequel, a PostgreSQL GUI Tool for macOS

SQLite

DB Browser for SQLite

DB Browser for SQLite

Base 2

Menial » Base 2

NoSQL

MongoDB

Robo 3T

Robo 3T - formerly Robomongo — native MongoDB management tool (Admin UI)

MongoDB Compass

MongoDB Compass | MongoDB

mongo-express

GitHub - mongo-express/mongo-express: Web-based MongoDB admin interface, written with Node.js and express

Redis

FastoRedis

FastoRedis - cross-platform client for Redis, supported main Redis database features like: modules, cluster, sentinel, ssh tunneling.

Keylord

Keylord - GUI manager for Redis, Memcached and LevelDB key-value databases

Medis

Medis - GUI Manager for Redis

そもそもローカルのDBに接続するには何の情報があれば良いのか

これ知らないとググりようが無いんですよね。 今回の場合だと、僕はMeteorで使ってるMongoDBの「ポート番号」が分からなくて困っていたんですが、ぱっとその名前が出てこなかった。 これが敗因です。

さておき、基本的にローカルホストのDBに接続する際には、ホストとポート番号だけ分かっていれば良いはずです。

ホスト

データベースが格納されているコンピュータです。 今回のケースで言うと、開発中のアプリケーションのデータベースなので、ホストは自分のパソコンです。 なのでホストは「ローカルホスト」ですね。

ただ、実稼働しているアプリケーションに関しては殆どの場合AWSさくらインターネットなどにデータベースを置いているのではないでしょうか。

その場合は、各データベースを置いてあるコンピュータのホスト名を入力する必要があります。

基本的にはホスト名はIPアドレス、もしくはドメイン名を指定します。

IPアドレスとは「183.79.135.206」のような文字列です。 ドメイン名とは「www.yahoo.co.jp」のような文字列です。

ドメイン名はIPアドレスを人間に分かりやすい言葉で表したものなので、見た目は違えど両者は同値です。

ためしに上記IPアドレスドメイン名をそれぞれブラウザのアドレスバーに入れてみて下さい。

ポート番号

ポート番号とは、ホストであるコンピュータが特定のデータをやり取りする際や特定のプログラムを動かす際に、その動作(プロセスといいます)に対して割り振っている番号のことです。

「このコンピュータのこの番号のプロセスを見ればデータベースの情報が取得できるよ」という感じです。

今回は、ローカルホストなのは分かっていても、MeteorのMongoDBがその中でどのポート番号を利用しているのかが分からなかったため困っていた、というわけです。

MeteorのMongoが使ってるポート番号は結局なんなの

やっと本題に入れました笑

目的のポート番号はおそらく人によって異なりますが、確認の方法はあります。

まずはターミナルで、開発中のmeteorプロジェクトのディレクトリに移動して、meteorを立ち上げましょう。

meteor run

そうしたら、新しいターミナルのウィンドウを立ち上げて、そちらでも同じプロジェクトのディレクトリに移動し、下記のコマンドを打ちましょう。

meteor mongo

すると、下記のような情報が表示されるかと思います。

MongoDB shell version: 3.2.15
connecting to: 127.0.0.1:3001/meteor
meteor:PRIMARY>

この「connecting to」の部分が、ローカルのmongoDBが接続している先ですね!

127.0.0.1がローカルホストのIPアドレス、3001がローカルのポート番号です。

僕の場合は3001で動いていますが、これは人によって違うようなので、必ずご自分で確認して下さい。

なお、Meteorのドキュメントを読む限りでは、meteorそのものが使用しているポート番号 + 1がmongoDBに割り振られるようです。

ちなみに、meteor mongoコマンドについてはMeteorのコマンドガイドに記載がありました。わかんねーよ笑


今回はこれまでです。

基礎知識無いとググるのも一苦労ですね。

参考

qiita.com

kumaweb-d.com

blog.44uk.net

qiita.com

akiyoko.hatenablog.jp

eng-entrance.com