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

相关推荐
YOU OU7 小时前
Spring IoC&DI
java·数据库·spring
AI算法沐枫8 小时前
深度学习python代码处理科研测序数据
数据结构·人工智能·python·深度学习·决策树·机器学习·线性回归
Muscleheng8 小时前
Navicat连接postgresql时出现‘datlastsysoid does not exist‘报错
数据库·postgresql
X1A0RAN9 小时前
解决Pycharm中部分文件或文件夹被隐藏不展示问题
ide·python·pycharm
MomentYY9 小时前
第 3 篇:让 Agent 学会分工,LangGraph 构建多 Agent系统
人工智能·python·agent
程序员Jelena9 小时前
Python 代码是什么?—— 从字节到执行的完整解析
python
测试员周周9 小时前
【Appium 系列】第13节-混合测试执行器 — API + UI 的协同执行
开发语言·人工智能·python·功能测试·ui·appium·pytest
罗超驿9 小时前
18.事务的隔离性和隔离级别:MySQL面试高频考点全解析
数据库·mysql·面试
用户8356290780519 小时前
Python 操作 PowerPoint OLE 对象
后端·python
jran-9 小时前
Redis 命令
数据库·redis·缓存