2020-05-16

在 Raspbian 安裝 MongoDB 的慘痛經驗 (廢文)

在 Raspbian 安裝 MongoDB 的慘痛經驗 (廢文)

由於 Raspberry Pi 4 model B 的 CPU ARMv7l 為 32 bit,所以只能安裝舊版的 MongoDB。若是網路架構,可以將 MongoDB 裝在別的主機或雲端,使用較新版本的 MongoDB。

在 Raspbian 中查看提供的 MongoDB 版本就好,不要安裝:

pi@raspberrypi:~ $ apt-cache policy mongodb mongodb: 已安裝:(無) 候選: 1:2.4.14-4 版本列表: 1:2.4.14-4 500 500 http://raspbian.raspberrypi.org/raspbian buster/main armhf Packages

只提供 2.4 的版本真的太老舊了,官方 drivers 都不支援了,真的別裝!

如果使用 MongoDB 3.2 以上是必要的那就請用 Ubuntu 20.04 LTS (64-bit),目前已經可以透過 Imager 安裝這個版本了。

以下是做個記錄,不要實作,在 Raspbian,MongoDB 3.2 和 3.0 32-bit 都無法執行,殘念。

支援 32-bit MongoDB 的最高版本 3.2.22,請參考這篇

可以透過瀏覽器到 MongoDB 官網下載中心 選取「Version 3.2.22」>「Linux 32-bit lagecy」>「TGZ」下載(拷備表單下的連結也可以)。

wget https://fastdl.mongodb.org/linux/mongodb-linux-i686-3.2.22.tgz # 下載 tar -zxvf mongodb-linux-i686-3.2.22.tgz # 解壓縮 sudo cp ./mongodb-linux-i686-3.2.22/bin/* /usr/bin/ # 複製檔案

設定啟動檔

wget https://raw.githubusercontent.com/mongodb/mongo/master/debian/init.d # 下載啟動檔 sudo mv init.d /etc/init.d/mongod # 移動檔案 sudo chmod 755 /etc/init.d/mongod # 變更屬性

建立設定檔 /etc/mongod.conf

storage: dbPath: /var/lib/mongo journal: enabled: true engine: mmapv1 systemLog: destination: file logAppend: true path: /var/log/mongodb/mongod.log processManagement: fork: true net: port: 27017 bindIp: 0.0.0.0

建立 mongodb 用戶

sudo useradd --home-dir /var/lib/mongo --shell /bin/false mongodb sudo passwd mongodb

建立存放資料的資料夾 /var/lib/mongo

# 存放資料庫資料 sudo mkdir /var/lib/mongo sudo chown -R mongodb /var/lib/mongo sudo chgrp -R mongodb /var/lib/mongo # 記錄檔 sudo mkdir /var/log/mongodb sudo chown -R mongodb /var/log/mongodb sudo chgrp -R mongodb /var/log/mongodb # pid sudo touch /var/run/mongod.pid sudo chown mongodb /var/run/mongod.pid sudo chgrp mongodb /var/run/mongod.pid

初始化服務:

sudo update-rc.d mongod defaults

最後重開機,然後還是不能執行。

沒有留言:

FB 留言