1. ホーム
  2. データベース
  3. モンゴルディーブ

Aliクラウドサーバーにmongodbを導入する詳細な流れ

2022-01-19 17:09:47

Aliクラウドでサーバーを購入し、mongodbをデプロイしたところ、いくつかの落とし穴に遭遇し、その解決策をネットから集めたので、その断片的な記録をまとめてみました。

サーバーは Alibaba Cloud Linuxです。

ダウンロードとインストール

mongodbの公式サイトはダウンロードが遅すぎるため、以下のAliミラーからインストールします。 Ali MongoDb ミラー

yumでインストールする

mongodb-org.repoファイルを/etc/yum.repos.dディレクトリに追加します。

cd /etc/yum.repos.d
vim mongodb-org.repo
 
[mogodb-org]
name=MongoDB Repository
baseurl=http://mirrors.aliyun.com/mongodb/yum/redhat/7Server/mongodb-org/4.0/x86_64/
gpgcheck=0
enabled=1

vimコマンド:は、(新規)ファイルを編集するためのコマンドで、編集を終了する際に esc を入力し、次に :wq ファイルを終了してください。linuxのコマンドに不慣れな方は、Xftpなどを使って直接アップロードすることも可能です。
baseurlを使用します。Aliミラーで to download the address その後、選択されたバージョンのmongodbによってリンク先が異なりますが、それ以外は変更する必要はありません。

yumでインストールする

yum -y install mongodb-org

yum: 上記で追加した .repo ファイルの baseurl アドレスからパッケージをダウンロードするための linux コマンドです。 -y は、インストール時の確認作業を省くためです。

設定方法

インストールが完了したら、mongodbを設定するための設定ファイルを見つけてください。

rpm -qla | grep mongod.conf	

設定ファイルの修正

vim /etc/mongod.conf
 
# mongod.conf
systemLog:
  destination: file
  logAppend: true
  path: /var/log/mongodb/mongod.log # Log file directory
 
# Where and how to store data.
storage:
  dbPath: /var/lib/mongo # Data directory
  journal:
    enabled: true
# engine:
# mmapv1:
# wiredTiger:
 
# how the process runs
processManagement:
  fork: true # fork and run in background
  pidFilePath: /var/run/mongodb/mongod.pid # location of pidfile
  timeZoneInfo: /usr/share/zoneinfo
 
# network interfaces
net:
  port: 27017 # port
  # modify ip
  bindIp: 0.0.0.0 # Default here is 127.0.0.1, change to 0.0.0.0

主な変更点:bindIp 値を 0.0.0.0 に変更し、外部ネットワークからアクセスできるようにしました。
linuxのコマンドに慣れていない場合は、Xftpツールで直接ファイルを選択し、右クリックで編集することができます

実行する

/etc/init.d フォルダーにブートスクリプトを追加します。

mongod
cd /etc/init.d
vim mongod
	 
EXEC=/usr/bin/mongod 
CONF=/etc/mongod.conf
LOCKFILE=/var/lock/subsys/mongod
RETVAL=0
case "$1" in
    start)
        echo -n $"Starting mongod: "
        $EXEC -f $CONF
        RETVAL=$?
        echo
        [ $RETVAL -eq 0 ] && touch $LOCKFILE
        ;;
    stop)
        echo -n $"Stopping mongod: "
        $EXEC -f $CONF --shutdown
        RETVAL=$?
        echo
        [ $RETVAL -eq 0 ] && rm -f $LOCKFILE
        ;;
    restart)
        ${0} stop 
        ${0} start
        ;;
    *)
        echo "Usage: /etc/init.d/mongod {start|stop|restart}" >&2
        exit 1
esac

# Get file permissions
chmod +x /etc/init.d/mongodb

実行権限

service mongod start

スタート

service mongod stop

停止

service mongod restart

再スタート

# Stop the service
service mongod stop
# Remove the installed packages
yum erase $(rpm -qa | grep mongodb-org)
# Delete data and logs
rm -rf /var/log/mongodb
rm -rf /var/lib/mongo

アンインストール

/etc/mongod.conf

を確認する

オープンポート
mongodbのデフォルトのポートは27017で、これは設定ファイル # View the processes of mongodb ps aux | grep mongod #Shut down the process based on the result of the pid query kill -9 pid を確認することができます。
AliCloudバックエンドでは、ファイアウォールによってポートが開放されています。

ブラウザアクセス
ip:27017 アクセス

トラブルシューティング

異常終了時にプロセスを手動でシャットダウンする
システムの異常終了により、起動に失敗した場合、終了しないプロセスがある可能性があります。

/etc/mongod.conf

mongod.lockとdiagnostic.dataのファイルが削除されます。

セルフスタートの失敗
mongodbが勝手に起動した場合は、設定ファイル /etc/mongod.conf をクリックして、fork 設定がオンになっているかどうかを確認します。

参考
CentOS7 mongodb4.0をAli Mirrorでインストールする。
mongodb 起動例外

今回はAliクラウドサーバーにmongodbを導入する詳細な手順について紹介しましたが、Aliクラウドサーバーにmongodbを導入する詳細については、Script Houseの過去記事を検索するか、以下の関連記事を引き続き閲覧してください。