本机 MongoDB 注册系统服务、启用security认证

目录

一、注册系统服务。

[二、MongoDB 启用security(密码)认证。(Python)](#二、MongoDB 启用security(密码)认证。(Python))


一、注册系统服务。

  • Win+ R =》services.msc。若在服务中找不到 MongoDB 服务,MongoDB 可能是非服务方式安装的。也就可以通过手动设置与安装注册系统服务。

  1. 找到 mongod.exe 所在目录。通常是安装 MongoDB 时位于 /bin 目录下。
  2. 打开命令提示符(需管理员启动),进入到 /bin 目录下。
  3. 指定配置文件并安装对应的服务。其中 mongod.cfg 或 mongod.cong 是配置文件。
  4. 按顺序执行对应的命令即可。--serviceName 后面的参数可自定义。
bash 复制代码
d:

cd D:\mongodb\bin

mongod.exe --config "D:\mongodb\bin\mongod.cfg" --install --serviceName "MongoDB"

net start MongoDB
  • 若已经存在,可以先卸载,再重新注册即可。

    mongod.exe --remove --serviceName "MongoDB"

  • 完成上述操作后,如我自定义了服务名称:mongodb。

二、MongoDB 启用security(密码)认证。(Python)

  • 个人本地开发(非生产环境),建议无需配置密码。

  • 因为 MongoDB 配置文件中默认不对外暴露、其次省去每次连接输入密码。


  • 数据库需要对外网开放、存储敏感数据等情况时,建议配置密码。

  • 本机访问 MongoDB 简易配置密码操作如下。注意需提前安装对应 python 操作MongoDB 驱动包。

bash 复制代码
pip install pymongo
  • 默认连接本地 MongoDB 是无需密码即可连接,因为默认不开启密码认证。
python 复制代码
from pymongo import MongoClient

try:
    client = MongoClient("mongodb://localhost:27017/")   #默认无密码连接
    dbs = client.list_database_names()     #读取 MongoDB 中的所有数据库
    print(dbs)  #['admin', 'config', 'local']
except Exception as e:
    print(str(e))

  • 启用认证。
  1. 修改配置文件。取消注释 security ,并使用 authorization: enabled 开启认证。
  2. 停止正在运行的 MongoDB 服务,重新启动 MongoDB 服务,确保配置文件修改生效。
  3. 在 python 文件中写代码创建管理员、设置密码并赋予权限。
python 复制代码
from pymongo import MongoClient

try:
    client = MongoClient("mongodb://localhost:27017/")
    admin_db = client["admin"]  #admin数据库中创建管理员

    #创建管理员用户
    admin_db.command(
        "createUser",
        "root",  #user
        pwd="test123123",   #password
        roles=["root"]   #最高权限
    )
    print("管理员用户已创建")
    
except Exception as e:
    print(str(e))
  • 生效后。再执行之前的无密码连接就会提示验证失败:Command listDatabases requires authentication, full error: {'ok': 0.0, 'errmsg': 'Command listDatabases requires authentication', 'code': 13, 'codeName': 'Unauthorized'} 。
  • 只需创建 MongoDB 连接时带上用户名与密码即可。
python 复制代码
from pymongo import MongoClient

try:
    client = MongoClient("mongodb://root:test123123@localhost:27017/")  #启用security认证
    dbs = client.list_database_names()   #读取 MongoDB 中的所有数据库
    print(dbs)  #['admin', 'config', 'local']
    admin_db = client["admin"]  #选择admin数据库
    users_collection = admin_db["system.users"]  #获取系统用户集合
    root_user = users_collection.find_one({"user": "root"})   #获取root用户信息,返回单个文档
    print(root_user)
except Exception as e:
    print(str(e))

相关推荐
kishu_iOS&AI1 分钟前
机器学习 —— 线性回归(实例)
人工智能·python·机器学习·线性回归
架构师老Y14 分钟前
007、微服务架构设计与服务拆分策略
python·微服务·架构
小兜全糖(xdqt)16 分钟前
Ubuntu22.04安装最新版本redis
数据库·redis·缓存
风曦Kisaki28 分钟前
Linux服务Day03:自定义YUM仓库、网络YUM仓库(HTTP/FTP)、MariaDB数据库基础操作
linux·网络·数据库
weixin_7042660528 分钟前
redis 的集群
java·数据库·redis
skilllite作者33 分钟前
SkillLite 多入口架构实战:CLI / Python SDK / MCP / Desktop / Swarm 一页理清
开发语言·人工智能·python·安全·架构·rust·agentskills
正在走向自律43 分钟前
企业级数据库行标识技术深度解析:OID与ROWID的双轨架构实战
数据库·oracle·oid·rowid
PD我是你的真爱粉1 小时前
向量数据库原理与检索算法入门:ANN、HNSW、LSH、PQ 与相似度计算
数据库·人工智能·算法
ZC跨境爬虫1 小时前
批量爬取小说章节并优化排版(附完整可运行脚本)
前端·爬虫·python·自动化
不爱吃大饼1 小时前
redis主从节点
数据库·redis·bootstrap