本机 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))

相关推荐
AC赳赳老秦9 小时前
DeepSeek 私有化部署避坑指南:敏感数据本地化处理与合规性检测详解
大数据·开发语言·数据库·人工智能·自动化·php·deepseek
默默前行的虫虫9 小时前
nicegui文件上传归纳
python
一个没有本领的人9 小时前
UIU-Net运行记录
python
国强_dev9 小时前
Python 的“非直接原因”报错
开发语言·python
YMatrix 官方技术社区9 小时前
YMatrix 存储引擎解密:MARS3 存储引擎如何超越传统行存、列存实现“时序+分析“场景性能大幅提升?
开发语言·数据库·时序数据库·数据库架构·智慧工厂·存储引擎·ymatrix
副露のmagic10 小时前
更弱智的算法学习 day24
python·学习·算法
廖圣平10 小时前
从零开始,福袋直播间脚本研究【三】《多进程执行selenium》
python·selenium·测试工具
散峰而望10 小时前
【Coze - AI Agent 开发平台】-- 你真的了解 Coze 吗
开发语言·人工智能·python·aigc·ai编程·ai写作
辞砚技术录10 小时前
MySQL面试题——索引2nd
数据库·mysql·面试
linweidong10 小时前
C++thread pool(线程池)设计应关注哪些扩展性问题?
java·数据库·c++