啊,算是这个大坑的最后一篇了吧
前一篇是关于编译的,在 Raspberry Pi 4 上安装 64-bit MongoDB Server 服务
那么在编译完之后,就是安装这个服务了~由于编译时绝大部分是静态链接的,因此上一篇编译出来之后,MongoDB Server r4.2.1 的体积在 2.2GB 左右,emmmmm,有点大。。总之,因为几乎都是静态链接,所以可以做个清洁安装~
首先把编译好的 build/opt/mongo/mongod
复制到电脑上,然后那那张 MicroSD 卡(或者另一张都行)重刷一下 Raspbian 系统,这里可以参考另一篇博客:Setup the Raspberry Pi 4
重刷完 Raspbian 之后,SSH 到树莓派上,新的 Raspbian 系统已经自带 64-bit 的 kernel8.img
了,所以可以直接在 /boot/config.txt
里加上
arm_64bit=1
然后关掉树莓派,顺便把刚才复制到电脑上的 mongod
放进 MicroSD 卡里,可以放到 rootfs/home/pi
下面~
接着把 MicroSD 卡插回树莓派,开机就可以有 64-bit 的内核了,接下来就是准备给 MongoDB Server 创建一个 chroot 环境了
就可以有 64-bit 的内核了,接下来就是准备给 MongoDB Server 创建一个 chroot 环境了
sudo apt install -y debootstrap schroot apt-transport-https cat << EOF | sudo tee /etc/schroot/chroot.d/mongod [mongod] description=MongoDB Server arm64 type=directory directory=/srv/chroot/mongod users=pi root-groups=root profile=desktop personality=linux preserve-environment=true EOF sudo debootstrap --arch arm64 buster /srv/chroot/mongod https://mirrors.tuna.tsinghua.edu.cn/debian
唯一没有静态链接的是 libcurl
和 openssl
,因此需要在这个 chroot 环境中安装一下~
sudo schroot -c mongod -- apt install -y libcurl4-openssl-dev
随后给 MongoDB Server 创建数据库的目录,并且设置好读写权限
sudo schroot -c mongod -- mkdir -p /data/db sudo schroot -c mongod -- chown pi:pi /data/db sudo schroot -c mongod -- chmod 755 /data/db
接着把编译好的 mongod
复制到 chroot 的环境里,并且赋予可执行权限
sudo mv ~/mongod /srv/chroot/mongod/usr/local/bin/ sudo schroot -c mongod -- chmod +x /usr/local/bin/mongod
最后就是设置一下 systemd 的服务,让 MongoDB Server 每次可以随树莓派开机自动启动~
先创建一个对应的 service 文件
cat << EOF | sudo tee /etc/systemd/system/mongod.service [Unit] Description=MongoDB Server (arm64) After=network.target [Service] ExecStart=/usr/bin/schroot -c mongod -- mongod --bind_ip=0.0.0.0 Restart=always User=pi Type=exec [Install] WantedBy=multi-user.target EOF
然后启动它就可以啦~
sudo systemctl enable mongod.service sudo service mongod start
可以使用如下命令来查看服务状态
sudo service mongod status