Mac上安装MySQL 5.7.11:从初始化到避坑的完整指南
简介这是一份面向Mac用户安装与卸载MySQL 5.7.11的简明实操文档适合开发者在本地搭建或清理数据库环境时对照使用。资源以PDF格式保存共1个文件大小约47KB内容按安装、改密、卸载三个阶段组织步骤紧凑且备注了临时root密码的保存提示。安装部分覆盖官网下载DMG包、向导安装、启动MySQL服务并通过终端完成临时密码修改与登录验证若用户未留意密码弹窗文档还提示可从通知栏找回临时密码避免配置中断。卸载部分则列出了需以管理员权限执行的完整命令清单覆盖删除安装目录、启动项、偏好设置、系统收据等残留文件同时提醒检查hostconfig及/usr/local目录帮助用户彻底清理环境。对于多次安装失败导致MySQL残留、环境混乱的情况这套完整梳理能有效减少手动排查时间已有1571人学习可作为Mac上MySQL 5.7.11安装与卸载全流程的可靠参考。1. 为什么还在装 5.7.11老版本 MySQL 在 Mac 上的真实处境接手老项目的本地开发环境时第一件事往往就是在 Mac 上装一个 Mysql5.7.11。这个版本发布于 2016 年按软件生命周期算已经是老古董但线上服务器跑的是 5.7本机只要版本一漂移SQL 行为就会出差异排序规则、隐式转换、JSON 函数行为全都不一样调试到半夜才发现是版本问题极为折腾。这篇文章讲的就是在 Mac 上从零装好 5.7.11、完成初始化与连接、再把坑挨个填平的操作路径适合开发、测试和数据岗位的从业者也适合那些频繁在 Mac 上搭建开发环境的人——今天装 Maven、明天装 MySQL每个软件的坑都得自己趟一遍。2. 装前准备版本指纹、安装包来源与两种安装方式的取舍2.1 5.7.11 的官方归档与国内镜像怎么选MySQL 官网下载页现在默认推 8.05.7 系列藏在 Archives 归档里按版本号翻到 5.7.11选择 macOS 平台对应的 dmg 即可。文件名格式大致是 mysql-5.7.11-macos10.11-x86_64.dmg体积在 200MB 上下下载时认准 x86_64 字样不要拿成 Linux 的 tar.gz。官方归档虽然还在但从国外服务器拖文件速度不稳定常见做法是找国内镜像站的 MySQL 目录镜像站一般按版本号目录组织路径比官方归档还规整。下载完成后别急着双击先做一步校验。dmg 里带的是 MySQL 官方签名的 pkg 安装包用系统自带的工具就能验签名# 先挂载 dmg再用 pkgutil 校验安装包签名 hdiutil attach ~/Downloads/mysql-5.7.11-macos10.11-x86_64.dmg pkgutil --check-signature /Volumes/mysql-5.7.11-macos10.11-x86_64/pkg/Install.pkghdiutil attach是把 dmg 挂载成虚拟磁盘的命令挂载后安装包会出现在 /Volumes 目录下pkgutil --check-signature检查 pkg 的签名是否有效输出里有“Status: signed by a certificate issued by Apple”或类似字样就说明包是完整的。下载源再怎么可信这一步都别省签名校验是确认安装包没被替换的最直接手段。校验通过后再双击 pkg 安装。这里有个容易被忽略的点机器上如果已经装过其他版本的 MySQL装 5.7.11 之前最好先停掉旧服务否则两个实例抢 3306 端口装完连不上你都不知道是哪个进程在监听。2.2 dmg 安装和 Homebrew 安装我的选择逻辑Mac 上装 MySQL 5.7.11 有两条主流路dmg 安装包和 Homebrew。dmg 是官方二进制装完目录固定在 /usr/local/mysql数据目录、socket、命令行客户端都集中在固定路径下系统设置里还会多出一个 MySQL 图标面板可以手动启停服务。Homebrew 则把 MySQL 当作一个普通软件包管理路径在 /usr/local/Cellar 下版本切换方便但 5.7 这个版本在 homebrew-core 里已经被下架了直接brew install mysql5.7大概率提示找不到 formula需要先brew extract把自己要的版本拉到私有 tap 里再装折腾程度不低。我的选择逻辑很简单如果只是本机开发用选 dmg如果要在多个 MySQL 版本之间来回切换或者重度依赖 brew 统一管理环境才走 Homebrew 路线。dmg 的 Preference Pane 虽然功能简单但“系统设置里有一个开关”这件事对新手非常友好出问题时的排查路径也更短。Homebrew 路线的最大变数是依赖环境——机器上 brew 本身装失败、换源报错、依赖的 openssl 版本不对任何一环出问题都会让安装过程变成一件不可控的事这些坑我后文会专门讲。2.3 检查你的 Mac 能不能跑Intel 与 Apple Silicon 的差异5.7.11 发布的年代还没有 Apple Silicon官方 dmg 只有 x86_64 架构。这意味着 M1/M2/M3 系列的 Mac 装这个版本靠的是 Rosetta 翻译层运行 x86_64 二进制能启动、能跑但启动速度和复杂查询的性能会比原生 arm64 版本差一截。装之前先确认一下架构# 查看当前 Mac 的 CPU 架构 uname -m输出x86_64说明是 Intel 芯片或无 Rosetta 转换的终端直接跑输出arm64则要确认终端是否通过 Rosetta 运行常见做法是确保安装包里的可执行文件能被系统自动翻译——macOS 在首次运行 x86_64 二进制时会询问是否安装 Rosetta同意即可。另外5.7.11 的 dmg 安装向导在 Apple Silicon 上同样能完成只是安装目录下的 mysqld 是 x86_64 版本。如果这台机器是纯 arm64 且追求原生性能建议直接用 5.7 系列里最后几个版本比如 5.7.44它提供了 arm64 二进制但那是另一个话题本文后续全部围绕 5.7.11 展开。3. 安装并完成第一次启动Preference Pane 与命令行的两条路径3.1 用 dmg 向导装完第一步看弹出的临时密码dmg 安装向导走完最后一步会弹出一个对话框展示 root 用户的临时密码这是 5.7 系列的安全策略安装过程自动生成一个随机强密码之后必须拿这个临时密码登录再修改。很多人装完顺手就关掉了弹窗后面登录时才发现密码不知道这个坑极其常见。安装完成后系统设置最底部会出现一个 MySQL 图标面板打开后可以看到一个 Start MySQL Server 按钮。点击启动服务起来后按钮会变成 Stop。此时打开终端用临时密码登录# 用安装时弹出的临时密码登录 root /usr/local/mysql/bin/mysql -uroot -p-u指定用户-p表示需要密码回车后会提示输入临时密码。登录成功后建议第一件事就是改掉临时密码因为自动生成的密码基本没法实际使用。修改方法在 4.2 节会说清楚。这里重点提示一点Preference Pane 启动服务时如果 MySQL 数据目录里的文件权限不对面板会直接报 “The MySQL server could not be started”但报错信息不给出具体原因真正的日志要看数据目录下的 .err 文件。3.2 如果没记住临时密码去 .err 日志里捞安装时弹窗没看见、或者安装完隔了几天才第一次启动临时密码早就忘了这是最普遍的情况。5.7.11 在初始化数据目录时会把临时密码写进错误日志文件路径固定# 从错误日志中提取临时密码 tail -n 50 /usr/local/mysql/data/*.err | grep temporary password.err文件是 MySQL 实例的错误日志记录启动过程、初始化结果和运行时的错误。首次初始化时日志里会有一行类似[Note] A temporary password is generated for rootlocalhost: xxxxxxxx冒号后面那一串就是临时密码。如果日志里找不到说明数据目录可能被初始化过多次密码条目被覆盖了这时候只能走 5.2 节的重置方案。这个 .err 文件也是整个 MySQL 运维里最重要的排查入口启动失败、崩溃、连接异常第一现场几乎都在这里。3.3 命令行启动与停止mysql.server 和 mysqld_safe 的区别Preference Pane 能解决启停问题但命令行方式对写脚本、排查问题的人来说是基本功。MySQL 安装包自带两个启动入口都在 support-files 目录下# 用 mysql.server 启停这是最推荐的方式 /usr/local/mysql/support-files/mysql.server start /usr/local/mysql/support-files/mysql.server stop /usr/local/mysql/support-files/mysql.server restartmysql.server是一个包装脚本它根据配置找到 mysqld 并以后台进程方式拉起start/stop/restart 三个参数覆盖了日常所有操作。脚本内部走的是“寻找可执行文件、检查数据目录、启动守护进程”的流程失败时会把错误原因抛到终端比 Preference Pane 的黑匣子式报错直观得多。另一种方式是直接跑 mysqld_safe# 以安全模式启动日志实时输出到终端 /usr/local/mysql/bin/mysqld_safe --usermysql mysqld_safe是 MySQL 官方提供的守护进程包装器它会监控 mysqld 的运行状态mysqld 异常退出时自动尝试重启同时把错误日志接到终端或指定文件。--usermysql指定以 mysql 系统用户运行Mac 上安装包默认创建了_mysql用户这里填 mysql 也能解析到对应账户。日常开发用 mysql.server 足够mysqld_safe 更多用在排障时因为它能把日志流直接打到屏幕启动崩溃的原因一眼能看到。无论用哪种方式启动第一次跑之前都要确认 PATH。安装目录下的 bin 目录不在系统默认 PATH 里直接在终端敲mysql会提示 command not found。把路径写进 shell 配置文件是最省事的方式# 写入用户级环境变量source 后立即生效 echo export PATH/usr/local/mysql/bin:$PATH ~/.zshrc source ~/.zshrc是追加写不会覆盖原有内容source让当前 shell 重新加载配置文件。改完之后再敲mysql --version能输出版本信息就可以不用全路径调用客户端了。4. 连接、参数与日常使用端口、socket、my.cnf 和字符集4.1 从命令行到 GUI三个连接工具的实际差别MySQL 装好之后真正的日常是从各种客户端连进去。命令行客户端最轻量适合快速执行几条 SQL但日常开发、看表结构、编辑数据没有 GUI 工具效率会低不少。Mac 生态里常用的是 Navicat、DBeaver 和 Sequel Ace。Navicat 功能最全但收费DBeaver 免费且跨平台支持几乎所有数据库Sequel Ace 是开源的 MySQL 专用客户端界面清爽对 MySQL 的特性支持最贴合。无论用哪个工具连接参数本质一样host: 127.0.0.1 port: 3306 user: root password: 你自己设置的密码 socket: /tmp/mysql.sock本地连接时可用这里有一个经常被问起的坑host 填 localhost 和填 127.0.0.1 走的是不同连接通道。填 localhost 时 MySQL 客户端优先走 socket 文件填 127.0.0.1 走 TCP 端口。如果 MySQL 配置了 skip-networking 或者 socket 路径不对localhost 能连而 127.0.0.1 连不上反之亦然。GUI 工具一般默认 TCP所以排查连接失败时先搞清楚工具走的通道再查配置。另外GUI 工具里如果勾选了把密码存进钥匙串后续用命令行改掉 root 密码后GUI 里的旧连接还会用旧密码去认证表现是“工具连不上但命令行能连上”处理办法是去钥匙串访问里搜 mysql 关键字把对应的旧条目删掉再重连。这算 Mac 平台独有的一类连接问题踩过一次之后就记住了。4.2 第一次登录就改 root 密码与默认认证插件装上 5.7.11 后第一件正事是改 root 密码。临时密码是随机生成的既不好记也不符合自己常用的密码策略。登录后执行-- 修改 root 用户密码并让它对所有主机可登录 ALTER USER rootlocalhost IDENTIFIED BY 你自己的新密码; FLUSH PRIVILEGES;ALTER USER是 5.7 官方推荐的改密方式它会同步更新 mysql.user 表里的 authentication_string 字段FLUSH PRIVILEGES让权限变更立即生效不用重启服务。这里要顺带说一个 5.7.11 至今仍被选择的原因默认认证插件是 mysql_native_password。而 8.0 之后默认换成了 caching_sha2_password很多老项目的老版本客户端、老语言驱动不支持新插件连 8.0 会直接报认证失败。5.7.11 用的还是老插件兼容性极广这也是老版本仍有生存空间的技术背景之一。改完密码后顺手确认一下认证插件-- 查看 root 用户当前的认证插件 SELECT user, host, plugin FROM mysql.user WHERE userroot;看到mysql_native_password就说明当前连接方式是被绝大多数老客户端兼容的模式。4.3 my.cnf 的三个常用段落mysqld、client、mysqldumpMySQL 的行为由配置文件控制Mac 上 5.7.11 默认不创建 my.cnf系统会按固定顺序读取/etc/my.cnf、/etc/mysql/my.cnf、/usr/local/mysql/etc/my.cnf、~/.my.cnf。找不到文件就用编译时的默认参数运行。日常开发最好自己建一个把最常用的参数写进去# /usr/local/mysql/etc/my.cnf 示例 [mysqld] port 3306 bind-address 127.0.0.1 character-set-server utf8mb4 collation-server utf8mb4_general_ci max_connections 200 [client] port 3306 socket /tmp/mysql.sock default-character-set utf8mb4 [mysqldump] quick single-transaction[mysqld]段是服务端的核心配置port 指定监听端口bind-address 设为 127.0.0.1 表示只允许本机连接有安全意义character-set-server 和 collation-server 决定库表的默认字符集utf8mb4 是 2025 年写新项目的基本底线避免 emoji 和生僻字入库变成问号。[client]段是命令行客户端的默认参数socket 路径必须和 mysqld 段一致否则客户端报找不到 socket。[mysqldump]段里的 single-transaction 用于 InnoDB 表的逻辑备份保证备份期间数据一致。改完配置记得重启服务Preference Pane 里点 Stop 再 Start或者命令行mysql.server restart。配置文件读取顺序的坑在于如果 /etc/my.cnf 和 /usr/local/mysql/etc/my.cnf 同时存在两个都会被读取且后读的覆盖先读的所以有时候你改了其中一个文件发现不生效先看看是不是另一个文件里的同名参数把值覆盖掉了。这类问题排查时用下面这条命令能看到当前生效的所有参数# 查看 MySQL 实际生效的配置项 /usr/local/mysql/bin/mysqld --verbose --help | grep -E ^(port|socket|character-set-server)mysqld --verbose --help会打印编译默认值和配置文件合并后的最终值是所有“配置改了但没生效”类问题的标准排查入口。5. 避坑清单5.7.11 在 Mac 上最容易翻车的五个场景5.1 升级系统后启动即崩dyld 报错与数据目录权限现象macOS 大版本升级后Preference Pane 启动 MySQL 一直转圈最后提示失败看 .err 日志里出现dyld: Library not loaded或Permission denied。原因5.7.11 编译于 2016 年老二进制与新版系统库的兼容性已成问题dyld 无法加载某些旧库路径另一类是升级系统时 /usr/local/mysql 目录下的文件权限被动过mysqld 没有权限写数据目录。解决dyld 类问题基本无解官方在后续小版本里修过 macOS 兼容性最直接的方案是备份数据目录后换 5.7 系列末尾版本权限类问题则执行chown -R _mysql:wheel /usr/local/mysql/data把数据目录归属修正再启动就能拉起来。5.2 root 密码忘了skip-grant-tables 重置流程现象登录时报Access denied for user rootlocalhost.err 日志里也找不到临时密码。原因安装弹窗被关、临时密码过期或数据目录是别人拷贝过来的。解决以跳过授权表的方式启动实例再手工更新密码# 停掉正常实例以跳过认证方式启动 /usr/local/mysql/support-files/mysql.server stop /usr/local/mysql/bin/mysqld_safe --skip-grant-tables --skip-networking --skip-grant-tables让 MySQL 启动时不加载授权表任何用户都能免密登录--skip-networking同时禁掉 TCP 监听只保留本地 socket避免在免认证状态下被其他机器连接。等实例起来后-- 免密登录后直接用 UPDATE 重置密码 mysql -uroot UPDATE mysql.user SET authentication_stringPASSWORD(新密码) WHERE Userroot; FLUSH PRIVILEGES;PASSWORD()函数在 5.7 里仍可用直接生成认证哈希写入 user 表ALTER USER 在 skip-grant-tables 模式下有时不生效UPDATE 是更可靠的做法。密码改完必须重启正常模式把之前启动的 mysqld_safe 进程 kill 掉再跑mysql.server start。这个流程操作完整个实例是被改动过的建议顺手跑一下mysql_upgrade校验系统表。5.3 3306 被占老 MySQL、Docker、Homebrew 服务打架现象安装向导一切正常客户端连接却报ERROR 2002 (HY000): Cant connect to local MySQL server through socket或者能连上但登录进去发现不是自己刚装的那个库。原因机器上原本有 Homebrew 装的 MySQL、Docker 容器映射了 3306 端口或者另一个数据目录的 mysqld 正在运行。解决查监听端口和进程确认什么在占# 查看 3306 端口被哪个进程占用 lsof -i :3306lsof -i :3306输出里的 COMMAND 和 PID 就是占用的程序和进程号。确认是自己不需要的进程后用kill PID结束它再去系统设置里关掉对应的自启动项。如果进程是 Docker 起的容器正确做法是改容器端口映射而不是 kill 容器。这个坑最麻烦的点在于两个 mysqld 同时运行客户端连接时 socket 和 TCP 可能落到不同的实例上表现极其迷惑。5.4 用 Homebrew 装 5.7 失败core 仓库下架后的正解现象brew install mysql5.7报错Error: mysql5.7 has been disabled或No available formula。原因homebrew-core 在 2022 年后把 mysql5.7 移出了官方仓库原因是 5.7 进入 EOLbrew 不再维护这个版本的依赖和编译补丁。解决如果坚持用 brew先把旧版本拉进自己的 tap# 创建私有 tap把 5.7.11 从上游历史中提取出来 brew tap new-owner/homebrew-mysql brew extract mysql new-owner/homebrew-mysql --version5.7.11 brew install new-owner/homebrew-mysql/mysql5.7.11brew extract会从 homebrew-core 的 Git 历史中找出指定版本并生成 formula 文件放到你的 tap 里之后 brew 就能安装。但要注意extract 出来的 formula 依赖当时的依赖版本在新版 macOS 上编译很可能会因为 openssl、protobuf 等依赖升级而失败这时候不如直接退回 dmg 方案。我的实际建议是只要不是版本切换重度用户5.7.11 一律走 dmg 安装。5.5 卸载重装后初始化失败残留目录权限拉扯现象卸载 MySQL 后重新安装第一次启动报Cant create directory或The server quit without updating PID file。原因上一次卸载只删了 /usr/local/mysql 主目录但重新安装时安装包发现数据目录或配置文件还在于是跳过初始化直接尝试启动而残留文件属主是旧用户或权限是 755新实例以 _mysql 用户写不进去。解决卸载时不要手软把官方安装包涉及的所有路径清干净这块细节在下一章完整展开。如果已经出现这个现象直接看 /usr/local/mysql 目录的属主和权限执行chown -R _mysql:wheel /usr/local/mysql/data或者更彻底地把数据目录整个删掉让安装包重新初始化。对于本机开发环境数据目录里没有不可恢复的内容时删掉重来比修权限更快。6. 卸载与清理三遍把 MySQL 5.7.11 从 Mac 上删干净6.1 正序卸载停服务、删文件、删自启动项卸载这步写在这篇的最后是因为它确实是安装过程的镜像——装的时候埋了多少文件卸的时候就要清多少。只把 /usr/local/mysql 拖进废纸篓是远远不够的下次重启服务还会自己拉起来因为 LaunchDaemon 还挂在系统里。标准删除顺序如下表按顺序执行步骤目标路径作用1停服务先 Stop避免删文件时进程还在写2/usr/local/mysql主安装目录包含 bin、data、support-files3/Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist开机自启任务4/Library/PreferencePanes/MySQL.prefPane系统设置里的控制面板5/usr/local/bin 下的 mysql 系列软链命令行入口命令行操作如下# 依次执行停止服务、删除安装目录和自启文件 /usr/local/mysql/support-files/mysql.server stop sudo rm -rf /usr/local/mysql sudo rm -rf /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist sudo rm -rf /Library/PreferencePanes/MySQL.prefPanerm -rf删除目录树加sudo是因为 /Library 下的文件属主是 root普通用户没权限删。stop命令是优雅关闭让 mysqld 完成当前事务并刷新数据后再退出比直接 kill 进程干净得多。6.2 卸载后检查进程、端口和残留文件删除完还要做三项复查避免“以为删干净了下次装新版本时又翻车”# 复查端口、进程、启动任务和残留文件 lsof -i :3306 ps aux | grep mysqld ls /Library/LaunchDaemons/ | grep mysql mdfind mysql 5.7.11 | head -n 20lsof -i :3306确认端口已经空出来ps aux | grep mysqld确认没有残留进程ls /Library/LaunchDaemons检查系统自启目录是否还有 MySQL 条目mdfind是 Spotlight 的命令行接口能扫出所有文件名含 “mysql” 的残留文件包括用户目录下的 .mysql_history、日志文件、以及数据库导出工具留下的配置。这些非系统路径的残留不用全部删干净但至少要知道它们在哪否则下次安装时旧数据目录和配置文件会干扰新实例的初始化。如果当初安装走的是 Homebrew 路线卸载命令则是brew uninstall mysql5.7再加brew cleanup清理缓存。但 brew 卸载同样不会主动删除数据目录/usr/local/var/mysql 下还有旧数据需要手动确认删除。数据目录删除前尤其当里面有自己建过的库时先用 mysqldump 把需要的库导出来——我在这上面吃过一次亏以为自己只是卸个软件重装结果整个开发库连同本地测试数据一起没了最后花了一整天才从队友的备份里捞回来。删除数据目录前三秒多想一步这个是测试库还是不可再生的数据不确定就先备份再删算是卸载流程里唯一需要谨慎对待的环节。希望这篇文章能帮你在 Mac 上把 5.7.11 装得顺、用得稳、卸得干净。本文还有配套的精品资源点击获取

相关新闻

内核观测工具开发实战:从kprobe、eBPF到命名策略的十版迭代经验

内核观测工具开发实战:从kprobe、eBPF到命名策略的十版迭代经验

1. 一个被改了十版的名字,到底藏着什么门道做内核开发这些年,我见过太多项目在命名上反复折腾。有个朋友做了一套内核模块的调试工具链,前前后后改了十版名字,最后一版被要求彻底换掉重来。他当时跟我吐槽说,功能都跑通…

2026/10/11 23:34:41 阅读更多 →
英特尔桌面端处理器:性能分级、场景适配与真实负载优化指南

英特尔桌面端处理器:性能分级、场景适配与真实负载优化指南

1. 项目概述:为什么“英特尔桌面端处理器”这个标题值得深挖“英特尔桌面端处理器”这五个字,表面看是硬件圈最基础的常识性词汇,但实际拆开来看,它背后是一整套技术演进逻辑、市场博弈策略、用户真实痛点与生态适配关系的浓缩。我…

2026/10/11 23:34:41 阅读更多 →
MySQL日期函数详解:DATE_ADD与DATE_SUB实战指南

MySQL日期函数详解:DATE_ADD与DATE_SUB实战指南

做后端开发的这些年,我注意到一个很有意思的现象:不少开发者处理日期加减,第一反应是在应用层用时间戳硬算,比如在代码里写time() 30 * 86400,再格式化传进SQL。这种写法不是不行,但一旦遇到跨月、跨年、闰…

2026/10/11 23:34:34 阅读更多 →

最新新闻

嵌入式Linux安卓驱动开发:供需、实战与面试全攻略

嵌入式Linux安卓驱动开发:供需、实战与面试全攻略

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 2:53:39 阅读更多 →
共享Buffer却带宽没降?DDR流量的五大根因与排查实战

共享Buffer却带宽没降?DDR流量的五大根因与排查实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 2:53:39 阅读更多 →
OTFS信道估计实战:压缩感知与相位旋转在高速移动通信中的应用

OTFS信道估计实战:压缩感知与相位旋转在高速移动通信中的应用

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 2:53:39 阅读更多 →
Qt5.9 C++开发指南章节代码实战:从环境搭建到工程避坑

Qt5.9 C++开发指南章节代码实战:从环境搭建到工程避坑

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 2:53:39 阅读更多 →
Linux进程虚拟地址空间:从页表映射到段错误排查

Linux进程虚拟地址空间:从页表映射到段错误排查

搞Linux服务端开发的人,迟早会遇到这么一幕:程序跑着跑着突然Segmentation Fault,或者free的时候报double free,又或者top里看到某个进程的VIRT高得离谱,但RES却很低。很多人第一反应是查代码、查日志,但真…

2026/10/12 2:53:39 阅读更多 →
ESP32 上实现 ONVIF 相机:从组件搭建到 NVR 添加实战

ESP32 上实现 ONVIF 相机:从组件搭建到 NVR 添加实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 2:52:39 阅读更多 →

日新闻

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

在数码相机、高清显示屏与现代矢量图形技术高度发达的今天,画面可以做到绝对的锐利、平滑与无瑕。然而,当一张秋日手账插画或拍立得照片过于“平整无瑕”时,往往会散发出一种冰冷生硬的“数码塑料感(Digital Plasticity&#xff0…

2026/10/12 0:00:59 阅读更多 →
活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

在现代网页与移动端设计中,横排(Horizontal Layout)早已经成为了绝对的主流。然而,当我们翻开泛黄的线装古籍、宋版木刻诗集,或是欣赏一张茶道雅集的手写便签时,那种**自上而下纵向书写、自右向左逐列铺展&…

2026/10/12 0:00:59 阅读更多 →
周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

每到周日的晚上八点到十点,很多人心里都会悄悄亮起一盏警示灯。 在心理学上,这种现象有一个专门的称谓——“周日夜晚焦虑症(Sunday Scaries)”。明天又是周一,闹钟又要重新在七点响彻卧房;脑海里仿佛有一个…

2026/10/12 0:00:59 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/12 0:16:30 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/12 0:16:43 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 10:45:37 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:53 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:54 阅读更多 →