MariaDB 10.5.11 Linux部署详解:从tar.gz到生产环境调优排错

发布时间:2026/9/8 7:32:53

MariaDB 10.5.11 Linux部署详解:从tar.gz到生产环境调优排错
简介面向Linux x86_64平台的MariaDB 10.5.11二进制发行包适合运维工程师、DBA与后端开发者快速部署企业级数据库服务。该版本在MySQL分支基础上重点优化InnoDB并发性能同时保留MyISAM、Aria、XtraDB等多样化存储引擎并集成独有的ColumnStore列式引擎可显著加速复杂分析查询。此外10.5.11完善了GTID主从复制、多源复制与半同步复制机制配合线程池和并行查询执行能够有效应对高并发连接与大数据量处理虚拟列、增强加密选项和审计日志则进一步提升了开发灵活性与数据安全性。压缩包体积约347MB内含服务端、客户端程序及默认配置文件解压后按官方文档完成初始化即可使用省去源码编译与依赖管理的繁琐步骤。已有290人学习下载适合需要搭建高可用集群、从MySQL迁移或升级旧版本的用户也可借助插件体系扩展全文检索、GIS与JSON处理能力。 下载过MariaDB安装包的人十有八九都见过mariadb-10.5.11-linux-x86_64.tar.gz这种命名的文件。如果你只是急着把它解压装上那可能会错过这个文件名里藏着的大量信息。我最早接触这类二进制包时也吃过亏光是把目录结构搞明白、把初始化命令跑通就花了不少时间。这篇文章就从这串字符开始把MariaDB 10.5.11在Linux x86_64平台上的部署、调优和排错一次性讲透适合正在做数据库部署的运维、刚接手LCMP环境的开发者以及需要离线安装数据库的场景参考。1. 文件名拆解每个字段都在告诉你该怎么做1.1 版本号与LTS策略10.5.11是MariaDB的一个具体发行版本属于10.5这个长期支持系列。10.5系列在MariaDB的版本演进里地位很特殊——它是第一个引入System-Versioned Tables稳定性改进的版本同时把mysql.user表彻底迁移到了InnoDB引擎和之前版本相比在账户管理上有不少行为差异。选择10.5.x意味着你能获得较长时间的安全更新同时不会像体验10.6那样承担更多的功能变动风险。我在生产环境里部署时一般会优先选LTS系列里的较新小版本因为小版本号比如10.5.8升到10.5.11通常只包含bugfix和安全补丁不会引入破坏性的SQL行为变化。这一点对线上系统很重要升级小版本基本不用改业务代码。1.2 平台标识与包格式为什么选generic tar.gzlinux-x86_64说明了运行平台是64位Linux这个标识基本覆盖了主流服务器环境。tar.gz是gzip压缩的tar归档格式解压后得到的是一个完整的目录里面包含了二进制文件、库文件、脚本和示例配置。相比用yum或apt安装选择这种generic二进制包有几个实际好处不依赖发行版的软件源适合内网离线环境目录结构固定可以放在任意路径下改动可控卸载时直接删目录就能清干净。缺点是升级需要手动操作不会像包管理器那样自动处理依赖所以适合有一定Linux基础的人使用。1.3 一个容易忽视的细节版本号与glibc的兼容关系10.5.11这个版本编译时对glibc版本有一定要求。CentOS 7自带的glibc是2.17能正常运行这个包但如果你在更老的系统比如CentOS 6上强行解压可能会遇到/lib64/libc.so.6: version GLIBC_2.14 not found之类的报错。遇到这种情况要么升级系统要么去下载专门针对老系统编译的版本不能硬扛。2. 部署前的环境准备这些坑先填平2.1 系统依赖库检查二进制包虽然自带大部分运行库但它不是一个完全静态编译的程序依然需要系统提供一些底层库。对我用过的环境来说最常见的依赖是libaio和ncurses-libs。如果你解压后执行mysqld --initialize时收到类似error while loading shared libraries: libaio.so.1的提示先别慌用系统的包管理工具补上就行。# CentOS / RHEL / Rocky yum install -y libaio ncurses-libs # Debian / Ubuntu apt-get install -y libaio1 libncurses5有时候还需要perl因为一些辅助脚本比如mysql_secure_installation是用Perl写的。检查完依赖再动手解压能省掉不少麻烦。2.2 创建运行用户与目录规划一个常见的部署失误是用root用户初始化并启动数据库这样做在测试环境也许能跑但生产环境迟早会被权限问题坑到。我的做法是单独创建一个mysql系统用户数据目录和日志目录都归它管服务进程以这个用户身份运行。groupadd -r mysql useradd -r -g mysql -s /sbin/nologin mysql mkdir -p /data/mysql/data mkdir -p /data/mysql/logs mkdir -p /data/mysql/tmp chown -R mysql:mysql /data/mysql目录规划有自己的门道。软件目录和解压后的二进制文件放在/usr/local/mariadb数据目录单独放到/data/mysql/data。这样分开有好处软件升级时只需要替换软链接指向的新目录数据目录完全不受影响备份时只要盯住数据目录不用在几万个文件里挑挑拣拣。2.3 校验安装包的完整性去官网或镜像站下载完这个tar.gz包后最好做一次完整性校验。官方发布页面会提供对应的校验值用sha256sum对一下能发现传输过程中的损坏或恶意替换问题。sha256sum mariadb-10.5.11-linux-x86_64.tar.gz这一步不会花太多时间但对生产环境来说很有必要。我在一台内网服务器上曾经遇到过解压到一半提示校验错误的情况后来确认是之前用断点续传工具下载时文件不完整幸好当时多做了一个校验否则会出现更复杂的问题。3. 完整部署流程从解压到跑通单实例3.1 解压与目录迁移拿到安装包后第一步就是解压到目标目录然后建立一个软链接用版本号来管理不同版本。这样以后升级时直接解压新版本并切换软链接指向回滚也方便。tar -xzf mariadb-10.5.11-linux-x86_64.tar.gz -C /usr/local/ ln -s /usr/local/mariadb-10.5.11-linux-x86_64 /usr/local/mariadb解压完成后的目录结构里比较关键的有bin/存放可执行文件、scripts/存放初始化脚本不过10.5里初始化命令已经迁移到了bin/mariadb-install-db、share/存放错误信息和字符集文件。我建议花几分钟进去翻一遍认识了目录结构后面遇到问题时找日志文件的位置会快很多。3.2 初始化数据目录在启动前需要先初始化系统的数据目录。MariaDB提供了一个专用脚本它会生成系统数据库mysql库和初始的权限表。/usr/local/mariadb/scripts/mariadb-install-db \ --basedir/usr/local/mariadb \ --datadir/data/mysql/data \ --usermysql注意执行这个命令时不要在/root这种root用户目录下运行否则脚本可能因为权限检测失败中断。初始化完成后检查一下数据目录下是否生成了mysql、performance_schema等目录如果连aria_log_control文件都不存在说明初始化没有成功需要回头排查依赖库或目录权限。3.3 my.cnf基础配置MariaDB的配置文件读取顺序是/etc/my.cnf、/etc/mysql/my.cnf、basedir/my.cnf等。对于这种手工部署的实例我习惯在/etc/my.cnf里写最小化的配置把核心路径明确指出来避免重复定义造成混乱。[mysqld] basedir /usr/local/mariadb datadir /data/mysql/data socket /tmp/mysql.sock pid-file /data/mysql/mysql.pid port 3306 log-error /data/mysql/logs/mysql-error.log character-set-server utf8mb4 collation-server utf8mb4_general_ci [client] socket /tmp/mysql.sock这里有几个参数特别重要log-error必须提前确认目录存在且属主是mysql用户否则启动时MariaDB会因为写不了日志文件而静默退出character-set-server和collation-server尽量在部署时就定下来后期修改字符集规则会牵涉到存量数据转换相当麻烦socket路径保持一致避免客户端连不上。3.4 用systemd托管服务用mysqld_safe这是一个比较旧的启动方式但现在更推荐使用systemd来管理因为可以设置开机自启也能在崩溃后由systemd自动拉起。需要手动创建一个service unit文件。# /etc/systemd/system/mariadb.service [Unit] DescriptionMariaDB 10.5.11 database server Afternetwork.target [Service] Typesimple Usermysql Groupmysql ExecStart/usr/local/mariadb/bin/mysqld --defaults-file/etc/my.cnf ExecReload/bin/kill -HUP $MAINPID Restarton-failure LimitNOFILE65535 [Install] WantedBymulti-user.target创建完成后执行systemctl daemon-reload然后用systemctl start mariadb启动。这个过程里我踩过一个细节坑如果之前用mysqld_safe方式启动过实例systemd再启动会报already in use那是因为进程没有吃透pid文件的位置。解决方法是先停掉旧进程再把pid文件删掉确保环境干净了再交由systemd接管。3.5 首次连接与root密码设置启动成功后用客户端连接测试一下/usr/local/mariadb/bin/mysql -uroot -S /tmp/mysql.sock首次连接时root账户默认采用unix_socket认证在本地以root系统用户身份登录可以免密。但这只是初始化状态马上需要设置root密码并移除测试库和匿名账户。ALTER USER rootlocalhost IDENTIFIED BY 你的强密码; DELETE FROM mysql.user WHERE User; DELETE FROM mysql.user WHERE Userroot AND Host NOT IN (localhost, 127.0.0.1, ::1); FLUSH PRIVILEGES;当然你也可以直接执行mariadb-secure-installation脚本它会一步一步引导你完成密码设置、移除匿名用户、禁止root远程登录等操作。我个人建议无论用哪种方式部署完成后做一次彻底的安全配置不要留着默认的空密码。3.6 验证基本功能部署完成的验证不只是能登录我通常会跑几个最基础的检查确认版本号、看线程运行状态、简单建库测试写入和读取的可用性。这样可以尽早发现字符集或权限问题避免后面业务接入时才发现。SELECT VERSION(); SHOW STATUS LIKE Uptime; CREATE DATABASE IF NOT EXISTS testdb DEFAULT CHARACTER SET utf8mb4; USE testdb; CREATE TABLE t1 (id INT PRIMARY KEY, name VARCHAR(50)); INSERT INTO t1 VALUES (1, hello); SELECT * FROM t1;验证通过后这个实例基本的运行链路就通了。接下来需要处理的是部署之后的日常维护和安全加固问题。4. 部署后的安全加固与日常运维要点4.1 账号权限最小化给业务创建账号时要避免直接使用root账号连接应用。很多人图省事一个root账户用到底出了问题连排查的余地都没有。更合理的做法是按业务模块拆分账号每个账号只授予它需要的那几个库的权限。CREATE USER app_user192.168.1.% IDENTIFIED BY 复杂度足够的密码; GRANT SELECT, INSERT, UPDATE, DELETE ON app_db.* TO app_user192.168.1.%; FLUSH PRIVILEGES;host字段也需要控制只允许应用服务器所在的网段访问不要用%通配符开放整个网络。这些权限控制虽然看起来基础但真的能挡掉不少低级风险。4.2 开启audit插件记录操作审计热搜词里频繁出现mariadb audit plugin可见大家对这个功能很关注。MariaDB从10.0开始就提供内置的Server Audit插件在10.5里已经比较稳定部署后我会顺手把这个插件加上。它能记录谁在什么时候执行了什么SQL对追查数据变更和定位安全问题很有帮助。INSTALL SONAME server_audit; SET GLOBAL server_audit_logging ON; SET GLOBAL server_audit_file_rotate_size 100000000; SET GLOBAL server_audit_events CONNECT,QUERY;如果需要开机自动生效把相应的配置写进/etc/my.cnf的[mysqld]段plugin-load-add server_audit server_audit_logging ON server_audit_file_rotate_size 100000000 server_audit_events CONNECT,QUERY server_audit_file_path /data/mysql/logs/server_audit.log开启审计会带来一定的性能损耗所以不需要记录所有查询按实际需求配置事件类型就好。4.3 备份策略逻辑备份与物理备份数据库不备份等于白部署。针对10.5.11这种版本我的选择是中小数据量用例行逻辑备份大库用物理备份工具。逻辑备份用mysqldump适合数据量不大几十GB以内的场景备份文件是纯SQL恢复灵活。/usr/local/mariadb/bin/mysqldump \ --single-transaction \ --master-data2 \ -uroot -p \ --databases yourdb /backup/mysql/yourdb_$(date %F).sql--single-transaction能保证InnoDB表备份期间的数据一致性不会因为其他写入导致备份损坏。在此基础上再配合binlog增量备份可以实现按时间点恢复。如果数据量上百GB再用mysqldump就不合适了此时选择物理备份工具mariadb-backup它是Percona XtraBackup的分支演进直接做文件级别的备份恢复速度远快于逻辑导入。4.4 性能参数初调不要乱抄网上配置很多人拿到配置就往上加innodb_buffer_pool_size加得过大反而容易触及内存上限引起内存交换。我的经验是这个参数设置为物理内存的50%到70%起步留出操作系统缓存和其他进程所需空间。还有一个经常被忽视的参数是max_connections默认值是151如果应用连接池配置了较多连接这个值很容易不够。[mysqld] innodb_buffer_pool_size 4G max_connections 500 innodb_flush_log_at_trx_commit 2innodb_flush_log_at_trx_commit 2能明显减少磁盘I/O压力但在系统崩溃时可能丢失最多1秒的事务安全性要求高的场景需要改成1。这里没有绝对正确的配置只有适合业务场景的配置。5. 常见问题排查与经验教训5.1 libaio缺失导致启动失败这是一个很常见的问题。症状是systemctl start mariadb后立即失败查错误日志发现类似mysqld: error while loading shared libraries: libaio.so.1的提示。解决办法前面已经提过安装libaio依赖。这里提醒顺序问题最好在解压之后初始化之前先装好依赖别等报错再补初始化失败重新跑一遍有点费时间。5.2 数据目录权限不对导致初始化失败有时候报错信息会混淆视听比如提示cannot create test file或者Access denied。如果你已经确认数据目录存在且属主是mysql还是报权限问题可以看看目录的父级权限。我遇到过一次/data本身是root属主且权限是700的情况导致mysql用户无法进入路径解决方案是把/data/mysql这一路径下所有层级的目录x权限放开。chown -R mysql:mysql /data/mysql chmod -R 750 /data/mysql这种问题在根目录下部署时不太会出现但在挂载盘目录下部署时很常见因为挂载点的权限往往比较严格。5.3 socket连接失败ERROR 2002 (HY000): Cant connect to local MySQL server through socket /tmp/mysql.sock这个错误在客户端尝试连接时经常出现。原因通常有两个服务还没启动或者客户端和服务端配置的socket路径不一致。用systemd管理时服务端socket路径由my.cnf指定客户端连接时应显式指定-S参数或者保证/etc/my.cnf的[client]段和服务端一致。/usr/local/mariadb/bin/mysql -uroot -p -S /tmp/mysql.sock5.4 从10.5.x小版本升级的正确姿势如果后面要在10.5系列内做小版本升级比如从10.5.8升到10.5.11操作步骤是备份数据目录和配置文件下载新版本的tar.gz包解压后调整软链接指向新目录然后重启服务。# 停库 systemctl stop mariadb # 备份旧配置 cp /etc/my.cnf /etc/my.cnf.bak_$(date %F) # 替换新版本软链接 ln -sfn /usr/local/mariadb-10.5.11-linux-x86_64 /usr/local/mariadb # 启动 systemctl start mariadb小版本升级不需要重新初始化数据目录MariaDB会自动处理元数据的升级。但如果是从10.5跨到其他大版本比如10.6、10.11升级后必须执行mariadb-upgrade否则可能遇到系统表结构不匹配的诡异问题。5.5 二进制方式与包管理器方式切换时的注意事项如果你之前用rpm/deb方式装过MariaDB现在想改用这个tar.gz包需要注意一点包管理器安装的版本会保留自己的systemd unit文件和数据目录不清理干净可能会导致新实例启动时报告数据目录已经被占用。我的建议是先完整卸载旧版本备份数据完全删除空的数据目录再用二进制包重新部署。这个切换过程最容易出问题的是配置文件残留因为/etc/my.cnf里的路径可能还指向旧的位置。根据我个人的实际体会用tar.gz包部署MariaDB最核心的价值不是一次跑通而是让你能完全掌控数据库实例的目录布局、启动方式和升级节奏。只要在解压前多做一点依赖检查、在启动前做好数据目录规划这套部署方式比包管理器更灵活也更容易复现到其他机器上。最后再分享一个小技巧部署完成后把解压过的包和校验值一起保存到内网文件服务器上相当于给自己留了原版基线以后哪台机器要部署同版本时照方抓药就能快速完成。本文还有配套的精品资源点击获取

相关新闻

手写漂亮div弹窗:从CSS动画到交互实战的完整指南

手写漂亮div弹窗:从CSS动画到交互实战的完整指南

2026/9/8 7:32:53

简介:一套面向网页前端开发者的跨浏览器弹窗范例包,集合圆角与方角、半透明背景、可拖动、可缩放、上滑出现、单击边界外隐藏等常见交互形态,解决页面中通知、确认、对话框在不同浏览器下样式和脚本冲突的问题。压缩包共二十个文件&#xff0…

Golang+H5德州扑克实战:架构设计、牌型判定与WebSocket优化

Golang+H5德州扑克实战:架构设计、牌型判定与WebSocket优化

2026/9/8 7:22:52

简介:一份使用Java与Golang开发的德州扑克游戏完整开源源码。其前端通过H5与Phaser构建,后端使用Go语言处理房间、牌桌与牌型判定,能够为游戏开发者提供从用户交互到服务端逻辑的完整参考。资源共包含267个文件,其中Go源码11个、J…

AI Agent防诈骗评估:1Password基准测试与最小框架实践

AI Agent防诈骗评估:1Password基准测试与最小框架实践

2026/9/8 7:22:52

最近一段时间,AI Agent 的热度一直没降过。但如果你真的在团队里做过 Agent 落地,大概率会遇到一个非常尴尬的场面:Demo 时效果惊艳,一放到真实业务环境里,它却可能被一条恶意指令带偏,甚至把内部 API Key …

SSM+Vue乐器销售管理系统毕设全攻略:从数据库设计到答辩

SSM+Vue乐器销售管理系统毕设全攻略:从数据库设计到答辩

2026/9/8 8:32:55

2026届的毕设题目下来得比往年早,很多同学开题就领到了“乐器销售管理系统”这个题目,技术栈指定ssmvue,要求论文和程序一起交付。说实话,这类题目属于经典的“管理系统”家族,网上能搜到的代码很多,但真正…

FLIR T600系列热像仪全解析:从参数读懂到现场实拍

FLIR T600系列热像仪全解析:从参数读懂到现场实拍

2026/9/8 8:32:55

干这行久了,会发现一个很有意思的现象:每逢设备采购季,总有人抱着FLIR T600系列的参数表来问我,指着640x480分辨率、40mK热灵敏度这些数字,反复确认到底哪款够用。参数摆在那里,谁都能对比,可真…

Spring Boot 验证码实战:从生成到防刷的完整设计

Spring Boot 验证码实战:从生成到防刷的完整设计

2026/9/8 8:32:55

验证码这个东西,看着不起眼,但真要在 Spring Boot 项目里把它做扎实,里面的坑比想象中多。这个标题我前后在好几个项目里落地过,从最开始的 servlet session 画几个字母,到后来前后端分离 Redis 存 key Base64 输出…

火山引擎veDB云原生数据库底座:高密、海量、智能化解析

火山引擎veDB云原生数据库底座:高密、海量、智能化解析

2026/9/8 8:32:55

1. 从IDC到云原生:数据库为什么非要换底座先说个背景。过去十年,大多数企业的核心数据还是躺在自建机房里,跑着MySQL、PostgreSQL或者Oracle。业务量小的时候没什么感觉,等流量一上来,问题全冒出来了:主从延…

告别docker pull龟速:一套可落地的镜像加速优化方案

告别docker pull龟速:一套可落地的镜像加速优化方案

2026/9/8 8:32:55

如果你搞過 Docker,應該對這個畫面不陌生:一條docker pull mysql:8.0命令敲下去,進度條卡在Downloading [> ] 32.44MB/150MB半天不動,最後還可能給你報一個deadline exceeded。這事情我前前後後折騰了兩年,直到最近…

拟人输入:让自动化脚本摆脱机器人特征识别的实战指南

拟人输入:让自动化脚本摆脱机器人特征识别的实战指南

2026/9/8 8:22:55

做自动化测试、写数据采集脚本、跑RPA机器人流程的朋友,多半都遇到过这种尴尬:程序本身逻辑一点问题没有,功能全部正常,可一到目标系统那边,要么被要求多走一步身份验证,要么直接被提示“操作频繁&#xff…

中国人民大学杨琳团队《Nature Communications》 | 全球潮汐湿地土壤有机碳时空格局与环境驱动:一项2009-2020年的全球评估

中国人民大学杨琳团队《Nature Communications》 | 全球潮汐湿地土壤有机碳时空格局与环境驱动:一项2009-2020年的全球评估

2026/9/7 20:21:46

本文首发于“生态学者”!从“湿地面积”到“土壤碳密度”:为什么需要重新认识潮汐湿地蓝碳变化?潮汐湿地位于陆地与海洋的交汇地带,包括红树林、盐沼和潮滩,是全球重要的蓝碳生态系统。其土壤能够长期储存大量有机碳&a…

adb抓包

adb抓包

2026/9/8 4:55:53

前言 本文介绍如何通过 tcpdump 在 Android 手机上抓取网络数据包,并在电脑端使用 Wireshark 进行分析。适用于需要排查 App 网络请求、分析接口调用或调试网络问题的开发与测试场景。1. 手机要有 root 权限2. 下载 tcpdump3. adb push C:\Users\zhangkuixun\Downlo…

大模型推理镜像极简瘦身:从 25GB 巨无霸到 3GB 精简镜像实战

大模型推理镜像极简瘦身:从 25GB 巨无霸到 3GB 精简镜像实战

2026/9/7 8:03:37

大模型推理镜像极简瘦身:从 25GB 巨无霸到 3GB 精简镜像实战 在云原生基础设施中,容器镜像体积直接决定了服务的部署速度与弹性扩容敏捷度。对于传统的 Go / Java 微服务,镜像体积通常被严格控制在 50MB 到 200MB 以内,拉取镜像只…

芯片良率波动可视化:动画拆解工艺因果,重建客户信任

芯片良率波动可视化:动画拆解工艺因果,重建客户信任

2026/9/8 0:02:30

芯片这个行业有个不太被人摆到台面上、但几乎每天都在发生的场景:客户拿着一条良率曲线截图问你,这批货的良率怎么掉了三个点,是不是工艺出问题了,产生的不良会不会流到他们产线上去。你解释了半天,客户似懂非懂&#…

PyTorch DataLoader参数冲突:sampler与shuffle互斥的根源与正确写法

PyTorch DataLoader参数冲突:sampler与shuffle互斥的根源与正确写法

2026/9/8 0:02:30

ValueError: sampler option is mutually exclusive with shuffle,这个报错我在 PyTorch 的 DataLoader 上至少见过几十次了,而且很有意思的是,它经常不是新手专属——很多写了好几年模型的老手,在从单机改成自定义采样器&#xf…

中国车企再破谣言,GAC吉利零跑获欧盟安全五星

中国车企再破谣言,GAC吉利零跑获欧盟安全五星

2026/9/8 0:02:30

有人可能在网上开着皮卡拍视频,声称中国电动车不仅性能不如美国大排量车型,安全性也堪忧。然而事实恰恰相反,GAC、吉利和零跑最新推出的电动车型在极为严苛的欧盟新车安全评鉴(Euro NCAP)测试中全部斩获满分。就在特斯…

远程协作的工作台整理

远程协作的工作台整理

2026/9/8 4:23:39

远程协作的工作台整理远程协作的核心不是再加一个工具,而是让交接信息足够完整。异步任务要写明目标、输入位置、完成标准和需要决策的人。 工作台的最小配置 将日程、待办、代码和沟通入口收拢到少数固定位置;通知按紧急程度分层。工作台不需要模仿办公…

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

2026/9/8 3:19:39

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

2026/9/8 4:00:23

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…