MonogoDB
様々な分野で使用するカレンダを統一的に扱おうと、各プロジェクトのカレンダや予定表部分だけRESTfulサービスにしようとしています。このRESTサーバにはMonogoDBを使います。
MonogoDBはSQLを使わないデータベース、いわゆるNoSQLの代表格です。現在作成しているスケジューラでは、スピードを稼ぐためスケジュールのJSONファイルを毎回出力しており、それならMongoDBでもあまり変わらないだろうと思い、初めてNoSQLを使ってみることにしました。
まずはMongoDBのインストール。公式ドキュメントで見ると、repoファイルは自前で書かないと望んだバージョンがインストールできないとのこと。ドキュメントに従ってrepoファイルを作成します。
sudo vi /etc/yum.repos.d/mongodb-org-4.0.repo [mongodb-org-4.0] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.0/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc
作成したら、いつものようにyumを使いインストールします。
sudo yum install -y mongodb-org
SELinuxの利用の状況により、MongoDBの動作に影響を与えます。インストールマシンはSELinuxを有効にしています。
$ getenforce Enforcing
この場合は、MongoDBの利用するポートを開放します。
sudo semanage port -a -t mongod_port_t -p tcp 27017
SELinuxは扱いが面倒なのでdisabledにしがちですが、できる限り有効にしていたほうが無難です。
既にMongoDBを利用できる環境にありますので、早速実行してみます。
sudo service mongod start
さらに、再起動時に自動起動できるようにしておきます。
sudo systemctl enable mongod
私自身が初心者ですので、MongoDBがどのようなものか、mongo shellを起動してみました。
mongo --host localhost:27017 MongoDB server version: 4.0.1 Server has startup warnings: 2018-08-05T21:01:54.685+0900 I CONTROL [initandlisten] 2018-08-05T21:01:54.685+0900 I CONTROL [initandlisten] ** WARNING: Access control is not enabled for the database. ...
何やら警告がでていますが、今は対応が分からないので無視しときます。色々メッセージが出てきますが、最終的にはプロンプトが表示されていますので、利用可能なようです。
試しに、現在のデータベースを確認します。
> db test
testはMongoDBのデフォルトのデータベースです。
shellを抜けるにはquit()コマンドを使います。
> quit()
実際の利用については、もう少し探ってから書くことにします。