麒麟V10 ARM离线部署MySQL 8.0避坑指南:依赖、systemd与自启
1. 为什么ARM架构的离线部署值得单独写一篇避坑指南在x86服务器上装MySQL绝大多数时候就是一条yum install mysql-server或者下载个rpm包rpm -ivh就完事了。但一旦环境换成银河麒麟V10 SP3 Lance版本的ARM服务器镜像事情就完全不一样了。我最近刚在一个纯内网、无外网出口的鲲鹏ARM服务器上完成了一套MySQL 8.0的离线部署从最开始连依赖都装不上到最后做成systemd服务开机自启中间踩的坑足够写一篇完整的复盘。先说清楚这篇文章适合谁看如果你手上有麒麟V10 ARM架构的服务器网络环境是完全隔离的内网需要部署MySQL并且要求服务能随系统自启那这篇内容基本可以当作操作手册来用。如果你只是想在x86的CentOS上装个MySQL那这篇的很多细节对你来说会显得多余因为ARM架构下的依赖链和包管理逻辑跟x86差异很大。核心难点集中在三个地方一是ARM架构的MySQL官方包选择很多人习惯性去MySQL官网下载页面直接点第一个结果下回来的是x86_64的包在ARM机器上根本装不了二是麒麟V10自带的依赖库版本与MySQL要求的依赖之间存在缺口离线环境下没法自动补三是systemd服务单元的配置麒麟V10虽然基于较新的内核但它的systemd版本和服务管理习惯跟常见的CentOS 7/8有细微差别直接照搬网上的配置模板可能会遇到服务起不来或者启动后立即退出的问题。下面我按照实际操作的顺序把整个流程拆成几个阶段来讲每个阶段都会说明为什么这么做、当时遇到了什么问题、最后怎么解决的。2. 部署前的环境确认与包选择策略2.1 确认系统架构和版本信息动手之前先把机器的底细摸清楚这一步看起来简单但很多人就是在这里栽了跟头。执行以下命令确认架构uname -m如果输出是aarch64说明是ARM64架构这是目前麒麟V10服务器版最常见的ARM架构。如果输出是armv7l之类的那是32位ARMMySQL 8.0基本不用想了只能考虑MariaDB或者MySQL 5.7的特定版本。接着确认系统版本cat /etc/kylin-release cat /etc/os-release麒麟V10 SP3的输出里会明确标注版本号和SP级别。为什么要确认到SP级别因为不同SP版本自带的glibc版本和openssl版本不同这直接决定了你能用哪个版本的MySQL二进制包。比如SP1自带的glibc可能是2.28SP3可能已经到2.34了而MySQL 8.0.30之后的版本对glibc的最低要求是2.28如果你在SP1上装最新的MySQL 8.0.35可能会遇到glibc版本不满足的问题。注意麒麟V10的/etc/os-release里VERSION_ID字段有时候显示的是V10不带SP号需要看KYLIN_RELEASE或者/etc/kylin-build文件才能确认SP级别。2.2 选择正确的MySQL ARM包这是整个部署过程中最关键的一步。MySQL官方对ARM架构的支持从5.7时代就开始了但官方下载页面的默认选项永远是x86_64。你需要手动切换到ARM架构的下载链接。MySQL官方提供的Linux通用二进制包Generic Linux Binaries分两种架构x86_64和aarch64。对于麒麟V10 ARM服务器你要下载的是mysql-8.0.xx-linux-glibc2.xx-aarch64.tar.xz这种命名的包。注意文件名里的glibc2.xx部分这个数字必须小于等于你系统自带的glibc版本。我当时的做法是# 查看系统glibc版本 ldd --version | head -1输出显示ldd (GNU libc) 2.34所以我选择了mysql-8.0.35-linux-glibc2.28-aarch64.tar.xz因为2.28小于2.34兼容。如果选了glibc2.35的包在2.34的系统上就会报GLIBC_2.35 not found的错误。另外MySQL 8.0.33之后的版本开始提供glibc2.28和glibc2.35两个变体选低的那个通常更安全。如果你实在不确定就选你能找到的最低glibc版本的aarch64包。实操心得MySQL官网的下载页面有时候会隐藏ARM架构的选项需要点击Looking for previous GA versions?或者直接在下载链接里把x86_64替换成aarch64。如果官网访问不便可以在有外网的机器上下载好后通过内网传输工具拷进去。2.3 离线依赖包的收集麒麟V10 ARM服务器的最小化安装通常缺少MySQL运行所需的几个关键依赖。在离线环境下你没法用yum install自动解决依赖所以需要提前在有网的同类机器上把依赖包下载好。MySQL 8.0在ARM麒麟V10上主要依赖以下几个包依赖包作用是否必须libaio异步IO支持必须numactl-libsNUMA内存管理必须openssl-libsSSL加密支持必须libtirpcRPC支持部分版本需要ncurses-libs终端界面支持客户端需要下载方法是在一台有网的麒麟V10 ARM机器上执行yumdownloader --resolve --destdir/tmp/mysql-deps libaio numactl-libs openssl-libs libtirpc ncurses-libs--resolve参数会把所有间接依赖也一起下载下来。下载完成后把整个/tmp/mysql-deps目录打包拷到离线服务器上用rpm -ivh *.rpm批量安装。注意麒麟V10的yum源里包名可能跟CentOS略有不同比如numactl-libs在麒麟上可能叫numactl用yum search确认一下实际包名。3. 离线安装MySQL的完整操作流程3.1 创建用户和目录结构MySQL不建议用root用户运行所以先创建专用的mysql用户和组groupadd mysql useradd -r -g mysql -s /bin/false mysql-r参数创建系统用户-s /bin/false禁止该用户登录shell这是安全基线的基本要求。接着创建MySQL的数据目录和安装目录。我习惯把安装目录放在/usr/local/mysql数据目录放在/data/mysql这样数据和程序分离后续升级或者迁移都方便mkdir -p /usr/local/mysql mkdir -p /data/mysql chown -R mysql:mysql /data/mysql实操心得如果服务器有单独的数据盘强烈建议把/data/mysql挂载到数据盘上。麒麟V10默认的根分区通常不会太大MySQL的数据文件增长很快根分区满了之后处理起来非常麻烦。3.2 解压和初始化把下载好的mysql-8.0.35-linux-glibc2.28-aarch64.tar.xz上传到服务器解压到安装目录tar -xf mysql-8.0.35-linux-glibc2.28-aarch64.tar.xz -C /usr/local/ mv /usr/local/mysql-8.0.35-linux-glibc2.28-aarch64/* /usr/local/mysql/然后执行初始化。MySQL 8.0的初始化和5.7有区别8.0默认会生成一个临时root密码需要记录下来cd /usr/local/mysql bin/mysqld --initialize --usermysql --basedir/usr/local/mysql --datadir/data/mysql执行完这条命令后终端会输出类似这样的信息2024-01-15T08:30:22.123456Z 6 [Note] [MY-010454] [Server] A temporary password is generated for rootlocalhost: jK9#mP2$vL8q冒号后面的那串就是临时密码务必记下来第一次登录必须用它。如果初始化过程中报错最常见的原因是libaio没装或者/data/mysql目录权限不对。错误信息通常会明确提示比如error while loading shared libraries: libaio.so.1那就说明libaio的rpm包没装上。注意初始化命令里的--basedir和--datadir参数必须用绝对路径用相对路径在某些麒麟V10的版本上会导致初始化失败。3.3 配置文件的最小化编写MySQL 8.0的配置文件不需要写太多东西但有几个关键参数必须设置。在/etc/my.cnf写入以下内容[mysqld] basedir/usr/local/mysql datadir/data/mysql socket/tmp/mysql.sock port3306 usermysql character-set-serverutf8mb4 collation-serverutf8mb4_general_ci log-error/data/mysql/mysql-error.log pid-file/data/mysql/mysql.pid [client] socket/tmp/mysql.sock default-character-setutf8mb4这里解释几个关键点socket路径放在/tmp下是因为麒麟V10的/var/lib/mysql目录默认权限比较严格放在那里容易遇到权限问题character-set-server设为utf8mb4是现在的标准做法兼容emoji和生僻字log-error和pid-file指向数据目录方便统一管理。实操心得不要照搬网上那些几百行的my.cnf模板很多参数在MySQL 8.0里已经废弃或者默认值就很合理。配置文件越简单出问题的概率越小。后续需要调优再逐项添加。3.4 启动MySQL并修改root密码先用安全模式启动MySQL跳过权限验证bin/mysqld_safe --defaults-file/etc/my.cnf --skip-grant-tables 然后用客户端连接bin/mysql -u root --socket/tmp/mysql.sock在MySQL命令行里执行FLUSH PRIVILEGES; ALTER USER rootlocalhost IDENTIFIED BY 你的新密码;改完密码后退出杀掉mysqld_safe进程再用正常模式启动bin/mysqld_safe --defaults-file/etc/my.cnf 用新密码验证登录bin/mysql -u root -p --socket/tmp/mysql.sock能正常进入就说明安装成功了。4. 配置systemd服务实现开机自启4.1 编写systemd服务单元文件麒麟V10使用systemd管理服务我们需要创建一个mysql.service文件。在/etc/systemd/system/目录下创建[Unit] DescriptionMySQL Server Afternetwork.target Aftersyslog.target [Install] WantedBymulti-user.target [Service] Usermysql Groupmysql Typeforking PIDFile/data/mysql/mysql.pid ExecStart/usr/local/mysql/bin/mysqld_safe --defaults-file/etc/my.cnf ExecStop/usr/local/mysql/bin/mysqladmin -u root -p你的密码 --socket/tmp/mysql.sock shutdown TimeoutSec300 PrivateTmptrue LimitNOFILE65536这里有几个关键点需要说明。Typeforking是因为mysqld_safe会fork一个子进程systemd需要知道主进程的PID在哪里所以必须配合PIDFile使用。ExecStop用mysqladmin shutdown而不是直接kill这样MySQL会优雅关闭避免数据损坏。LimitNOFILE65536是设置文件描述符上限MySQL在高并发下需要这个值足够大。注意ExecStop里的密码是明文写在文件里的如果对安全性要求高可以创建一个专用的shutdown用户只授予SHUTDOWN权限然后用这个用户的密码。4.2 启用服务并验证自启写完service文件后执行systemctl daemon-reload systemctl enable mysql systemctl start mysql systemctl status mysqldaemon-reload是让systemd重新读取服务文件每次修改service文件后都必须执行。enable是设置开机自启start是立即启动。如果status显示active (running)说明服务正常。然后重启服务器验证自启reboot重启后等系统起来直接执行systemctl status mysql如果显示running说明自启配置成功。4.3 常见启动失败原因排查systemd服务启动失败的原因通常集中在几个地方。我整理了一个速查表现象可能原因解决方法status显示failed日志提示permission denied数据目录权限不对chown -R mysql:mysql /data/mysql启动后立即退出日志无明确错误PIDFile路径不对确认my.cnf里的pid-file和service里的PIDFile一致报错Cant create/write to file/tmp权限或空间问题检查/tmp权限确认磁盘空间充足报错Address already in use3306端口被占用ss -tlnp启动超时TimeoutSec太短增大TimeoutSec到600排查时最有用的是看两个地方的日志journalctl -u mysql -n 50看systemd层面的日志/data/mysql/mysql-error.log看MySQL自身的日志。两个结合起来看基本能定位到问题。实操心得麒麟V10的SELinux默认可能是 enforcing 状态如果MySQL数据目录放在非标准路径比如/dataSELinux可能会阻止MySQL访问。临时可以用setenforce 0验证是否是SELinux的问题如果是需要给数据目录打上正确的SELinux标签semanage fcontext -a -t mysqld_db_t /data/mysql(/.*)?然后restorecon -Rv /data/mysql。5. 离线环境下的依赖问题深度解析5.1 麒麟V10 ARM的依赖特殊性麒麟V10 ARM版本的软件源跟x86版本不完全一样有些在x86上常见的包在ARM源里可能版本不同或者名字不同。比如libaio在x86的CentOS 7上是libaio-0.3.109在麒麟V10 ARM上可能是libaio-0.3.111虽然功能一样但如果你从x86机器上拷rpm包过来会因为架构不匹配装不上。所以收集依赖包的时候一定要在同架构同系统版本的机器上执行yumdownloader。如果没有第二台麒麟V10 ARM机器可以考虑用Docker在x86机器上模拟ARM环境但这种方法比较折腾不如直接找一台同配置的机器来得快。5.2 依赖缺失的典型报错和处理最常见的依赖报错是error while loading shared libraries后面跟一个.so文件名。处理方法是用ldd命令检查mysqld的依赖ldd /usr/local/mysql/bin/mysqld | grep not found输出会列出所有缺失的库。然后根据库名找到对应的rpm包。比如libaio.so.1 not found就说明需要安装libaio包。另一个常见的坑是libtirpc。MySQL 8.0在某些麒麟V10版本上需要libtirpc.so.3但系统自带的可能是libtirpc.so.1。这种情况下需要从麒麟的更新源里找libtirpc的新版本或者从MySQL的二进制包里找自带的libtirpc。注意不要随便从网上下载来路不明的.so文件放到/usr/lib64里版本不匹配可能导致更严重的问题。优先用系统包管理器安装实在不行再从可信的官方源获取。5.3 用rpm批量安装依赖的正确姿势把所有依赖rpm包放在一个目录里然后执行rpm -ivh *.rpm --nodeps --force--nodeps是跳过依赖检查--force是强制安装。这两个参数在离线环境下很常用因为有时候rpm包之间的依赖关系在离线环境下无法自动解析但实际运行时并不缺东西。不过要谨慎使用--force它可能会覆盖系统已有的重要包。更安全的做法是先尝试正常安装rpm -ivh *.rpm如果报依赖错误再根据错误信息逐个处理。只有当确认依赖已经满足但rpm元数据不认的时候才用--nodeps。6. 实操中遇到的典型问题与解决记录6.1 初始化时报错cannot create directory这个问题的原因是/data/mysql目录不存在或者权限不对。MySQL初始化时会尝试在datadir下创建子目录如果datadir本身不存在或者mysql用户没有写权限就会报这个错。解决方法mkdir -p /data/mysql chown -R mysql:mysql /data/mysql chmod 750 /data/mysql权限设为750而不是777是因为MySQL的数据目录包含敏感数据权限过宽会有安全风险。6.2 服务启动后客户端连不上服务显示running但用mysql -u root -p连接时报Cant connect to local MySQL server through socket /tmp/mysql.sock。这个问题通常是socket文件路径不一致导致的。检查方法# 看MySQL实际使用的socket路径 ps aux | grep mysqld | grep socket # 看客户端默认的socket路径 mysql --help | grep socket如果两者不一致要么在my.cnf的[client]段里指定正确的socket路径要么在连接时用--socket参数显式指定。实操心得麒麟V10上/tmp目录可能会被systemd的PrivateTmp设置隔离导致不同服务看到的/tmp不是同一个。如果遇到socket文件找不到的问题可以把socket路径改到/data/mysql/mysql.sock避免/tmp的干扰。6.3 开机自启时MySQL启动比网络慢有时候重启后MySQL服务显示failed但手动systemctl start mysql又能正常启动。这种情况通常是启动顺序问题。MySQL在启动时可能需要解析主机名如果网络还没完全就绪解析会超时导致启动失败。解决方法是在service文件的[Unit]段里加上Afternetwork-online.target Wantsnetwork-online.targetnetwork-online.target比network.target更严格它确保网络接口已经配置完成并且可以通信。不过这个target在某些麒麟V10版本上可能不存在如果加了之后systemd报错就改回network.target然后在MySQL的my.cnf里加上skip-name-resolve跳过主机名解析。6.4 数据目录迁移后的权限问题如果后续需要把数据目录从/data/mysql迁移到其他路径比如挂载了新的大容量磁盘迁移后必须重新设置权限和SELinux标签systemctl stop mysql cp -a /data/mysql /newpath/mysql chown -R mysql:mysql /newpath/mysql # 如果SELinux是enforcing semanage fcontext -a -t mysqld_db_t /newpath/mysql(/.*)? restorecon -Rv /newpath/mysql # 修改my.cnf里的datadir systemctl start mysqlcp -a保留所有权限和属性比cp -r更安全。迁移完成后一定要验证MySQL能正常启动并且数据完整。7. 性能调优与日常维护建议7.1 ARM架构下的参数调优ARM架构和x86架构在内存模型和CPU缓存上有差异MySQL的一些默认参数在ARM上可能不是最优的。根据我的实测在鲲鹏92064核的机器上以下几个参数值得调整innodb_buffer_pool_size8G innodb_io_capacity2000 innodb_read_io_threads8 innodb_write_io_threads8innodb_buffer_pool_size通常设为物理内存的50%-70%如果是专用数据库服务器可以到80%。innodb_io_capacity在ARM上可以设得比x86高一些因为ARM的IOPS表现通常更好。读写IO线程数在ARM多核环境下可以适当增加。注意调优参数不要一次改太多每次改一两个观察一段时间再继续。改完参数后重启MySQL用SHOW VARIABLES LIKE innodb_buffer_pool_size确认生效。7.2 备份策略的离线实现离线环境下没法用云备份服务只能用本地的mysqldump或者xtrabackup。mysqldump适合数据量不大的场景/usr/local/mysql/bin/mysqldump -u root -p密码 --all-databases --single-transaction --routines --triggers /backup/mysql_$(date %Y%m%d).sql--single-transaction保证InnoDB表的一致性快照不会锁表。--routines和--triggers导出存储过程和触发器。对于数据量超过50G的场景建议用Percona XtraBackup的ARM版本但XtraBackup对ARM的支持不如MySQL本身好需要找专门的aarch64编译版本。7.3 监控和日志轮转MySQL的错误日志会一直增长需要配置日志轮转。在/etc/logrotate.d/下创建mysql文件/data/mysql/mysql-error.log { daily rotate 30 missingok compress delaycompress notifempty create 640 mysql mysql }这样每天轮转一次保留30天自动压缩旧日志。麒麟V10自带logrotate不需要额外安装。监控方面离线环境可以用mysqladmin status或者SHOW GLOBAL STATUS定期采集关键指标写个简单的shell脚本记录到本地文件即可。重点关注的指标包括Threads_connected、Innodb_buffer_pool_hit_rate、Slow_queries。8. 几个容易忽略的细节和最后的经验分享整个部署流程走下来有几个细节是我踩过坑之后才意识到的。第一个是麒麟V10的防火墙默认可能是开启状态3306端口没有放行的话远程客户端连不上。用firewall-cmd --add-port3306/tcp --permanent然后firewall-cmd --reload放行。如果不需要远程访问保持防火墙开启只允许本地socket连接反而更安全。第二个是时区问题。麒麟V10默认可能是UTC时区MySQL启动后SELECT NOW()返回的时间跟本地时间差8小时。在my.cnf里加上default-time-zone08:00或者在初始化之前用timedatectl set-timezone Asia/Shanghai设置系统时区。第三个是root密码策略。MySQL 8.0默认安装了validate_password插件要求密码包含大小写字母、数字和特殊字符长度至少8位。如果设置的密码太简单会报错。离线环境下如果不需要这么严格的策略可以在my.cnf里加上validate_password.policyLOW降低要求或者直接卸载插件。最后分享一个我个人的习惯每次部署完MySQL之后我会创建一个deploy_record.txt文件放在/root下记录这次部署的MySQL版本、依赖包版本、关键配置参数、临时密码首次修改后删除、遇到的问题和解决方法。下次再遇到类似环境直接翻记录就能快速复现不用重新踩一遍坑。这个习惯在离线环境下尤其重要因为没法随时上网查资料自己的记录就是最好的文档。

相关新闻

基于LangGraph的智能资讯日报Agent:自动采集、摘要与推送

基于LangGraph的智能资讯日报Agent:自动采集、摘要与推送

我每天早晨最早做的事情之一,是花四十分钟快速扫一遍行业资讯。这个习惯坚持了快两年,直到最近终于忍无可忍——信息来源实在太多了,今天想读的东西没读完,明天又堆上来,光“筛选哪些值得读”这个动作,每天…

2026/9/19 6:51:03 阅读更多 →
Bilibili-Evolved「隐藏首页顶部横幅」组件源码解析:样式机制、多版本兼容与暗色模式适配

Bilibili-Evolved「隐藏首页顶部横幅」组件源码解析:样式机制、多版本兼容与暗色模式适配

Bilibili-Evolved「隐藏首页顶部横幅」组件源码解析:样式机制、多版本兼容与暗色模式适配 【免费下载链接】Bilibili-Evolved 强大的哔哩哔哩增强脚本 项目地址: https://gitcode.com/gh_mirrors/bi/Bilibili-Evolved 本文以 Bilibili-Evolved 增强脚本仓库中…

2026/9/19 6:51:03 阅读更多 →
Google ADK Kotlin 智能体开发实战:工具、会话与多Agent编排

Google ADK Kotlin 智能体开发实战:工具、会话与多Agent编排

1. 为什么 ADK 要专门支持 Kotlin:先搞清楚这东西到底解决什么问题Kotlin 后端圈子里最近有件挺值得琢磨的事——Google 把自家的 Agent Development Kit(ADK)搬到了 JVM 生态上,而 Kotlin 因为和 Java 的无缝互操作,等…

2026/9/19 6:50:02 阅读更多 →

最新新闻

HTML与CSS基础复习:从文档结构到盒模型居中与动画

HTML与CSS基础复习:从文档结构到盒模型居中与动画

做前端的这些年&#xff0c;我发现自己陷入过一个循环&#xff1a;新框架出来就追&#xff0c;组件库换了一茬又一茬&#xff0c;可真到某个晚上要写一个不带任何框架的纯页面时&#xff0c;反而被 HTML 和 CSS 的基础细节卡住了。尤其是<!doctype html>、<html lang&…

2026/9/19 7:39:26 阅读更多 →
区域综合能源系统双层优化调度与Matlab实现

区域综合能源系统双层优化调度与Matlab实现

1. 项目概述在能源系统优化领域&#xff0c;区域综合能源系统&#xff08;RIES&#xff09;的双层优化调度是一个极具挑战性的课题。作为一名长期从事能源系统建模的研究者&#xff0c;我最近成功复现了张海静等学者提出的"计及需求响应的区域综合能源系统双层优化调度策略…

2026/9/19 7:39:26 阅读更多 →
Quail 4升级:Flutter构建链现代化改造与迁移实践指南

Quail 4升级:Flutter构建链现代化改造与迁移实践指南

1. 升级Quail 4当天&#xff0c;构建日志把我吓了一跳安全起见&#xff0c;我升级大版本向来比同行慢半拍。这次 Android Studio Quail 4 正式发布后&#xff0c;我照例先盯着社区观察了将近一周&#xff0c;确认没有大面积翻车&#xff0c;才把主力开发机从上一个版本切过来。…

2026/9/19 7:39:26 阅读更多 →
LDA主题模型调参实战:alpha、eta、passes参数调优指南

LDA主题模型调参实战:alpha、eta、passes参数调优指南

1. 为什么LDA调参值得单独拿出来讲做过文本挖掘的人都有一个共识&#xff1a;LDA&#xff08;Latent Dirichlet Allocation&#xff09;主题模型的上手门槛极低&#xff0c;但调参门槛极高。gensim 里几行代码就能跑出一个模型&#xff0c;可当你拿着输出结果去汇报时&#xff…

2026/9/19 7:39:26 阅读更多 →
使用 aws_identitystore_groups 数据源批量检索 AWS IAM Identity Center 群组列表

使用 aws_identitystore_groups 数据源批量检索 AWS IAM Identity Center 群组列表

使用 aws_identitystore_groups 数据源批量检索 AWS IAM Identity Center 群组列表 【免费下载链接】terraform-provider-aws The AWS Provider enables Terraform to manage AWS resources. 项目地址: https://gitcode.com/GitHub_Trending/te/terraform-provider-aws …

2026/9/19 7:39:26 阅读更多 →
不会代码怎么搞网站?专业建设网站多少钱图解步骤全解析

不会代码怎么搞网站?专业建设网站多少钱图解步骤全解析

不会代码怎么搞网站?专业建设网站多少钱图解步骤全解析 手里有项目想落地,但看着满屏的代码头大,心里直打鼓: 自己不会代码想做网站 ,到底要花多少钱才能搞定一个像样的官网?这行水太深,报价从几千到几十万都有,坑更多。别慌,今天咱不整虚的,直接上干货。 这篇内容就是为你准备的 图解步骤…

2026/9/19 7:38:55 阅读更多 →

日新闻

BP神经网络时序预测:滑窗长度与多窗口平均策略

BP神经网络时序预测:滑窗长度与多窗口平均策略

简介&#xff1a;面向机器学习、深度学习与数据建模学习者的一份完整研究文献&#xff0c;聚焦BP神经网络在农业产量预测中的应用。文档以1980—2018年全国棉花产量为样本&#xff0c;系统讲解数据归一化处理、激活函数原理、多层神经网络结构搭建及训练流程&#xff0c;展示敏…

2026/9/19 0:00:30 阅读更多 →
Transformer训练实时监控实战:基于MindSpore的损失曲线可视化方案

Transformer训练实时监控实战:基于MindSpore的损失曲线可视化方案

上个月调一个Deformable DETR模型&#xff0c;在单卡上要跑将近两天。第二天早上我下意识打开终端翻日志&#xff0c;发现loss从凌晨两点就开始往上爬&#xff0c;一路从0.8涨到1.35&#xff0c;整整六个小时没人发现。那六个小时的训练不仅白跑&#xff0c;还霸占着卡——等于…

2026/9/19 0:00:30 阅读更多 →
OpenCloud 中的 Go 类型安全转换库 spf13/cast:从零值回退到泛型 API 的完整实战指南

OpenCloud 中的 Go 类型安全转换库 spf13/cast:从零值回退到泛型 API 的完整实战指南

OpenCloud 中的 Go 类型安全转换库 spf13/cast&#xff1a;从零值回退到泛型 API 的完整实战指南 【免费下载链接】opencloud &#x1f324;️ OpenCloud is the open source platform for file management, sharing and collaboration. Simple and sovereign. 项目地址: htt…

2026/9/19 0:00:30 阅读更多 →

周新闻

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验

AI SDK Harness 依赖更新指南&#xff1a;掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验 【免费下载链接】ai The AI Toolkit for TypeScript. From the creators of Next.js, the AI SDK is a free open-source library for building AI-powered applications and ag…

2026/9/19 3:59:36 阅读更多 →
Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化

Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化

Refine v5 Ant Design NumberField 组件实战&#xff1a;基于 Intl 的本地化数字格式化 【免费下载链接】refine A React Framework for building internal tools, admin panels, dashboards & B2B apps with unmatched flexibility. 项目地址: https://gitcode.com/GitH…

2026/9/19 3:53:08 阅读更多 →
Flutter应用改名全指南:从Android到iOS的配置与工具实践

Flutter应用改名全指南:从Android到iOS的配置与工具实践

刚接一个外包项目时&#xff0c;甲方要求把工程里临时用的应用名改成正式产品名。我本来觉得“改名”这种小事&#xff0c;打开配置文件改一行不就完了&#xff1f;结果真动手才发现&#xff0c;Flutter项目里“应用名称”根本不是一处配置&#xff0c;而是一整套散落在 Androi…

2026/9/19 4:02:43 阅读更多 →

月新闻

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

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

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

2026/9/16 22:31:27 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

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

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

2026/9/15 21:39:18 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理&#xff1a;核心链路应该先拆哪一步分类&#xff1a;[工程技术]细分主题&#xff1a;Docker 容器化技术与镜像安全管理&#xff1a;核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用&#xff08;包含 Web 接口、后台…

2026/9/16 22:32:59 阅读更多 →