MongoDB开启单节点以支持事物,并开启用户密码连接

今天我们来聊聊MongoDB如何启用事务及开启账号密码连接。MongoDB默认安装的是单例无密码验证的。而MongoDB单例模式是不支持事务的。为了使用事务我们在不需要多个节点的系统里面可以采用只配置一个节点的方式来支持事务。为了简化配置过程,我们先配置单节点再开启账号密码验证。

  1. 配置单节点。到路径C:\Program Files\MongoDB\Server\6.0\bin
    使用记事本以管理员权限打开文件mongod.cfg添加如下配置:
 replication:
  replSetName: rs0

保存后,重启服务:
在这里插入图片描述
重启后使用mongosh执行命令:

rs.initiate()

到此配置单节点结束。可以通过MongoDB Compass看下:
在这里插入图片描述

  1. 开启账号密码
    先切换到admin库(命令:use admin),再执行如下命令添加用户(账号密码及角色换成自己 需要的就可以了):
db.createUser({user: "admin",pwd:  "Admin@123",roles: [ { role: "dbAdminAnyDatabase", db: "admin" } ]})

使用openssh创建key(key文件是给节点用的):

openssl rand -base64 756 > C:\Mongo.key

生成key文件后把文件考到一个路径。我是放到了我放置数据的路径:E:\Program Files\MongoDB
在这里插入图片描述
修改配置文件添加(keyFile的路径根据你放置key文件的路径做对应修改即可):

security:
  authorization: enabled
  keyFile: E:\Program Files\MongoDB\Mongo.Key

保存并重启服务后就可以使用账号密码连接了。

在 Kubernetes (k8s) 中部署 MongoDB 5.0 单节点,通常涉及创建 Deployment 和 Service 来管理和暴露你的MongoDB服务。以下是基本步骤: 1. **准备镜像**: 首先需要下载官方 MongoDB 的 Docker 镜像。如,你可以从 Docker Hub 获取 `mongo:5.0` 或者特定版本。 ```yaml FROM mongo:5.0 ``` 2. **创建 Deployment**: 编辑一个名为 `mongodb-deployment.yaml` 的文件,定义Deployment配置,指定容器镜像、端口映射和所需的资源限制(如内存和CPU)。 ```yaml apiVersion: apps/v1 kind: Deployment metadata: name: mongodb spec: replicas: 1 selector: matchLabels: app: mongodb template: metadata: labels: app: mongodb spec: containers: - name: mongodb image: mongo:5.0 ports: - containerPort: 27017 volumeMounts: - mountPath: /data/db name: mongodata volumes: - name: mongodata persistentVolumeClaim: claimName: mongodb-pvc ``` 这里的 `replicas: 1` 表示单节点。 3. **创建 Persistent Volume Claim (PVC)**: PVC用于申请持久化存储空间给MongoDB数据卷。 ```yaml apiVersion: v1 kind: PersistentVolumeClaim metadata: name: mongodb-pvc spec: accessModes: - ReadWriteOnce resources: requests: storage: 10Gi # 根据实际需求调整 ``` 4. **创建 Service**: 为了能够从集群外部访问,还需要创建一个 Service。 ```yaml apiVersion: v1 kind: Service metadata: name: mongodb-service spec: selector: app: mongodb ports: - protocol: TCP port: 27017 targetPort: 27017 type: ClusterIP ``` 5. **应用更改**: - 使用 `kubectl apply -f deployment.yaml service.yaml pvc.yaml` 将以上配置文件应用到集群。 6. **验证部署**: - 可以使用 `kubectl get pods,svc,pv,deployments` 检查状态。 - 使用 `kubectl logs <pod-name>` 查看MongoDB日志。 注意:在生产环境中,建议将 MongoDB 部署为更健壮的模式,比如副本集或多主复制,以提高可用性和容错性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

pluto li

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值