Ubuntu 20.04 中的 MongoDB 3.4

Posted

技术标签:

【中文标题】Ubuntu 20.04 中的 MongoDB 3.4【英文标题】:MonogDB 3.4 in Ubuntu 20.04 【发布时间】:2021-03-15 13:33:44 【问题描述】:

在生产应用程序中,我们使用的是 MongoDB 3.4 版本。我在本地机器上安装了 ubuntu 20.04 LTS,并尝试安装 Mongo 3.4 并撞到墙上。请让我知道你的想法。这是我的步骤:

apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6
echo "deb http://repo.mongodb.com/apt/ubuntu "$(lsb_release -sc)"/mongodb-enterprise/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-enterprise-3.4.list
sudo apt-get update
sudo apt-get install -y mongodb-org 

【问题讨论】:

【参考方案1】:

嗯,我只是用一种更“手工”的方式来做这件事……

从这里下载应用程序:https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.4.24.tgz (它是,让我们从 mongodb 页面调用 vanila 版本)

在 /opt 上解压缩:

tar zxf mongodb-linux-x86_64-3.4.24.tgz -C /opt/

短名称的符号链接:

ln -s /opt/mongodb-linux-x86_64-3.4.24 /opt/mongo

为 mongo 创建了用户:

useradd -r mongod

然后添加systemctl命令:

echo "[Unit]
Description=High-performance, schema-free document-oriented database
After=network.target

[Service]
User=mongod
ExecStart=/usr/bin/mongod --quiet --config /etc/mongod.conf

[Install]
WantedBy=multi-user.target" > /etc/systemd/system/mongod.service

重新加载systemctl:

systemctl daemon-reload

然后创建 /etc/mongod.conf,内容如下:

# mongod.conf

# for documentation of all options, see:
#   http://docs.mongodb.org/manual/reference/configuration-options/

# Where and how to store data.
storage:
  dbPath: /opt/mongo/database/
  journal:
    enabled: true
#  engine:
#  mmapv1:
#  wiredTiger:

# where to write logging data.
systemLog:
  destination: file
  logAppend: true
  path: /var/log/mongod.log

# network interfaces
net:
  port: 27017
#  bindIp: 127.0.0.1


#processManagement:

#security:

#operationProfiling:

#replication:
#  replSetName: "mongodb-keys-replica-set"

#sharding:

## Enterprise-Only Options:

#auditLog:

#snmp:

然后启动服务:

systemctl start mongod

根据需要调整配置和目录路径。

它有效,是一个为那个 ubuntu 版本的旧版本手工制作的解决方案。不会使用 apt-get 或相关更新...但可以正常工作。

如果在本地,出于测试目的,使用 docker 映像可能不是一个坏主意...但只是一个建议,而不是您问题的答案。

【讨论】:

【参考方案2】:

以上答案是正确的,但不要忘记:

    创建目录和文件,更改所有者

    mkdir /opt/mongo/database
    touch /var/log/mongod.log
    
    chown mongod:mongod /var/log/mongod.log
    chown -R mongod:mongod /opt/mongodb-linux-x86_64-3.4.24
    chown mongod:mongod /opt/mongo
    

    以root身份执行这部分,mongo的链接错误,应该如下:

    echo "[Unit]
    Description=High-performance, schema-free document-oriented database
    After=network.target
    
    [Service]
    User=mongod
    ExecStart=/opt/mongo/bin/mongod --quiet --config /etc/mongod.conf
    
    [Install]
    WantedBy=multi-user.target" > /etc/systemd/system/mongod.service
    

【讨论】:

【参考方案3】:

这似乎没有简单的方法,因为官方文档本身说对于版本 3.4,唯一受支持的 ubuntu 版本是 16.04 和 14.04 (https://docs.mongodb.com/v3.4/tutorial/install-mongodb-on-ubuntu/)。

我尝试了ignivs的上述步骤,但每次都遇到这个错误:

无法启动 mongod.service:未找到单元 mongod.service。

【讨论】:

以上是关于Ubuntu 20.04 中的 MongoDB 3.4的主要内容,如果未能解决你的问题,请参考以下文章

在 Ubuntu 20.04 上安装 Mongodb 的问题

在 Ubuntu 20.04 上无法连接到 mongodb,连接被拒绝

Ubuntu20.04 通过 apt 方式安装 mongoDB

ubuntu20.04部署mongodb

IllegalOperation:尝试在 ubuntu 20.04 的只读目录 MongoDB 上创建锁定文件

非法指令(核心转储)mongodb Ubuntu 20.04 LTS