Apple Silicon Mac 安装 MySQL 完全指南(dmg 与 Homebrew 双教程)
先把话说明白这是 M 芯片系列教程的第四篇。前面几篇我陆续写了 M1/M2/M3 环境下 Homebrew、Python、Git 这些基础开发的安装折腾过程这一篇终于轮到数据库了。这个系列默认你手上是一台 Apple Silicon 的 MacBook也就是 M1、M2、M3 或者 M4 芯片的机器。为什么单独把 MySQL 拿出来写一篇因为 MySQL 在 Mac 上的安装方式虽然看着和 Intel 时代差不多但坑全藏在细节里你下载的安装包是 ARM 版还是 x86 版、初始化时认证插件选哪个、homebrew 和 dmg 两种方式装出来的目录结构完全不一样。这些不搞清楚后面项目连不上数据库的时候排查起来非常痛苦。这篇文章我会把两条最主流的路都给你走一遍官方 dmg 图形化安装以及 Homebrew 命令行安装。然后重点讲初始化配置、日常启停、可视化工具选型最后附上我实际踩过的坑和排查方法。全文直接照着操作就行适合刚入手 M 芯片 MacBook 的开发者也适合那些已经装了 MySQL 但一直觉得哪里不对劲的人对照修正。1. 安装前必须搞清楚的几件事1.1 你的 Mac 到底是 ARM 还是 Intel 架构这一步看着多余但我在各种群里见过太多人把 M 芯片 Mac 当成 Intel 机器来装软件导致装出来的 MySQL 是转译运行的老架构版本跑起来没问题一到数据量大、连接数多的时候性能就露馅。确认架构的方式很简单点击左上角苹果图标选择“关于本机”查看“芯片”一栏显示 Apple M1 / M2 / M3 等就是 ARM 架构显示 Intel 就另当别论。如果你习惯用命令行也可以在终端里执行uname -m输出结果是arm64说明就是 Apple Silicon输出是x86_64说明是 Intel 版本。这个判断直接影响你下载哪个安装包也影响后面很多工具的安装路径。M 芯片 Mac 上不是不能装 x86_64 的 MySQLmacOS 自带的 Rosetta 2 转译层可以运行它但完全没有必要官方早就有原生 ARM 版本性能和稳定性都更好。还有一个小细节如果你是在二手市场买的 MacBook拿不准机器是不是 M 芯片直接看系统信息里的芯片型号最靠谱别信外壳上的贴纸和序列号二手翻新机器水太深了。1.2 两种主流安装方式怎么选Mac 上装 MySQL 目前主流是两条路一条是去 MySQL 官网下载 dmg 安装包双击 pkg 文件一路点“继续”完成安装另一条是通过 Homebrew 执行brew install mysql命令行安装。这两条路没有绝对的好坏选择标准取决于你的使用习惯和电脑里已经装了什么。如果你平时很少用终端或者只是需要在本地跑一个数据库用来学习、做小项目dmg 图形化安装会更合适。原因是安装向导自带可视化配置界面root 密码、开机自启、端口这些核心设置都能在窗口里完成不用记命令。安装后系统设置里还会多出一个 MySQL 图标点一下就能看到服务运行状态直观多了。如果你已经在用 Homebrew 管理 Python、Git、Node 这些开发环境那直接用 brew 装 MySQL 是最省事的。好处是版本统一管理brew upgrade mysql就能升级卸载也干净不会在系统各处留下散落的文件。坏处是安装完成后所有配置都得在终端里操作对新手不够友好。我个人的习惯是开发机用 Homebrew帮朋友装的临时学习机用 dmg。1.3 检查有没有残留版本避免装出两个冲突的 MySQL这一步经常被忽略。很多人以前用 Intel Mac 的时候可能装过 MySQL换了 M 芯片新机器后重新下载结果就是新老两个版本同时存在端口都被 3306 占着怎么启动都报错。更隐蔽的情况是持久装的 MySQL 是旧版本的残留数据目录新版本启动时读取了不兼容的数据文件直接崩溃。所以在安装前先检查一下系统里有没有旧的 MySQL 服务which mysql ps aux | grep mysql ls /usr/local/mysql /opt/homebrew/var/mysql 2/dev/null如果which mysql有输出说明 PATH 里已经存在 MySQL 命令如果进程列表里有 mysqld 在跑说明服务已经在运行如果/usr/local/mysql目录存在说明曾经用 dmg 方式装过。发现任何残留先停掉服务再彻底卸载别急着直接覆盖安装。dmg 方式卸载需要手动删目录Homebrew 方式卸载执行brew uninstall mysql。新旧数据目录混在一起是最难排查的坑这个时间耽误不起。2. 官方 DMG 安装包最省心的图形化安装流程2.1 下载 dmg 时怎么选准 ARM 版本打开 MySQL 官网的下载页面你第一眼看到的是最新的 GA 版本通常是一个 8.x 的版本号。页面下方有很多可供选择的平台和安装包格式macOS 相关的选项一般命名为macOS 13 (ARM, 64-bit), DMG Archive这类格式。关键就是认准两个词macOS和ARM。如果看到的是x86, 64-bit那就是给 Intel Mac 用的别下载。文件名的命名规则一般是mysql-8.x.x-macos13-arm64.dmg这样的格式arm64就是 M 芯片的原生版本。顺便说一句虽然下载页面上写的是 macOS 13但 M 芯片上的 macOS 14、15 都能正常安装使用不用被这个版本号劝退。安装包的体积在 200 到 400 兆之间具体看版本。下载时优先选官网不要走第三方下载站官网下载的包有签名校验安装时不会弹“已损坏”这类烦人的提示。如果官网下载速度慢可以选一个离自己近的镜像源但还是那句话装完以后校验一下数字签名更稳妥。2.2 安装向导一步步怎么走dmg 包下载完成后双击挂载镜像里面通常有两个文件一个.pkg安装包以及一个MySQLStartupItem.pkg有些版本合并进主安装包了。双击.pkg文件系统会弹出安装向导。向导第一步会让你选安装类型一般直接点“继续”走默认即可。到了“Configuration”这一步是重点你会看到几个选项需要设置root 密码可以输入也可以随机生成、MySQL 服务是否开机自动启动。如果你只是本机开发使用我的建议是密码自己设置一个好记但不简单的开机自启这一项视情况勾选——我个人不推荐开发机默认开机自启因为日常开发经常需要手动重启 MySQL自启反而容易在你不知情的时候占用系统资源。密码设置界面一般还让你选择认证插件类型默认是Use Strong Password Encryption。这个默认选项对应 MySQL 8.0 的caching_sha2_password认证插件安全性更高但前提是你的客户端工具也支持它。如果你为了兼容某些老旧工具而选了Use Legacy Authentication就等于在装完以后还得手动再改一遍插件能少一事就少一事。安装过程会进行到最后一两步时执行初始化数据库、创建配置文件和启动服务。完成后可以在终端里执行mysql --version验证安装是否成功。2.3 安装完成后系统设置里的 MySQL 图标dmg 方式安装完以后打开“系统设置”在最下面或者通知中心附近会看到一个 MySQL 图标。点进去可以看到服务运行状态一般安装完成后状态是已启动。如果状态显示未运行点击“Start MySQL Server”即可。这里注意如果按钮是灰色或者点击后自动弹回说明 MySQL 服务启动失败需要去终端看日志排查具体的排查方法我在后面的常见问题部分会详细写。另外一个和系统设置图标相关的点是守护进程权限。macOS 对于网络监听的程序会弹防火墙授权窗口第一次启动 MySQL 时如果弹窗询问是否允许接受传入连接务必点“允许”否则后续本机连接会有各种奇怪的问题比如 Workbench 能连上但命令行连不上——那是防火墙和命令行进程权限不一致导致的。装好以后你还会发现终端里直接输入mysql命令可能提示command not found这不是安装失败而是 MySQL 的可执行文件目录没有加到 PATH 里。dmg 方式安装的默认路径在/usr/local/mysql/bin如果你用 zshmacOS 默认 shell编辑~/.zshrc文件加入一行export PATH/usr/local/mysql/bin:$PATH保存后执行source ~/.zshrc再输入mysql -u root -p就能正常使用了。3. 用 Homebrew 安装 MySQL程序员更习惯的方式3.1 brew 安装命令与版本选择在开始之前确认 Homebrew 本身已经安装好了M 芯片 Mac 的 Homebrew 默认安装路径是/opt/homebrewApple Silicon 的原生软件都会装到这里的bin目录下这和 Intel Mac 时代的/usr/local路径不一样很多新手在这里容易迷路。安装命令非常简洁brew install mysqlHomebrew 会自动解析并安装依赖MySQL 本身体积不小安装过程会下载安装包并自动设置初始化。整个过程大概几分钟取决于网络状况。安装完成后终端输出里有一段提示大意是“MySQL 已经安装当前 root 用户没有密码建议运行mysql_secure_installation来加固安全性”。Homebrew 默认安装的是当前最新稳定版 MySQL一般是 8.x。如果你想指定版本比如安装 MySQL 8.4 LTS 版本可以用语法指定brew install mysql8.4但要注意Homebrew 里带版本的 formula 是 keg-only 模式的不会自动加入 PATH你需要根据安装后的提示手动设置 PATH 以及MYSQL_HOME。新手建议直接装默认版本省得在这个环节卡住。还有一个细节值得提一下Homebrew 装 MySQL 时不会让你设置 root 密码它是用一个临时的空密码来初始化数据的这和 dmg 向导完全不同。这个差异会导致你第一次连接时的行为不一致好解决的我们留到初始化配置部分详细讲。3.2 启动服务与设置开机自启Homebrew 装完 MySQL 后服务不会自动启动需要你自己执行启动命令。最常用的启动方式是brew services start mysql这个命令的含义是启动 MySQL 服务并且注册为开机自启项。如果你只是临时跑一次不想让它开机自启可以改用mysql.server start这两条命令的区别在于brew services会把 MySQL 注册到 launchd 里面由系统后台调度所以开机后自动运行mysql.server只是手工启动一个 MySQL 进程重启系统后需要再次手动启动。对开发机来说我一般推荐先用mysql.server start等确实需要常驻服务时再切到brew services这样更可控。如果你用brew services start mysql启动后想查看状态brew services list输出结果里能看到 mysql 这一行显示started。如果显示error说明服务启动失败这种情况多数是端口被占用或者数据目录权限异常后续排查部分会细讲。另外一个排查小技巧brew services方式启动的 MySQL其错误日志可以通过mysql.server来查看日志路径通常位于/opt/homebrew/var/mysql目录下会有.err后缀的错误文件。启动失败的时候优先打开这个文件看最后的错误信息比看终端输出要准得多。3.3 数据库文件与配置路径brew 和 dmg 完全不同这里必须重点提一下Homebrew 方式安装的 MySQL 和 dmg 方式安装的 MySQL存放数据文件和配置文件的路径是完全不同的。别把两个版本混在一起用否则会出现“启动了 A 版本却读着 B 版本的数据目录”这种极度尴尬的问题。dmg 方式的话数据目录默认在/usr/local/mysql/dataIntel或/opt/homebrew/var/mysql如果你把 dmg 装到了 Apple Silicon 版本的路径下配置文件在/etc/my.cnf。Homebrew 方式的话数据目录默认在/opt/homebrew/var/mysql配置文件在/opt/homebrew/etc/my.cnf。你可能已经注意到了/opt/homebrew/var/mysql这个路径会被两种方式同时引用所以当电脑上同时存在 dmg 版和 brew 版的 MySQL 时极大概率会出现数据目录打架的问题。遇到这种情况不要慌按之前的思路先卸载一个再重新初始化。此外在查看配置文件时注意生效优先级。MySQL 读取配置文件的顺序大致是/etc/my.cnf、/etc/mysql/my.cnf、/opt/homebrew/etc/my.cnf、~/.my.cnf后读到的配置会覆盖先读到的。这个优先级带来的坑是你改了/opt/homebrew/etc/my.cnf里面的端口号但/etc/my.cnf里也有一个端口配置把前面的覆盖了结果服务监听的还是老端口。排查配置不生效的问题先确认到底哪个文件真正被读入了。4. 初始化配置与安全加固4.1 两种安装方式的初始密码情况不管是哪条安装路径装完 MySQL你都要面对第一次登录的问题。先说结论dmg 方式安装时设置的 root 密码就是初始密码Homebrew 方式安装后 root 密码默认为空不需要密码就能登录。Homebrew 方式第一次登录直接执行mysql -u root看到欢迎信息就说明登录成功。登录后第一件事是给 root 设置一个密码执行 SQLALTER USER rootlocalhost IDENTIFIED BY 新密码;执行完再执行FLUSH PRIVILEGES;使修改立即生效。这里的新密码建议别用过于简单的内容也不要和系统登录密码相同免得后续留下安全漏洞。如果你是用 dmg 方式安装的但记不清安装时设置的密码了也不用慌后面常见问题区我会给一个重置 root 密码的完整流程。4.2 用 mysql_secure_installation 脚本加固安全设置完 root 密码后建议执行一次安全加固脚本mysql_secure_installation这个脚本是 MySQL 官方提供的自动化安全配置工具会依次询问你是否要设置密码验证策略、删除匿名用户、禁止 root 远程登录、删除测试数据库、重新加载权限表。这是交互式问答按提示输入 y 或者 n 即可。这里重点说一下“密码验证策略”这一项。MySQL 8.0 的密码策略分为 LOW、MEDIUM、STRONG 三个等级LOW 只要求密码长度不少于 8 位MEDIUM 额外要求包含数字、大小写字母、特殊字符STRONG 还要检查字典文件。本地开发环境选 LOW 或 MEDIUM 都行但生产环境必须 MEDIUM 以上。个人开发机别选 STRONG因为很多时候你只是需要一个临时测试账号密码强度要求太苛刻反而会拖慢节奏。脚本执行完以后root 用户默认只允许本地连接这个设置必须保留。如果你不小心在脚本里手滑允许了 root 远程登录那意味着你的数据库暴露在了整个局域网里非常危险。4.3 修改 my.cnf 的常用配置项MySQL 的默认配置对开发环境够用但有些场景下你还是得改配置文件。比如默认的字符集如果不改数据库默认的latin1字符集在存储中文时会出现乱码。这里建议直接改成utf8mb4它是utf8的超集能完整支持中文和 emoji 符号。修改配置文件前先备份原文件用vim或其他编辑器打开/opt/homebrew/etc/my.cnfbrew 版或者/etc/my.cnfdmg 版在[mysqld]段落中添加或修改[mysqld] character-set-serverutf8mb4 collation-serverutf8mb4_unicode_ci port3306 bind-address127.0.0.1 max_connections200character-set-server指定服务端字符集collation-server指定排序规则utf8mb4_unicode_ci是比较通用且性能不错的排序规则。bind-address127.0.0.1的含义是只允许本机访问数据库这对开发机来说是默认安全配置不要轻易改成0.0.0.0除非你真的知道自己在做什么。修改完配置文件后需要重启 MySQL 服务才能生效mysql.server restart或者如果你用的是brew services方式brew services restart mysql重启后可以在 MySQL 登录后执行SHOW VARIABLES LIKE character_set_server;确认输出结果是utf8mb4说明配置已经生效。5. 启动、连接、管理 MySQL 的日常操作5.1 命令行启停和状态查看学会在命令行管理 MySQL 服务是摆脱图形化依赖的第一步。最常用的是这三条命令mysql.server start mysql.server stop mysql.server statusmysql.server是 MySQL 自带的启动脚本无论你是直接跑自带服务还是已经注册到 launchd这个命令都能对服务进行统一管理。status会报告 MySQL 进程是否在运行并监听 3306 端口。如果你不确定服务是否真的在监听端口可以执行lsof -i:3306输出里如果看到mysqld进程占用了 TCP 端口 3306说明服务正常运行。如果这个命令没有任何输出说明没有进程监听 3306服务大概率没起来。这个检查方式比看进程列表更准确因为它直接验证了端口层面是否就绪。在 macOS 上还可以通过 launchctl 查看 MySQL 的运行状态不过一般没必要用 lsof 就够了。另外提醒一点mysql.server stop是优雅关闭会等所有正在执行的查询完成如果数据库有长时间运行的大查询关闭过程可能需要几秒甚至几十秒这是正常现象别急着杀掉进程。5.2 root 登录和新建业务账号日常开发建议建一个业务账号不要所有项目都用 root。建账号的 SQL 很简单登录后执行CREATE USER devlocalhost IDENTIFIED BY dev_password; GRANT ALL PRIVILEGES ON *.* TO devlocalhost; FLUSH PRIVILEGES;这两条语句创建一个本机的dev用户并授予所有数据库的全权限。如果你只想让这个账号操作某个具体的数据库比如test_db则改成GRANT ALL PRIVILEGES ON test_db.* TO devlocalhost;权限细化到库甚至表是后面多人协作开发时避免误操作的关键。当账号创建完成后用mysql -u dev -p登录输入密码验证是否正常。测试完再切回 root 清理测试数据整个过程就能形成闭环。新账号连接时可能会遇到无法登录的报错常见原因有认证插件版本不匹配、防火墙拦截、端口被占用这些我们将在后面一节统一排查。5.3 几个高频 SQL 操作安装好 MySQL 以后你至少要会几个高频操作才能不卡壳。查看当前所有数据库SHOW DATABASES;创建数据库并指定字符集CREATE DATABASE mydb DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;切换数据库USE mydb;查看当前数据库下的所有表SHOW TABLES;查看某个表结构DESC users;这几个命令覆盖面很广基本能支撑日常开发。等你熟练以后可以进一步了解索引、pdo 预处理、事务等高级特性那就超出这篇文章的范畴了。6. 可视化工具怎么选Workbench 还是其他6.1 MySQL Workbench官方工具的优势与注意MySQL Workbench 是 MySQL 官方推出的图形化管理工具功能齐全支持查询、数据导入导出、表结构设计还能直接可视化查询计划。对新手来说它最大的优势是文档多、案例多、遇到问题容易搜到解决方案。下载时同样需要注意 Apple Silicon 版本Workbench 官网提供了macOS (Apple Silicon)的安装包认准下载。装完以后打开 Workbench点击加号添加连接Hostname 填127.0.0.1Port 填3306Username 填root然后输入密码测试连接。如果测试失败先按常见问题部分排查服务状态和端口。有一个容易踩的坑Workbench 的server list里如果默认选择了/tmp/mysql.sock的 socket 连接方式而你的 MySQL 配置了 TCP 连接就可能导致连接失败。本地连接优先使用127.0.0.1避免 socket 文件路径不一致带来的麻烦。6.2 Navicat、TablePlus、DBeaver 各有各的好除了官方 Workbench市面上还有几款主流的 MySQL 图形化客户端。Navicat 功能强大、界面友好是很多人付费购买的选择支持 M 芯片原生运行但授权费用不低TablePlus 是一款轻量级且漂亮的客户端适合日常查询免费版功能足够使用DBeaver 免费开源跨平台支持多种数据库功能深度也很强只是界面相对朴素。我自己的选择标准是这样临时看一眼数据结构用 TablePlus写复杂查询和导出导入用 Workbench如果公司项目里同时用到 MySQL 和 PostgreSQL那就装 DBeaver 一把梭。工具没有绝对的“最好”只有适合你工作流的那一款。还要提醒一句不要同时装好几个客户端会搞混连接配置。集中用一款把连接配置备份好足够。6.3 命令行替代方案图形化工具虽好但命令行永远是最快的验证方式。你只需要掌握几个参数就能完成日常操作mysql -u root -p这个命令会提示输入密码并进入交互式 shell在 shell 内部可以执行任意 SQL 语句。退出用exit;或\q。如果需要把 SQL 语句直接作为参数执行可以用-e参数mysql -u root -p -e SHOW DATABASES;需要连接远程数据库时mysql -h 192.168.1.10 -P 3306 -u dev -p-h指定主机-P指定端口-u指定用户名-p提示输入密码。这些参数覆盖了本地和远程连接的主要场景。命令行适合做快速验证和脚本化操作图形化工具适合做深度管理和数据可视化二者配合才是完整的工作流。7. 常见问题与排查技巧实录7.1 问题速查表我把自己在 M 芯片 Mac 上装 MySQL 遇见的常见问题整理成一张速查表这比零散地翻论坛要高效得多。问题现象可能原因解决方案mysql: command not foundMySQL 可执行文件不在 PATH 中在~/.zshrc添加export PATH/usr/local/mysql/bin:$PATH后source ~/.zshrc启动后立即退出无错误提示数据目录权限异常检查/opt/homebrew/var/mysql目录的所有者确保为当前用户或 mysql 用户ERROR 2002 (HY000) Cant connect through socket服务未启动执行mysql.server start启动服务ERROR 1045 (28000) Access denied for user密码错误或认证插件不兼容重置密码或改用caching_sha2_password兼容的客户端图形工具连接超时端口未监听或防火墙拦截执行lsof -i:3306检查端口状态关闭 macOS 防火墙测试Workbench 连接提示认证插件错误Workbench 版本过旧升级到官网最新版或改用 mysql_native_password安装包无法打开提示已损坏下载文件不完整或签名失效重新从官网下载检查是否选中 ARM 版本这张表覆盖了从安装、启动、连接到认证插件的大多数问题。在动手处理之前先看lsof -i:3306的结果能帮你快速判断问题出在“服务层面”还是“连接层面”。7.2 忘了 root 密码怎么重置忘了 root 密码是几乎每个 MySQL 使用者都会经历的事情步骤不复杂但容易让人紧张。先说结论只要你能登录操作系统的终端MySQL 的 root 密码就能重置。第一步停止当前 MySQL 服务mysql.server stop第二步在后台以跳过权限表的方式启动 MySQLmysqld_safe --skip-grant-tables 这一步启动后 MySQL 会忽略所有权限检查任何人都可以免密登录。注意这个操作只适合本机临时恢复场景务必在恢复后立即关闭。第三步登录并修改密码mysql -u root进入 MySQL shell 后FLUSH PRIVILEGES; ALTER USER rootlocalhost IDENTIFIED BY 新密码;第四步退出并重启正常模式exit; mysql.server restart重启完以后用新密码登录验证一下。整个流程的关键是mysqld_safe --skip-grant-tables启用后必须在FLUSH PRIVILEGES之后才能执行ALTER USER否则 MySQL 可能报错说不存在这个用户。7.3 dmg 和 brew 共存导致的数据目录混乱这是我在自己的 M1 Mac mini 上真实遇到过的情况之前用 dmg 装过一次 MySQL后来图方便又用 Homebrew 装了一次结果两个版本共用了同一个数据目录服务经常起不来。解决思路很暴力但有效先停掉所有 MySQL 进程然后选一个版本保留把另一个彻底卸载。保留版本的判断标准很简单哪个版本的数据是你当前项目需要的就留哪个。如果你两个版本的数据都想要先备份其中一个的整个数据目录再执行卸载重装。具体备份方法直接把数据目录打包即可tar -czvf mysql_backup.tar.gz /opt/homebrew/var/mysql恢复时把压缩包解压回原路径。MySQL 的数据目录是可以整体迁移的只要版本大版本一致把目录复制过去就能直接用连导入导出都不需要。在卸载另一个版本时注意清楚删除相关的 launchd 配置文件比如/Library/LaunchDaemons/com.mysql.mysql.plist否则系统开机时会试图启动一个已不存在的 MySQL 服务。7.4 老客户端连不上认证插件和字符集问题这个问题在 MySQL 8.0 发布后变得非常普遍。MySQL 8.0 默认使用caching_sha2_password认证插件而很多老版本的工具只支持 MySQL 5.x 时代的mysql_native_password。所以在连接报错时如果提示Authentication plugin caching_sha2_password cannot be loaded说明客户端太老不兼容新插件。有两种解决办法。第一种是升级客户端工具到最新版比如 Navicat、Workbench 都早已支持新插件这是最推荐的方式。第二种是修改 MySQL 用户的认证方式让它兼容老客户端ALTER USER devlocalhost IDENTIFIED WITH mysql_native_password BY dev_password;执行完再连接就能成功。需要说明的是mysql_native_password插件在 MySQL 8.0 中依然可用但已标记为废弃新项目最好坚持使用默认插件并升级客户端只是在面对老系统时用第二种方案临时过渡。另一个问题就是字符集。如果你创建库表时不指定字符集默认可能是latin1导致中文显示乱码。排查方法SHOW VARIABLES LIKE %character%;确认所有字符集变量都是utf8mb4或与你的需求一致不一致就按照第四节的方式修改my.cnf并重启。写在最后这道安装流程我前前后后带朋友装过不下十次自己也在 dmg 和 brew 之间反复横跳过。如果你问我哪条路最省心我的回答是新手用 dmg装的时候把密码记清楚装完直接把开机自启关掉老手用 brew一条命令装完再用mysql_secure_installation收尾。不要两条路混着走那是给自己挖坑。装完之后建议你立刻做两件事第一把 root 密码放进密码管理器并给日常项目单独建一个低权限账号第二用mysqldump或tar把数据目录备份一次摸清备份恢复的流程别等项目数据丢了才想起来补课。MySQL 在 M 芯片 Mac 上已经非常成熟了安装这件事本身并不难难的是遇到问题后能不能迅速定位。欢迎在评论区分享你自己的踩坑记录尤其是那种我在速查表里没写到的“偶发问题”我也跟着学习一下。