万籁俱寂,万字将成。
Huasui
Stay hungry. Stay foolish.
© 2022-2026
Powered by Mix Space&
余白 / Yohaku
.
正在被0人看爆
😊关于
关于我隐私权 ↗
🧐更多
时间线朋友们思考 ↗
🤗联系
写留言发邮件 ↗GitHub ↗
Huasui
Stay hungry. Stay foolish.
链接
关于我·隐私权·时间线·朋友们·思考·写留言·发邮件·GitHub
© 2022-2026 Powered by Mix Space&
余白 / Yohaku
.
正在被0人看爆
豫 ICP 备 2022029096号-2
RSS 订阅·站点地图·
··|
RSS 订阅·站点地图·|··|豫 ICP 备 2022029096号-2
稍候片刻,月出文自明。

Mix-Space后端Core使用远程数据库

·(已编辑)· / , , ·162 阅读·1 喜欢
这篇文章上次修改于,可能部分内容已经不适用,如有疑问可询问作者。
阅读此文章之前,你可能需要首先阅读以下的文章才能更好的理解上下文。
Mix-Space部署最新后端Core
关键洞察
AI · GEN

Mix-Space后端Core使用远程数据库

  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • 文章适用于:你的Mix-Space后端Core使用远程MongoDb / Redis 数据库,或者需要为MongoDB / Redis 配置密码,可以参考此篇

    ||如果没有特别需要就不用瞎折腾了捏||

    我的环境

    • 服务器A:部署MongoDB和Redis
    • 服务器B:部署Mix Space Core

    MongoDB 配置

    我使用1Panel商店安装的,默认创建 root 用户;mx-space需要连接mx-space数据库,root用户是无法直接使用的,我选择为mx-space数据库新建一个用户。

    1. 使用root用户连接MongoDB
    BASH
    mongosh --host <host> --port <port> -u <admin_user> -p <admin_password> --authenticationDatabase admin
    # 我是在MongoDB容器内执行,因此不需要--host , --port
    
    1. 切换到mx-space数据库
    BASH
    use mx-space
    
    1. 为mx-space数据库创建用户
    BASH
    db.createUser({
      user: "UserName",           // 用户名
      pwd: "UserPassword",      // 用户密码
      roles: [
        { role: "readWrite", db: "mx-space" },  // 给用户 readWrite 权限
        { role: "dbAdmin", db: "mx-space" }     // 给用户 dbAdmin 权限
      ]
    })
    
    1. 验证与测试
    BASH
    show users 
    # 验证用户是否创建成功
    mongo --username UserName --password UserPassword --authenticationDatabase mx-space
    # 连接测试
    

    MongoDB有认证库和连接库,刚开始就是一直用root用户,导致mx-space一直连接不上;这两个库具体的我也不懂,但是挺重要的,可以了解了解(

    Redis 配置

    这个没什么特别的配置,我是安装在与MongoDB同服务器上了,应该能与MongoDB分离,但是我遇到问题:前端auth有问题,导致无法正确加载,所以就干脆与MongoDB部署到一块了

    需要注意的是:这个RDB持久化,N秒内插入1条数据,建议默认3600秒,或者更高,否则前端可能无法正确获取到 正在被XX人看爆

    其他的Redis进阶配置我就不会了,懂的按需修改就行😢

    Core yaml文件配置

    官方文档有更详细的参数说明,请配合使用: https://mx-space.js.org/docs/core/extra

    下面是我目前使用的docker-compose.yml配置示例

    CodeBlock Loading...
    YAML
    services:
      app:
        container_name: mx-server
        image: innei/mx-server:latest
        environment:
          - TZ=Asia/Shanghai
          - NODE_ENV=production
          - DB_HOST=127.0.0.1 #数据库地址
          - DB_USER=username #数据库用户名
          - DB_PASSWORD=userpassword #数据库密码
          - REDIS_HOST=127.0.0.1 #redis地址
          - REDIS_PASSWORD=redispwd #redis密码
          - ALLOWED_ORIGINS=www.example.com #允许的前端域名
          - JWT_SECRET=xxxxxxxxx #JWT密钥
          - ENCRYPT_ENABLE=true #数据库加密(按需开启)
          - ENCRYPT_KEY=xxxxxxxxxxxxxxxx #数据库加密密码,如果丢失将无法从备份文件恢复,然后可以跑路了(x
        volumes:
          - ./data/mx-space:/root/.mx-space
        ports:
          - '2333:2333'
    
        networks:
          - mx-space
        restart: unless-stopped
        healthcheck:
          test: ['CMD', 'curl', '-f', 'http://127.0.0.1:2333/api/v2/ping']
          interval: 1m30s
          timeout: 30s
          retries: 5
          start_period: 30s
    networks:
      mx-space:
        driver: bridge