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

相关推荐
砚底藏山河5 小时前
沪深A股:如何获取基金持股数据
java·python·数据分析·maven
goldenrolan6 小时前
学习型红外控制系统稳定性挂测工装专项总结
软件测试·python·stm32·嵌入式·红外
小小龙学IT6 小时前
Apache Airflow 2.x 深度指南:用 Python 编排一切的现代化工作流引擎
开发语言·python·apache
l1t6 小时前
DeepSeek总结的MariaDB 的 DuckDB 存储引擎
数据库·mariadb
你是个什么橙6 小时前
Python入门学习2:Python 基础语法全解析——从代码结构到输入输出
开发语言·python·学习
小白学大数据6 小时前
Python + 大模型行业资讯自动化摘要流水线完整工程实现方案
开发语言·python·自动化
tiancaijiben6 小时前
阿里云VMware服务完全对接指南:从环境准备到混合云生产级应用
数据库
beethobe7 小时前
PythonQt 学习之旅(一):从零构建 C++ 与 Python 的桥梁
c++·python·学习
广州智造7 小时前
如何在HyperMesh运行Python脚本及查找Python API帮助
python·仿真·cae·hypermesh·optistruct
Curvatureflight7 小时前
MySQL 深分页越来越慢?从 LIMIT OFFSET 改成游标分页
数据库·oracle