可以选择rpm包,二进制或源码编译

二进制安装相对于rpm包安装更灵活,也更便于自动化部署,因此线上部署建议基于二进制部署

  • 系统版本 : centos 7.7

  • mongodb版本:4.2.3

1. 下载安装包

从官网下载最新版(目前是4.2.3)

https://www.mongodb.com/download-center/community

选择版本,平台和包类型

【mongo系列】一、mongo安装_第1张图片

2. 创建用户

安全起见,每个服务最好都用自己单独的用户启动

useradd mongo
echo "mongo" | passwd --stdin mongo

3. 安装mongo

  1. 解压到安装目录

    tar -xzvf mongodb-linux-x86_64-rhel70-4.2.3.tgz -C /usr/local/
  2. 改个名字或建个软连接,方便我们自己使用

    cd /usr/local/
    mv mongodb-linux-x86_64-rhel70-4.2.3 mongodb
  3. 修改属主

    chown mongo:mongo mongodb/ -R
  4. 修改环境变量加入PATH路径

    • 若允许所有用户都可以使用mongo命令则在/etc/profile中加入如下行,然后执行source /etc/profile生效

    • 若仅允许mongo用户使用mongo则切换到mongo用户,在mongo用户家目录中的.bash_profile文件中加入如下行,然后source ~/.bash_profile生效
    export PATH=/usr/local/mongodb/bin:$PATH
  5. 创建mongo数据目录

    mkdir -p /data/mongo/{data,log}
    chown mongo:mongo -R /data/mongo

4. 启动

启动时使用mongo用户启动su - mongo

  • mongo可以用命令行直接启动,把配置参数等作为命令行参数直接启动,如下:
mongod --dbpath "/data/mongo/data" --logpath "/data/mongo/log/mongo.log" --fork

参数较多,较长时使用命令行参数不太直观,也不利于多人维护,建议使用配置文件方式

  • 配置文件启动

    1. 新建配置文件/data/mongo/mongo.conf写入以下内容

      dbpath=/data/mongo/data                # 数据存储路径
      logpath=/data/mongo/log/mongo.log      # 日志存储路径
      fork=true                              # 后台启动
      port=27017                             # 端口
    2. 启动

      mongod -f /data/mongo/mongo.conf

若启动失败查看/data/mongo/log/mongo.log日志解决

默认mongo在前台启动,窗口关闭后就会终止,fock参数把mongo以守护进程方式在后台运行

5. 验证

使用mongo用户

mongo命令进入mongo shell(会有些warning信息,不用管它)

[mongo@localhost ~]$ mongo
MongoDB shell version v4.2.3
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("e9039c32-9394-46f6-82a8-6c02e725e4e9") }
MongoDB server version: 4.2.3
...
...
...
> 
> 
# 查看database
> show dbs
admin   0.000GB
config  0.000GB
local   0.000GB
> 
# 切换库(mongo中库不存在可以use进去)
> use test
switched to db test
# 插入一条测试记录{a:1}
> db.abc.insertOne({a:1})
{
    "acknowledged" : true,
    "insertedId" : ObjectId("5e67255872f3500db9054129")
}
# 查找刚才插入的记录
> db.abc.find()
{ "_id" : ObjectId("5e67255872f3500db9054129"), "a" : 1 }
> 

欢迎关注公众号,不定时更新运维技术文章
【mongo系列】一、mongo安装_第2张图片