mongodb使用:安装、修复服务、账号鉴权访问、增删改查
标签搜索

mongodb使用:安装、修复服务、账号鉴权访问、增删改查

litery
2024-07-15 / 48 评论 / 215 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2024年08月15日,已超过264天没有更新,若内容或图片失效,请留言反馈。

一、windows部分

下载mongo安装包,一路默认安装。

输入指令:
mongos --version
结果:
mongos version v7.0.11
Build Info: {
    "version": "7.0.11",
    "gitVersion": "f451220f0df2b9dfe073f1521837f8ec5c208a8c",
    "modules": [],
    "allocator": "tcmalloc",
    "environment": {
        "distmod": "windows",
        "distarch": "x86_64",
        "target_arch": "x86_64"
    }
}

下载图形版操作工具 Mongodb Compass

MongoDB Compass Download (GUI)

由于mongo4.4以后不提供shell工具,需在官网下载mongo shell工具

MongoDB Shell Download

安装mongo服务后,使用Compass连接数据库

连接字符串:

mongodb://localhost:27017/

也就是说默认情况下,mongodb不用户名/密码方式就能访问。
需要安全访问的话,就要使用鉴权模式,创建用户了。

注意!!!! 有些教程教你用命令sc delete mongo 从windows删掉mongo服务,是大雷。
删了mongo服务后,再新建mongo服务会踩不少坑,且服务不一定能正常运行。
别问我怎么知道的,因为我踩过!!!

避雷: 为什么windows无法启动MongoDB Server位于本地计算机上?

假设你误信了乱七八糟教程,删了服务,最好的办法是使用mongo安装包,选择repair修复,
能帮你重新安装服务,且保证数据库里的东西不丢失。
lymn0wy2.png

创建数据库角色

打开mongo shell工具
输入命令: show users
默认下,结果为 [],空的。
输入命令:

db.createUser({
  user: "user",
  pwd: "pwd",
  roles: [{ role: "root", db: "admin" }]
})

创建一个超级管理员账号,拥有对mongo数据库的完全使用权限。
再输入命令: show users
输出结果:

[
  {
    _id: 'admin.admin',
    userId: UUID('e81f0a3d-8bf9-476a-bcf0-***************'),
    user: 'user',
    db: 'admin',
    roles: [ { role: 'root', db: 'admin' } ],
    mechanisms: [ 'SCRAM-SHA-1', 'SCRAM-SHA-256' ]
  }
]

说明创建用户成功。

mongo切换为鉴权模式

使用文本编辑器打开mongod.cfg配置文件
我的路径在C盘,想修改,需要用管理员模式运行文本编辑器
C:\Program Files\MongoDB\Server\7.0\bin\mongod.cfg

mongod.cfg 实际上是个YAML文件

修改security项

#security改为

security:
authorization: enabled

重启数据库服务

管理员模式运行windows的CMD,输入命令:

net stop mongodb
net start mongodb

鉴权应该就生效了。
打开mongo shell工具,要求输入连接字符串,格式如:

mongodb://user:pwd@localhost:27017/?authSource=admin

用户名密码正确的话,界面显示内容:

Current Mongosh Log ID: 6694baea6d50046330c4e49a
Connecting to: mongodb://<credentials>@localhost:27017/?authSourc>e=admin&directConnection=true&serverSelectionTimeoutMS=2000&appName=mongos>h+2.2.12
Using MongoDB: 7.0.11
Using Mongosh: 2.2.12

表示授权模式用户名密码访问mongo数据库成功。

创建数据库、创建集合、简单增删改查在 第三部分 说明。

二、linux部分

云盘分享安装文件

注意,我是在alibaba cloud linux3云主机上安装mongo,其它linux机器未验证!!

1. 添加 MongoDB YUM 仓库

首先,确保已经添加了 MongoDB 的 YUM 仓库:

sudo vi /etc/yum.repos.d/mongodb-org-5.0.repo

在文件中添加以下内容:

[mongodb-org-5.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/8/mongodb-org/5.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-5.0.asc

2. 单独安装 MongoDB 服务器和 shell

使用以下命令单独安装 MongoDB 服务器和 shell:

sudo yum install -y mongodb-org-server mongodb-org-shell

3. 验证安装

安装完成后,启动 MongoDB 服务并验证安装:

sudo systemctl start mongod
sudo systemctl enable mongod
mongo --eval 'db.runCommand({ connectionStatus: 1 })'

验证成功输出内容:

MongoDB shell version v5.0.28
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("959716fd-1d66-4665-9620-2fc8cb96ec99") }
MongoDB server version: 5.0.28
{
        "authInfo" : {
                "authenticatedUsers" : [ ],
                "authenticatedUserRoles" : [ ]
        },
        "ok" : 1
}

输入mongo通过shell工具连接到mongodb。
退出shell,输入 exitctrl+d

4.创建管理员角色

创建一个超级管理员账号,拥有对linux下的mongo数据库的完全使用权限。
输入

db.createUser({
  user: "admin",
  pwd: "mongo",
  roles: [{ role: "root", db: "admin" }]
})

输出

Successfully added user: {
        "user" : "admin",
        "roles" : [
                {
                        "role" : "userAdminAnyDatabase",
                        "db" : "admin"
                }
        ]
}

表示创建成功

5.更改配置,以鉴权模式访问

nano /etc/mongod.conf

同windows,#security改为
security:
  authorization: enabled

重启mongo服务(start、stop、restart)

sudo systemctl restart mongod

查看服务状态

sudo systemctl restart mongod

退出服务状态查看界面
q
如果服务异常如下所示:

mongod.service - MongoDB Database Server
   Loaded: loaded (/usr/lib/systemd/system/mongod.service; enabled; vendor pre>
   Active: failed (Result: exit-code) since Tue 2024-07-16 14:39:58 CST; 2min >
     Docs: https://docs.mongodb.org/manual
  Process: 48630 ExecStart=/usr/bin/mongod $OPTIONS (code=exited, status=2)
 Main PID: 48630 (code=exited, status=2)

需要注意security项修改对不对,符不符合YAML语法,特别是子项下的两个空格缩进。

输入mongo连不上服务,status=14

 mongod.service - MongoDB Database Server
   Loaded: loaded (/usr/lib/systemd/system/mongod.service; enabled; vendor pre>
   Active: failed (Result: exit-code) since Tue 2024-07-16 15:21:55 CST; 40s a>
     Docs: https://docs.mongodb.org/manual
  Process: 48848 ExecStart=/usr/bin/mongod $OPTIONS (code=exited, status=14)
 Main PID: 48848 (code=exited, status=14)

需要检查并删除套接字文件: 有时,旧的套接字文件会导致 MongoDB 无法启动。

sudo rm /tmp/mongodb-27017.sock

解析conf文件是否有错误

mongod --config /etc/mongod.conf

查看mongo 最近的50条日志

tail -n 50 /var/log/mongodb/mongod.log

服务正常启动的话,通过命令访问:

mongo -u "admin" -p "mongo" --authenticationDatabase "admin"

进来后,查看数据库

> show dbs
admin   0.000GB
config  0.000GB
local   0.000GB

至此,windows和linux下mongodb都能正常访问了。

6. 远程访问linux下的mongo服务

使用 firewalld 来管理防火墙规则。以下是如何开放 MongoDB 端口 27017 的步骤:

启动 firewalld 服务:

sudo systemctl start firewalld

设置防火墙规则:

sudo firewall-cmd --zone=public --add-port=27017/tcp --permanent

重新加载防火墙规则:

sudo firewall-cmd --reload

检查防火墙状态:
确保端口已成功开放:

sudo firewall-cmd --list-ports

绑定 IP 地址:
确保 MongoDB 配置文件中绑定了正确的 IP 地址。在 /etc/mongod.conf 中设置 bindIp 为 0.0.0.0 以允许所有 IP 地址访问:

net:
  port: 27017
  bindIp: 0.0.0.0

阿里云控制台中配置安全组规则,允许 27017 端口的入站流量

登录阿里云管理控制台。
找到你的云服务器实例,进入其管理页面。
在左侧导航栏中选择“安全组”。
找到要修改的安全组,点击“配置规则”。
在访问规则中添加 27017 端口的入方向规则。

telnet 目标ip 27017,进去的话表明可以访问27017端口了。

用mongodb compass工具在授权模式下访问即可。

7.其他注意事项

  • 兼容性:Alibaba Cloud Linux 3 基于龙蜥社区(OpenAnolis)的龙蜥操作系统(Anolis OS),全面兼容 RHEL/CentOS 8生态。
  • 配置文件:MongoDB 的配置文件路径为 /etc/mongod.conf,日志文件路径为 /var/log/mongodb/mongod.log,数据文件路径为 /var/lib/mongo。

三、mongodb操作数据库

yuanbill> db.bill.countDocuments()
68
yuanbill> db.bill.countDocuments({_id:74})
1
yuanbill> db.bill.find({_id:74})
0

评论 (48)

取消
  1. 头像
    dkcxkhlgak
    Windows 10 · Google Chrome

    博主真是太厉害了!!!

    回复
  2. 头像
    gueaddffhb
    Windows 10 · Google Chrome

    叼茂SEO.bfbikes.com

    回复
  3. 头像
    haucjfsfis
    Windows 10 · Google Chrome

    不错不错,我喜欢看

    回复
  4. 头像
    khrputdoqi
    Windows 10 · Google Chrome

    想想你的文章写的特别好

    回复
  5. 头像
    baesghhncq
    Windows 10 · Google Chrome

    叼茂SEO.bfbikes.com

    回复
  6. 头像
    zcczajrwby
    Windows 10 · Google Chrome

    叼茂SEO.bfbikes.com

    回复
  7. 头像
    qvokespijm
    Windows 10 · Google Chrome

    想想你的文章写的特别好https://www.237fa.com/

    回复
  8. 头像
    rgjqqsmmcj
    Windows 10 · Google Chrome

    看的我热血沸腾啊www.jiwenlaw.com

    回复
  9. 头像
    fznvezhvlw
    Windows 10 · Google Chrome

    不错不错,我喜欢看 www.jiwenlaw.com

    回复
  10. 头像
    ntlegqhnfq
    Windows 10 · Google Chrome

    鲁大师蓝月传奇官网攻略:https://501h.com/yuanshi/8916.html

    回复
  11. 头像
    cqqqpmlroa
    Windows 10 · Google Chrome

    《外滩520》国产动漫高清在线免费观看:https://www.jgz518.com/xingkong/118706.html

    回复
  12. 头像
    jqrbugrbzw
    Windows 10 · Google Chrome

    《我的左手右手》国产剧高清在线免费观看:https://www.jgz518.com/xingkong/37633.html

    回复
  13. 头像
    iozcenhiyt
    Windows 10 · Google Chrome

    真棒!

    回复
  14. 头像
    peilqxkxrq
    Windows 10 · Google Chrome

    真好呢

    回复
  15. 头像
    kuqohzedgl
    Windows 10 · Google Chrome

    《我家徒弟又挂了》国产剧高清在线免费观看:https://www.jgz518.com/xingkong/34536.html

    回复
  16. 头像
    goafjnxout
    Windows 10 · Google Chrome

    《车轴》剧情片高清在线免费观看:https://www.jgz518.com/xingkong/135155.html

    回复
  17. 头像
    xspcbhzslq
    Windows 10 · Google Chrome

    《一名母亲的三重死亡》记录片高清在线免费观看:https://www.jgz518.com/xingkong/2970.html

    回复
  18. 头像
    hkvbyveoxf
    Windows 10 · Google Chrome

    《W-两个世界(马来西亚版)》海外剧高清在线免费观看:https://www.jgz518.com/xingkong/25085.html

    回复
  19. 头像
    sarxfxyfav
    Windows 10 · Google Chrome

    《我家徒弟又挂了》国产剧高清在线免费观看:https://www.jgz518.com/xingkong/34536.html

    回复
  20. 头像
    uujoamkxai
    Windows 10 · Google Chrome

    《开心的八月》剧情片高清在线免费观看:https://www.jgz518.com/xingkong/73265.html

    回复
  21. 头像
    sgwqbbmeui
    Windows 10 · Google Chrome

    《唐璜2022》剧情片高清在线免费观看:https://www.jgz518.com/xingkong/96428.html

    回复
  22. 头像
    ycmlqbagez
    Windows 10 · Google Chrome

    《车轴》剧情片高清在线免费观看:https://www.jgz518.com/xingkong/135155.html

    回复
  23. 头像
    npxpvbtzfz
    Windows 10 · Google Chrome

    《白狼勇士》剧情片高清在线免费观看:https://www.jgz518.com/xingkong/61805.html

    回复
  24. 头像
    fnlemqzdew
    Windows 10 · Google Chrome

    《一名母亲的三重死亡》记录片高清在线免费观看:https://www.jgz518.com/xingkong/2970.html

    回复
  25. 头像
    knpvahmffv
    Windows 10 · Google Chrome

    《唐璜2022》剧情片高清在线免费观看:https://www.jgz518.com/xingkong/96428.html

    回复
  26. 头像
    lzqgmygdtf
    Windows 10 · Google Chrome

    《车轴》剧情片高清在线免费观看:https://www.jgz518.com/xingkong/135155.html

    回复
  27. 头像
    yfsrjpnzqi
    Windows 10 · Google Chrome

    《一名母亲的三重死亡》记录片高清在线免费观看:https://www.jgz518.com/xingkong/2970.html

    回复
  28. 头像
    zkslxpuzng
    Windows 10 · Google Chrome

    《W-两个世界(马来西亚版)》海外剧高清在线免费观看:https://www.jgz518.com/xingkong/25085.html

    回复
  29. 头像
    iexiutlrnt
    Windows 10 · Google Chrome

    《白狼勇士》剧情片高清在线免费观看:https://www.jgz518.com/xingkong/61805.html

    回复
  30. 头像
    cbrjogyjpo
    Windows 10 · Google Chrome

    《一名母亲的三重死亡》记录片高清在线免费观看:https://www.jgz518.com/xingkong/2970.html

    回复
  31. 头像
    ilgzlrwpde
    Windows 10 · Google Chrome

    《W-两个世界(马来西亚版)》海外剧高清在线免费观看:https://www.jgz518.com/xingkong/25085.html

    回复
  32. 头像
    vyajlabhge
    Windows 10 · Google Chrome

    《白狼勇士》剧情片高清在线免费观看:https://www.jgz518.com/xingkong/61805.html

    回复
  33. 头像
    murejwboxw
    Windows 10 · Google Chrome

    《远大前程双龙会》国产剧高清在线免费观看:https://www.jgz518.com/xingkong/103550.html

    回复
  34. 头像
    ratykpnzdj
    Windows 10 · Google Chrome

    《你追我赶2010》剧情片高清在线免费观看:https://www.jgz518.com/xingkong/123289.html

    回复
  35. 头像
    tahgqedvdo
    Windows 10 · Google Chrome

    《失控危机》剧情片高清在线免费观看:https://www.jgz518.com/xingkong/159187.html

    回复
  36. 头像
    rzxqvbtzaw
    Windows 10 · Google Chrome

    《杀手迷情》剧情片高清在线免费观看:https://www.jgz518.com/xingkong/130925.html

    回复
  37. 头像
    jrvccphbuh
    Windows 10 · Google Chrome

    《白种元的小巷餐厅》日韩综艺高清在线免费观看:https://www.jgz518.com/xingkong/150667.html

    回复
  38. 头像
    xtbgxjvgoh
    Windows 10 · Google Chrome

    《川味第四季》记录片高清在线免费观看:https://www.jgz518.com/xingkong/20110.html

    回复
  39. 头像
    zbjhgfmenb
    Windows 10 · Google Chrome

    《惊世媳妇》日本剧高清在线免费观看:https://www.jgz518.com/xingkong/31275.html

    回复
  40. 头像
    zqggftopyn
    Windows 10 · Google Chrome

    《毛驴县令之草鞋公主》喜剧片高清在线免费观看:https://www.jgz518.com/xingkong/52281.html

    回复
  41. 头像
    oauowjdlft
    Windows 10 · Google Chrome

    哈哈哈,写的太好了https://www.lawjida.com/

    回复
  42. 头像
    bgybcwhibc
    Windows 10 · Google Chrome

    案例丰富且贴合主题,论证逻辑环环相扣。

    回复
  43. 头像
    akqtncevxb
    Windows 10 · Google Chrome

    每一个段落都紧密相连,逻辑清晰,展现了作者高超的写作技巧。

    回复
  44. 头像
    lppmolydzc
    Windows 10 · Google Chrome

    终极关怀的缺失可尝试补充升华。

    回复
  45. 头像
    sxaiqezfac
    Windows 10 · Google Chrome

    悬念设置恰到好处,牢牢抓住读者注意力。

    回复
  46. 头像
    tecfnfbgnx
    Windows 10 · Google Chrome

    每一个段落都紧密相连,逻辑清晰,展现了作者高超的写作技巧。

    回复
  47. 头像
    dkacndwmda
    Windows 10 · Google Chrome

    文章紧扣主题,观点鲜明,展现出深刻的思考维度。

    回复
  48. 头像
    kpwjkslukr
    Windows 10 · Google Chrome

    这篇文章如同一首动人的乐章,触动了读者内心深处的柔软。

    回复