官网教程:https://www.mongodb.com/docs/manual/
本次安装环境如下:
| 程序 | 版本 |
|---|---|
| MongoDB | 7.0.6 |
| Mongosh | 2.1.4 |
下载
https://www.mongodb.com/try/download/community
配置环境变量:
C:\Program Files\MongoDB\Server\7.0\bin
创建数据库存放目录:
C:\data\db
下载方式一:
在服务端版本中,自带powershell下载脚本: InstallCompass.ps1
https://www.mongodb.com/download-center/community/releases
下载方式二:
https://www.mongodb.com/try/download/shell

wget https://fastdl.mongodb.org/osx/mongodb-macos-x86_64-7.0.6.tgz tar -zxvf mongodb-linux-x86_64-rhel70-7.0.6.tgz mv mongodb-linux-x86_64-rhel70-7.0.6 mongodb cd mongodb 将MongoDB服务添加到 service 启动
https://github.com/mongodb-js/mongosh/releases
tar -zxvf mongosh-2.1.4-linux-x64.tgz mv mongosh-2.1.4-linux-x64 mongosh vim /etc/profile export PATH=/usr/local/mongodb/mongodb/bin:$PATH export PATH=/usr/local/mongodb/mongosh/bin:$PATH source /etc/profile 原创:有勇氣的牛排
https://www.couragesteak.com/article/458
mkdir -p /usr/local/mongodb/{db, log} chmod 777 /usr/local/mongodb/* vim /usr/local/mongodb/mongodb.conf systemLog: destination: file logAppend: true path: "/usr/local/mongodb/log/mongod.log" storage: dbPath: "/usr/local/mongodb/db" processManagement: fork: true pidFilePath: "/usr/local/mongodb/mongod.pid" timeZoneInfo: "/usr/share/zoneinfo" net: port: 27017 bindIp: 0.0.0.0 security: authorization: enabled 启动
mongod --config /usr/local/mongodb/mongodb.conf 关闭
mongod -f /usr/local/mongodb/mongodb.conf --shutdown 查看进程
ps -ef | grep mongodb 
检查端口
netstat -tunlp | grep mongo 
kill进程(不推荐)
kill -9 进程号 MongoDB 内置命令
db.shutdownServer() 创建普通用户mongo(禁用登录),运行mogod服务端
# 创建一个名为 "mongo" 的用户组,-g 777 指定组标识符(GID)为 777 groupadd mongo -g 777 # 创建一个属于 "mongo" 用户组的用户 "mongo" # -g 777 指定主组为 "mongo",-M 表示不创建用户的主目录 # -s /sbin/nologin 指定用户登录时使用的Shell为 /sbin/nologin,通常用于服务账号 useradd mongo -g 777 -M -s /sbin/nologin # 查看用户 "mongo" 的详细信息,包括用户标识符(UID)、组标识符(GID)等 id mongo vim /etc/systemd/system/mongodb.service [Unit] Description=mongodb After=network.target remote-fs.target nss-lookup.target [Service] Type=simple ExecStart=/usr/local/mongodb/mongodb/bin/mongod --config /usr/local/mongodb/mongodb.conf ExecReload=/bin/kill -s HUP $MAINPID ExecStop=/usr/local/mongodb/mongodb/bin/mongod --config /usr/local/mongodb/mongodb.conf --shutdown PrivateTmp=true [Install] WantedBy=multi-user.target 目录授权
sudo chown -R mongo:mongo /usr/local/mongodb/* 重载配置文件
systemctl daemon-reload 启动并且设置开机启动
systemctl start mongodb 关闭
systemctl stop mongodb 查看启动状态
systemctl status mongodb 设置永久开机自启
systemctl enable mongodb 必须永久生效
vim /etc/rc.d/rc.local echo "never" > /sys/kernel/mm/transparent_hugepage/enabled echo "never" > /sys/kernel/mm/transparent_hugepage/defrag 添加执行权限
chmod +x /etc/rc.d/rc.local 规则如下:
mongo ip:port/数据库 -u 用户名 -p 密码 案例
# 无用户验证 mongosh 192.168.56.20:27017 # 用户验证 mongosh 192.168.56.20:27017 -u cs_admin -p 123456 
程序连接
mongodb://:@node1:27017,node2:27017,node3:27017/?replicaSet=myReplicaSet 然后,在 MongoDB shell 中执行以下命令创建一个管理员用户(确保替换 和 为实际的用户名和密码):
use admin db.createUser({ user: "cs_admin", pwd: "123456", roles: [{ role: "userAdminAnyDatabase", db: "admin" }] }) 启动
mongod --config /usr/local/mongodb/mongodb.conf 关闭
mongod -f /usr/local/mongodb/mongodb.conf --shutdown vim docker-compose.yml version: '3' services: mongo-express: image: mongo-express environment: - ME_CONFIG_MONGODB_SERVER=mongo # 指定 MongoDB 服务器的主机名(这是 MongoDB 容器的服务名称) ports: - "8081:8081" depends_on: - mongo mongo: image: mongo ports: - "27017:27017" version: '3' services: mongo-express: image: mongo-express environment: - ME_CONFIG_MONGODB_SERVER=mongo # 指定 MongoDB 服务器的主机名(这是 MongoDB 容器的服务名称) ports: - "8081:8081" 启动
docker-compose up -d 创建超级用户
db.createUser({user:"admin",pwd:"123456",roles:[{role:"userAdminAnyDatabase",db:"admin"},{role:"readWriteAnyDatabase",db:"admin"}]}) // readWriteAnyDatabase:只在admin数据库中可用,赋予对应用户所有数据库的读写权限 // userAdminAnyDatabase:只在admin数据库中可用,赋予对应用户所有数据库的userAdmin权限 db.auth("admin","123456") 创建新数据库
use cs_tool db.test.insert({}) 切换到数据库 cs_tool,创建一个读写用户
db.createUser({user:"user_B",pwd:"123456",roles:[{role:"readWrite",db:"cs_tool"}]}) use 数据库名 
创建数据库后,只有有数据库后,库才会生成
show dbs test> show dbs test # 登录时默认的库 admin 132.00 KiB # 系统预留库,Mongodb的系统管理库,如停止数据库进程,需进到这里 config 108.00 KiB # 本地预留库,存储关键日志 local 256.00 KiB # 配置信息库,保存如分片的信息 相当于:show tables;
show collections db.dropDatabse() 5.2 创建集合、插入数据
db.user.insertOne({name: "cs", age: "20", id: 1}) **Soft rlimits for open file descriptors too low**
vim /etc/security/limits.conf * soft nofile 64000 * hard nofile 64000 
sudo sysctl -w vm.max_map_count=262144 为了使这个更改永久生效,您可以将其添加到 /etc/sysctl.conf 或 /etc/sysctl.d/ 下的一个文件中。
echo "vm.max_map_count=262144" | sudo tee -a /etc/sysctl.conf