mysql在MacOS环境中使用Homebrew安装注意事项

来源:这里教程网 时间:2026-02-28 20:45:34 作者:

Homebrew 安装 MySQL 后服务无法启动

常见现象是执行

brew services start mysql
mysql.server start
后报错,提示
ERROR! The server quit without updating PID file
,或日志里出现
Can't start server: Bind on TCP/IP port: Address already in use

先检查是否已有其他 MySQL 实例在运行:
ps aux | grep mysql
,若有残留进程(如
mysqld
),用
kill -9 <pid></pid>
清掉
Homebrew 默认安装的是 MySQL 8.x,其默认配置启用严格模式和强密码策略,首次启动会生成临时 root 密码,必须立刻查看:
grep 'temporary password' /usr/local/var/mysql/*.err
若启动失败且日志无明显错误,大概率是
/usr/local/var/mysql
目录权限不对 —— Homebrew 安装后该目录属主应为当前用户,执行
sudo chown -R $(whoami) /usr/local/var/mysql
再试

MySQL 8.0+ root 用户登录被拒绝(Access denied for user 'root'@'localhost')

这不是密码输错,而是 MySQL 8.0 默认使用

caching_sha2_password
认证插件,而部分客户端(尤其是老版本命令行工具或某些 GUI)不兼容。

临时解决:启动时跳过权限验证(仅用于重置):
mysqld_safe --skip-grant-tables &
,然后连上执行
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_new_password';
更稳妥做法:安装时就指定认证方式 —— 先卸载:
brew uninstall mysql
,再用自定义配置安装:
brew install mysql --with-default-authentication-plugin=mysql_native_password
(注意:该 flag 在较新 Homebrew 中已移除,推荐改用下一步)
实际建议:不改插件,而是升级客户端工具;或连接时显式指定插件:
mysql -u root -p --default-auth=mysql_native_password

Homebrew 安装的 MySQL 配置文件在哪、怎么改

Homebrew 不会自动创建

my.cnf
,所有配置靠默认路径加载顺序生效。MySQL 8.0 在 macOS 上按如下顺序读取配置文件:
/etc/my.cnf
/usr/local/etc/my.cnf
~/.my.cnf

最安全的位置是
/usr/local/etc/my.cnf
(Homebrew 推荐);若该文件不存在,手动创建:
sudo touch /usr/local/etc/my.cnf
最小可用配置示例(启用远程访问、调大连接数):
[mysqld]
bind-address = 0.0.0.0
max_connections = 200
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
[client]
default-character-set = utf8mb4
改完必须重启服务:
brew services restart mysql
,否则配置不生效

升级或卸载 MySQL 时遇到 data directory 冲突

Homebrew 升级 MySQL(如从 8.0.x → 8.1.x)默认不会迁移数据目录,旧版

/usr/local/var/mysql
若存在,新版可能拒绝启动或初始化失败。

升级前务必备份:
mysqldump -u root -p --all-databases > full_backup.sql
若已升级失败,不要直接删
/usr/local/var/mysql
—— 先确认新版本是否已新建数据目录(如
/usr/local/var/mysql@8.1
),再用
mysql_upgrade -u root -p
手动迁移
彻底卸载并清空数据:
brew uninstall mysql && rm -rf /usr/local/var/mysql
,但此操作不可逆
MySQL 的 Homebrew 安装看似一键,真正麻烦的都在启动后那几秒 —— 权限、认证插件、配置路径、数据目录生命周期,四个点只要漏一个,就会卡在「连不上」或「起不来」。尤其注意
/usr/local/var/mysql
这个目录的归属权和
my.cnf
的实际加载位置,它们比任何文档都真实。

相关推荐