MongoDB平台支持安装的操作系统版本

MongoDB Plat操作系统支持安装的版本

https://www.mongodb.com/zh-cn/docs/manual/administration/production-notes/#std-label-prod-notes-supported-platforms

平台支持

在生产环境中
运行,请参阅推荐的平台
以获取操作系统建议。

平台支持说明

x86_64

MongoDB 需要满足以下最低配置要求的 x86_64 微架构:

  • 对于 Intel x86_64,MongoDB 需要:
    • Sandy Bridge 或更高版本的酷睿处理器,再或
    • Tiger Lake 或更高版本的赛扬或奔腾处理器。
  • 对于 AMD x86_64,MongoDB 需要:
    • Bulldozer 或更高版本的处理器。

从 MongoDB 5.0 开始,
mongod

mongos
和旧版
mongo
Shell 不再支持不符合此最低微架构要求的
x86_64 平台。

  • MongoDB 仅支持运行 Red Hat Compatible Kernel (RHCK) 的 Oracle Linux。MongoDB 支持 Unbreakable Enterprise Kernel (
    UEK)。
  • MongoDB 5.0 需要使用 AVX
    指令集,该指令集在部分 Intel 和 AMD 处理器
    上可用。

arm64

arm64 上的 MongoDB 需要ARMv8.2-A或后来的微架构。

从 MongoDB 5.0 开始,
mongod

mongos
和旧版
mongo
Shell 不再支持不符合此最低微架构要求的
arm64 平台。

要使用 ARM v8.4-A 或更高版本的微架构,请使用 MongoDB 版本 7.0 或更高版本。

平台支持矩阵

从 MongoDB 8.0 开始,新的 MongoDB Server 版本(主要版本和次要版本)支持操作系统(OS)供应商定义的最低操作系统次要版本。当操作系统供应商不再支持某个操作系统次要版本之后,MongoDB
会更新 MongoDB
Server,以支持下一个操作系统次要版本。有关详细信息,请参阅 MongoDB 平台支持改进

MongoDB 8.0 支持以下最低操作系统次要版本:

  • Red Hat Enterprise Linux 8.8
  • Red Hat Enterprise Linux 9.3
  • SUSE Linux Enterprise Server 15 SP5
  • Amazon Linux 2023 版本 2023.3
平台 架构 版本 8.0 7.0 6.0 5.0
Amazon Linux 2023 x86_64 Enterprise
Amazon Linux 2023 x86_64 Community
Amazon Linux V2 x86_64 Enterprise
Amazon Linux V2 x86_64 Community
Debian 12 x86_64 Enterprise
Debian 12 x86_64 Community
Debian 11 x86_64 Enterprise 5.0.8+
Debian 11 x86_64 Community 5.0.8+
Debian 10 x86_64 Enterprise
Debian 10 x86_64 Community
Debian 9 x86_64 Enterprise
Debian 9 x86_64 Community
RHEL/Rocky/Alma/Oracle Linux 9.0+ [1] x86_64 Enterprise 6.0.4+
RHEL/Rocky/Alma/Oracle Linux 9.0+ [1] x86_64 Community 6.0.4+
RHEL/Rocky/Alma/Oracle Linux 8.0+ [1] x86_64 Enterprise
RHEL/Rocky/Alma/Oracle Linux 8.0+ [1] x86_64 Community
RHEL/ Oracle Linux 7.0+ [1] x86_64 Enterprise
RHEL/ Oracle Linux 7.0+ [1] x86_64 Community
SLES 15 x86_64 Enterprise
SLES 15 x86_64 Community
SLES 12 x86_64 Enterprise
SLES 12 x86_64 Community
Ubuntu 24.04 x86_64 Enterprise
Ubuntu 24.04 x86_64 Community
Ubuntu 22.04 x86_64 Enterprise 6.0.4+
Ubuntu 22.04 x86_64 Community 6.0.4+
Ubuntu 20.04 x86_64 Enterprise
Ubuntu 20.04 x86_64 Community
Ubuntu 18.04 x86_64 Enterprise
Ubuntu 18.04 x86_64 Community
Windows 11 x86_64 Enterprise
Windows 11 x86_64 Community
Windows Server 2022 x86_64 Enterprise
Windows Server 2022 x86_64 Community
Windows Server 2019 x86_64 Enterprise
Windows Server 2019 x86_64 Community
Windows 10 / Server 2016 x86_64 Enterprise
Windows 10 / Server 2016 x86_64 Community
macOS 14 x86_64 Enterprise
macOS 14 x86_64 Community
macOS 13 x86_64 Enterprise
macOS 13 x86_64 Community
macOS 12 x86_64 Enterprise
macOS 12 x86_64 Community
macOS 11 x86_64 Enterprise
macOS 11 x86_64 Community
macOS 10.15 x86_64 Enterprise
macOS 10.15 x86_64 Community
macOS 10.14 x86_64 Enterprise
macOS 10.14 x86_64 Community
macOS 14 arm64 Enterprise
macOS 14 arm64 Community
macOS 13 arm64 Enterprise
macOS 13 arm64 Community
macOS 12 arm64 Enterprise
macOS 12 arm64 Community
macOS 11 arm64 Enterprise
macOS 11 arm64 Community
Amazon Linux 2023 arm64 Enterprise
Amazon Linux 2023 arm64 Community
Amazon Linux 2 arm64 Enterprise
Amazon Linux 2 arm64 Community
RHEL/CentOS/Rocky/Alma 9 arm64 Enterprise
RHEL/CentOS/Rocky/Alma 9 arm64 Community
RHEL/CentOS/Rocky/Alma 8 arm64 Enterprise
RHEL/CentOS/Rocky/Alma 8 arm64 Community
Ubuntu 24.04 arm64 Enterprise
Ubuntu 24.04 arm64 Community
Ubuntu 22.04 arm64 Enterprise 6.0.4+
Ubuntu 22.04 arm64 Community 6.0.4+
Ubuntu 20.04 arm64 Enterprise
Ubuntu 20.04 arm64 Community
Ubuntu 18.04 arm64 Enterprise
Ubuntu 18.04 arm64 Community
RHEL/Rocky/Alma 8 [ 5 ] ppc64le Enterprise
RHEL/CentOS 7 ppc64le Enterprise 6.0.7+
RHEL/Rocky/Alma 9 s390x Enterprise
RHEL/Rocky/Alma 8 [ 5 ] s390x Enterprise 5.0.9+
RHEL/CentOS 7 s390x Enterprise
RHEL/CentOS 7 s390x Community
[1] (1, 2, 3, 4, 5, 6) 在 Oracle Linux 上,MongoDB 仅支持 Red Hat Compatible Kernel。
[2] MongoDB 版本 5.0 及更高版本针对 SLES 12 Service Pack 5 进行了测试。MongoDB 的早期版本针对不带服务包的 SLES 12 进行了测试。
[3] MongoDB 版本 7.0 及更高版本针对 SLES 12 Service Pack 4 进行测试。早期版本的 MongoDB 针对不带服务包的 SLES 12 进行测试。
[4] MongoDB 版本 7.0 针对 RHEL 7.9 进行构建和测试。早期版本的 MongoDB 针对 RHEL 7 进行测试,并假定支持向前兼容。
[5] *(12)*PPC64LE 和 s390x 上的 RHEL 8 不支持 MongoDB 8.0 及更高版本中使用的 TCMalloc 更新版。在这些架构上,RHEL 8 使用旧版的 TCMalloc。要了解更多信息,请参阅用于自管理部署的 TCMalloc 性能优化
[6] PPC 64LE 上的 RHEL 9 不支持 MongoDB 8.0 及更高版本中使用的 TCMalloc 的更新版本。在此架构上,RHEL 9使用旧版 TCMalloc 版本。要了解更多信息,请参阅用于自管理部署的 TCMalloc 性能优化。

推荐平台

虽然 MongoDB 支持多种平台,但在 x86_64 架构的生产环境中建议使用以下操作系统:

  • Amazon Linux
  • Debian
  • RHEL [ 7 ]
  • SLES
  • Ubuntu LTS
  • Windows Server

为获得最佳效果,请运行平台的最新版本。如果运行的是旧版本,请确保其提供程序支持您的版本。

最新Win11 24H2系统跳过联网激活,快速创建本地账户教程

https://zhuanlan.zhihu.com/p/1891079956316001090

*Win11
**目前最新系统版本已经到

*24H2
,新机首次开机新安装Win11系统**都需要展开系统并联网激活才能进入桌面。

img

这里面最麻烦的就是要联网登录**微软账号**
,对于没有微软账号或者就是想先验机再激活的玩家来说,上来就联网登录实在不方便。

怎么解决呢?直接快速跳过联网激活,创建本地账户登录就行了。

有好几种办法(并非全部),到底哪个好使,你可以挨个试试看。


方法1:

在Win11系统首次展开设置到联网界面时,

同时按Shift + F10Fn + Shift + F10

命令窗口
,点击光标录入“oobe\bypassnro”,之后按回车,

img

等待系统重启后,再次到了联网界面,选择我没有网络再下一步创建本地账户就好了。


方法2:

(前面步骤和方法1类似)在微软账号登录界面,随便输入一个不存在的邮箱地址,密码也是随便输,直到系统提示报错,然后下一步*
*创建本地账户**。

img


方法3:

(前面步骤和方法1类似)在命令窗口,点击光标录入“start ms-cxh:localonly”这串命令,之后回车,按提示创建本地账户即可。

img

Windows关闭内核隔离-(内核隔离)AVX指令集

Windows虚拟机没有AVX指令集导致安装MongoDB数据库失败(Windows禁用内核隔离机制)

问题描述和解决

  • Windows安装的虚拟机,没有AVX指令集,导致安装MongoDB数据库出错,需要禁用内核隔离机制,才可以让虚拟机支持AVX指令集。

基础内容

  1. 背景介绍
    • Windows 内核隔离 :Windows 内核隔离是一种安全功能,用于在 Windows
      操作系统中将敏感的系统进程和资源与可能受到恶意软件威胁的常规用户进程隔离开来。它旨在保护操作系统的核心功能,防止恶意软件通过漏洞直接访问和篡改系统关键组件,如驱动程序、系统服务等。
    • Hyper - V :Hyper - V 是微软提供的虚拟化技术,它允许在一台物理计算机上创建和运行多个虚拟机(VM)。每个虚拟机都可以运行不同的操作系统,如
      Windows、Linux 等,并且这些虚拟机在硬件资源上是相对独立的。
  2. 两者的关系
    • 技术关联基础
      • Windows 内核隔离可以利用 Hyper - V 的虚拟化功能来实现其隔离目标。在 Windows 系统中,当启用内核隔离时,会借助
        Hyper - V 来创建一个受保护的虚拟环境,用于安全地运行内核进程。
      • 从技术角度讲,Hyper - V 提供了虚拟化底层硬件支持,包括对 CPU、内存和 I/O 的虚拟化。Windows
        内核隔离可以利用这些虚拟化功能来划分安全边界。例如,它可以在虚拟化的内存空间中划分出专门的区域用于存储和处理敏感的内核数据,防止这些数据被恶意进程访问。
    • 安全协同机制
      • Hyper - V 为内核隔离提供了硬件辅助的隔离特性。在传统的操作系统安全机制下,恶意软件一旦突破应用层的防御,就有可能威胁到内核。而通过
        Hyper - V 与内核隔离的结合,可以将内核关键部件置于一个类似 “虚拟机” 的保护空间中。
      • 这种保护空间使得恶意软件很难像在没有隔离的情况下直接与内核交互。就好像给内核加了一层
        “防护罩”,只有经过严格验证和授权的操作才能穿透这个防护罩,从而增强了系统的安全性。
    • 性能和资源分配方面
      • Windows 内核隔离与 Hyper - V 的结合也会影响系统性能和资源分配。由于 Hyper - V
        的虚拟化机制,当启用内核隔离时,系统需要为虚拟化的内核环境分配一定的 CPU、内存等资源。
      • 然而,这种资源分配是经过优化的,以确保在提供安全隔离的同时,尽量减少对系统整体性能的负面影响。例如,Windows
        系统会智能地管理资源,确保关键的用户应用程序和系统服务仍然能够流畅运行,而不会因为内核隔离和 Hyper - V
        的虚拟化机制而受到过度的性能损失。

Windows关闭内核隔离-(内核隔离)AVX指令集

Windows虚拟机没有AVX指令集导致安装MongoDB数据库失败(Windows禁用内核隔离机制)

问题描述和解决

  • Windows安装的虚拟机,没有AVX指令集,导致安装MongoDB数据库出错,需要禁用内核隔离机制,才可以让虚拟机支持AVX指令集。

基础内容

  1. 背景介绍
    • Windows 内核隔离 :Windows 内核隔离是一种安全功能,用于在 Windows
      操作系统中将敏感的系统进程和资源与可能受到恶意软件威胁的常规用户进程隔离开来。它旨在保护操作系统的核心功能,防止恶意软件通过漏洞直接访问和篡改系统关键组件,如驱动程序、系统服务等。
    • Hyper - V :Hyper - V 是微软提供的虚拟化技术,它允许在一台物理计算机上创建和运行多个虚拟机(VM)。每个虚拟机都可以运行不同的操作系统,如
      Windows、Linux 等,并且这些虚拟机在硬件资源上是相对独立的。
  2. 两者的关系
    • 技术关联基础
      • Windows 内核隔离可以利用 Hyper - V 的虚拟化功能来实现其隔离目标。在 Windows 系统中,当启用内核隔离时,会借助
        Hyper - V 来创建一个受保护的虚拟环境,用于安全地运行内核进程。
      • 从技术角度讲,Hyper - V 提供了虚拟化底层硬件支持,包括对 CPU、内存和 I/O 的虚拟化。Windows
        内核隔离可以利用这些虚拟化功能来划分安全边界。例如,它可以在虚拟化的内存空间中划分出专门的区域用于存储和处理敏感的内核数据,防止这些数据被恶意进程访问。
    • 安全协同机制
      • Hyper - V 为内核隔离提供了硬件辅助的隔离特性。在传统的操作系统安全机制下,恶意软件一旦突破应用层的防御,就有可能威胁到内核。而通过
        Hyper - V 与内核隔离的结合,可以将内核关键部件置于一个类似 “虚拟机” 的保护空间中。
      • 这种保护空间使得恶意软件很难像在没有隔离的情况下直接与内核交互。就好像给内核加了一层
        “防护罩”,只有经过严格验证和授权的操作才能穿透这个防护罩,从而增强了系统的安全性。
    • 性能和资源分配方面
      • Windows 内核隔离与 Hyper - V 的结合也会影响系统性能和资源分配。由于 Hyper - V
        的虚拟化机制,当启用内核隔离时,系统需要为虚拟化的内核环境分配一定的 CPU、内存等资源。
      • 然而,这种资源分配是经过优化的,以确保在提供安全隔离的同时,尽量减少对系统整体性能的负面影响。例如,Windows
        系统会智能地管理资源,确保关键的用户应用程序和系统服务仍然能够流畅运行,而不会因为内核隔离和 Hyper - V
        的虚拟化机制而受到过度的性能损失。

反思250519

反思需总结,改之&加勉

一年一年,周而复始。对待未结事项,需要有一个抉择,即使是错的,也没有问题,自己的选择。

娱乐至死

我们将毁于我们所热爱的东西

人们可能会因为过度追求财富、权力、名利等
而忽视了家庭、健康和道德,
最终导致自己的毁灭。
这也提醒我们要保持理性和清醒,
不要被自己的欲望和热爱所蒙蔽,
要时刻警惕它们可能带来的风险和后果。


三十而立
四十而不惑
五十而知天命
六十而耳顺
七十而从心所欲
不逾矩


GithubToken如何生成和使用

1
2
3
4
5
6
7
生成GitHub Token可以通过以下步骤完成:

1. 登录GitHub账户,并进入个人设置页面。
2. 在个人设置页面的侧边栏中,点击”Developer settings”(或者直接访问https://github.com/settings/tokens)。
3. 在Developer settings页面中,点击”Personal access tokens”。
4. 在Personal access tokens页面中,点击”Generate new token”按钮。
5. 在Generate new token页面中,首先输入一个
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
要生成一个GitHub令牌(token),您需要按照以下步骤进行操作:

1. 登录到GitHub账户:首先,您需要登录到您的GitHub账户。如果您还没有账户,请在GitHub的官方网站上创建一个新账户。

2. 进入个人设置:登录后,点击右上角的个人头像,选择”Settings”(设置)。

3. 进入令牌页面:在个人设置页面的左侧菜单中,选择”Developer settings”(开发者设置),然后选择”Personal access tokens”(个人访问令牌)。

4. 生成新令牌:在个人访问令牌页面,点击”Generate new token”(生成新令牌)按钮。

5. 命名令牌:在弹出的生成新令牌页面中,可以为令牌命名。例如,您可以为将来使用该令牌的用途起个名称。

6. 选择权限:根据您的需求,选择要为令牌授予的权限。您可以选择不同的权限,包括仅读取权限、写入权限,或者其他更高级别的权限,如管理存储库或管理用户的权限。

7. 生成令牌:选择您所需的权限后,点击”Generate token”(生成令牌)按钮。

Github Action实现Blog自动发布

密钥对接流程

使用 Hexo 的 Git 部署方式将生成的静态文件推送到 GitHub Pages 的 gh-pages 分支,但没有成功。这种情况下,通常需要检查以下几个关键点:

1. 确保 SSH 密钥正确配置

由于你使用的是 SSH 地址(git@github.com:owen-chenao/owen-chenao.github.io.git),需要确保 GitHub Actions 有权限通过 SSH
推送到目标仓库。

解决方法

  1. 生成 SSH 密钥对: 在本地生成一个 SSH 密钥对,公钥需要添加到目标仓库的 Deploy Keys 中。

    bash

    复制

    1
    ssh-keygen -t rsa -b 4096 -C "your_email@example.com" -f deploy_key

这将生成 deploy_key(私钥)和 deploy_key.pub(公钥)。

  1. 将公钥添加到目标仓库的 Deploy Keys

    • 打开目标仓库(owen-chenao.github.io)的 Settings 页面。
    • 在左侧菜单中选择 Deploy keys
    • 点击 Add deploy key,将 deploy_key.pub 的内容粘贴进去,并勾选 Allow write access
  2. 将私钥添加到 GitHub Actions 的 Secrets

    • 打开源仓库(owen_private_blog)的 Settings 页面。
    • 在左侧菜单中选择 Secrets and variables > Actions
    • 点击 New repository secret,名称为 DEPLOY_KEY,值为 deploy_key 的内容(私钥)。
  3. 修改 deploy.yml 文件: 在 GitHub Actions 的工作流中,需要使用私钥来配置 SSH 代理,以便能够通过 SSH 推送到目标仓库。以下是修改后的
    deploy.yml 文件:

    yaml

    复制

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    name: Deploy Hexo to GitHub Pages

    on:
    push:
    branches:
    - main

    jobs:
    deploy:
    runs-on: ubuntu-latest
    permissions:
    contents: write
    steps:
    - name: Checkout blog source
    uses: actions/checkout@v3
    with:
    fetch-depth: 0

    - name: Set up Node.js
    uses: actions/setup-node@v3
    with:
    node-version: "18"

    - name: Cache dependencies
    uses: actions/cache@v3
    with:
    path: node_modules
    key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
    restore-keys: ${{ runner.os }}-node-

    - name: Install dependencies
    run: npm install

    - name: Generate Hexo site
    run: npx hexo generate

    - name: Set up SSH agent
    uses: webfactory/ssh-agent@v0.5.4
    with:
    ssh-private-key: ${{ secrets.DEPLOY_KEY }}

    - name: Deploy to GitHub Pages
    run: |
    git config --global user.name "github-actions"
    git config --global user.email "github-actions@github.com"
    npx hexo deploy

在这里,我们使用了 webfactory/ssh-agent 动作来设置 SSH 代理,并将私钥传递给它。

2. 确保 Hexo 配置正确

在 Hexo 的 _config.yml 文件中,确保部署配置正确:

yaml

复制

1
2
3
4
deploy:
type: git
repo: git@github.com:owen-chenao/owen-chenao.github.io.git
branch: gh-pages

3. 确保目标仓库的 GitHub Pages 配置正确

  1. 打开目标仓库(owen-chenao.github.io)的 Settings 页面。
  2. 在左侧菜单中选择 Pages
  3. Source 部分,选择 gh-pages 分支作为发布源。

过程图片记录

私有库(owen_private_blog)

配置Actions secrets and variables

https://github.com/owen-chenao/owen_private_blog/settings/secrets/actions

公有库配置SSH(owen-chenao.github.io)

https://github.com/owen-chenao/owen-chenao.github.io/settings/keys

Action操作执行步骤和结果

frp实现内网穿透(Windows版本)

frp

frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议,且支持 P2P 通信。可以将内网服务以安全、便捷的方式通过具有公网
IP 节点的中转暴露到公网。

github 下载地址:github.com/fatedier/frp/releases

公网、内网服务器都下载一份。

找到第一条,然后下载 frp_windwos_amd64.zip 这个 (amd64 是 64 系统,386 是 32 位系统,现在电脑基本 64 位了),比如图片上的
frp_0.33.0_windows_amd64.zip

2、将 frp_0.33.0_windows_amd64.zip 解压至任意目录

3、进入解压目录这里所有 frpc 开头的文件都是客户端文件,所以全部删了,我们服务器只需要 frps 开头的文件

4、配置服务端(公网服务器)
我们打开 frps.ini(我用的 notepad++ 编辑器,记事本也可以)
注意配置文件不支持注释,请不要把汉字复制进去

1
2
3
[common]
bind_port = 7000 #与客户端绑定的进行通信的端口
vhost_http_port = 6081 #访问客户端web服务自定义的端口号

保存然后打开 cmd 进入当前目录(cmd 不会用自行百度),输入:frps.exe -c ./frps.ini,此时会提示网络防火墙安全警告,点允许

提示 start frps success 则服务启动成功

警告:云服务器一定要开放端口,不会开放自行百度,图中的 7000 是 frp 绑定的默认端口要打开,另外一个是 http(用不到可以删了)

至此服务端配置完成!
5、配置客户端(内网服务器),首先删掉 frps 开头文件文件,然后再进行配置,编辑 frpc.ini
注意配置文件不支持注释,请不要把汉字复制进去

1
2
3
4
5
6
7
8
9
[common]
server_addr = xx.xx.xx.xx #公网服务器ip
server_port = 7000 #与服务端bind_port一致

[yclj]
type = tcp
local_ip = 127.0.0.1
local_port = 3389 # 3389是windows的远程连接端口
remote_port = 24567 # 远程服务器端口(自定义)

保存然后执行
windows 使用 cmd 或者 powershell 进入当前目录,执行

frpc.exe -c frpc.ini
6、访问方式
(1) 远程连接 windows bind_post 要绑定 3389,其他的不行
ip:xx.xx.xx.xx:24567 (这个是服务器开放的端口,映射本地的 3389)

三、结尾

  1. 客户端连接服务端提示访问被拒绝,则需要服务端开放防火墙端口(学习的话全开就行了,生产环境除外)。

示例代码

frpc.ini(客户端)frpc.exe -c frpc.ini

1
2
3
4
5
6
7
8
9
[common]
server_addr = xx.xx.xx.xx
server_port = 7000

[yclj]
type = tcp
local_ip = 127.0.0.1
local_port = 80
remote_port = 80

frps.ini(服务端)frps.exe -c frps.ini

1
2
3
[common]
bind_port = 7000
vhost_http_port = 6081