mongodb 下载安装

一、下载
mongodb 在4.4及以后的版本中,把mongo shell 这个客户端单独作为一个项目拆分出来了,所以安装时需要下载两个安装包,即服务端和客户端,在4.4之前的版本,只需要下载一个安装包即可,该安装包里既包含服务端又包含客户端。
1.1、mongdb 服务端下载
下载地址:https://www.mongodb.com/try/download/community



选择对应的版本和操作系统然后下载即可,如下图
注意:这里选择tgz包下载

旧版本在这里下载

1.2、mongo shell 下载

二、安装
1、创建相关目录,并上传两个安装包
# 安装包上传目录
mkdir -p /opt/software/mongodb

# 配置文件目录
mkdir /etc/mongod-cnf

# 数据和系统日志目录
mkdir -p /opt/software/mongodb/{data,log}

2、创建账号并授权
useradd mongod
chown -R mongod:mongod /opt/software/mongodb
chown -R mongod:mongod /etc/mongod-cnf

3、配置mongod账号的sudo权限
visudo
mongod  ALL=(ALL)       NOPASSWD: ALL
然后保存退出即可

4、下载依赖包
sudo yum install libcurl openssl xz-libs

5、配置文件句柄数
vim /etc/security/limits.conf
root soft nofile 655350
root hard nofile 655350
mongod soft nofile 655350
mongod hard nofile 655350

然后退出窗口重新登录即可生效
查看命令:
ulimit -a

6、关闭防火墙
systemctl stop firewalld
systemctl disable firewalld

7、确保SElinux不是enforcing(强制执行)模式
getenforce
如果 SELinux 已被禁用,该命令将输出 Disabled,默认一般都是关闭的。

# 以下步骤切换到mongod账号下执行
8、解压安装包
[mongod@ob9 mongodb]$ cd /opt/software/mongodb
[mongod@ob9 mongodb]$ tar -zxvf mongodb-linux-x86_64-rhel70-6.0.16.tgz
[mongod@ob9 mongodb]$ tar -zxvf mongosh-2.2.15-linux-x64.tgz
[mongod@ob9 mongodb]$ mv mongodb-linux-x86_64-rhel70-6.0.16 mongodb-6.0.16
[mongod@ob9 mongodb]$ mv mongosh-2.2.15-linux-x64 mongosh-2.2.15

9、配置环境变量
[mongod@ob9 mongodb]$ vim ~/.bash_profile 
PATH=$PATH:$HOME/.local/bin:$HOME/bin:/opt/software/mongodb/mongodb-6.0.16/bin:/opt/software/mongodb/mongosh-2.2.15/bin
[mongod@ob9 mongodb]$ source ~/.bash_profile 

10、编辑配置文件
cat > /etc/mongod-cnf/mongodb.conf << EOF 
systemLog:
   destination: file
   ###日志存储位置
   path: /opt/software/mongodb/log/mongod.log
   logAppend: true
storage:
   ##journal配置,类似mysql的redo
   journal:
      enabled: true
   ##数据文件存储位置
   dbPath: /opt/software/mongodb/data
   ##是否一个库一个文件夹
   directoryPerDB: true
   ##数据引擎
   engine: wiredTiger
   ##WT引擎配置
   wiredTiger:
      engineConfig:
         ##WT最大使用cache(根据服务器实际情况调节)
         cacheSizeGB: 4
         ##是否将索引也按数据库名单独存储
         directoryForIndexes: true

##端口配置
net:
   port: 27017
   bindIpAll: true
processManagement:
   fork: true
   pidFilePath: /opt/software/mongodb/data/mongod.pid
   
##复制集配置
##replication:
##oplog大小
##oplogSizeMB: 2000
##复制集名称
##replSetName: rs01

# 此处第一次需要是关闭状态(否则启动后由于没有默认用户名密码,会导致无法在外部连接),在设置好用户名密码后再开启安全验证然后重启mongodb
security:
    authorization: disabled ## enabled
    #clusterAuthMode: keyFile
    #keyFile: /data1/mongodb/27017/keyFile/mongo.key
##服务器参数配置    
#setParameter:
#	<parameter1>: <value1>
EOF

11、启动mongodb
[mongod@ob9 mongodb]$ mongod -f /etc/mongod-cnf/mongodb.conf 

# 查看是否启动
ps -ef |grep mongodb

12、创建管理员账号,注意此时尚未开启身份验证
# 连接mongdb
mongosh --host=192.168.167.160 --port=27017
连进去默认是test库,要切换到admin库
test> use admin
switched to db admin
admin> db.createUser({user: "root",pwd: "111111",roles: ['root']})
{ ok: 1 }

13、修改配置文件并重启
# 把数据库的身份验证开关打开
security:
    authorization: enabled ## disabled
# 关闭mongod服务
mongod  --shutdown  --dbpath /opt/software/mongodb/data/
# 启动mongodb
mongod -f /etc/mongod-cnf/mongodb.conf

# 连接命令
mongosh --host 192.168.167.160 --port 27017 --authenticationDatabase admin -u root -p 111111
三、一个小技巧
启动时,mongosh 会检查mongodb运行用户的 HOME 目录中是否有名为 .mongoshrc.js 的 JavaScript 文件。 如果找到此文件,mongosh 会在首次显示提示之前加载 .mongoshrc.js 的内容。如下所示:
su - mongod
vim ~/.mongoshrc.js
{
   let cmdCount = 0;

   const hostnameSymbol = Symbol('hostname');
   prompt = () => {
      if (!db[hostnameSymbol])
         db[hostnameSymbol] = db.serverStatus().host;
      return (cmdCount++) + " " + `${db.getName()}@${db[hostnameSymbol]}:${db.adminCommand("getCmdLineOpts").parsed.net.port}>`;
   };
}

# 则mongo shell 连接后看到的是下面这样的
[mongod@ob9 mongodb]$ mongosh --host=192.168.167.160 --port=27017 -u root -p 111111
1 test@ob9:27017>

解释:
数字1表示行号
test@ob9:27017,库名@主机名:端口号
posted @   有形无形  阅读(43)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示