You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Homebrew安装MySQL 8.0后版本不一致问题求助

问题根源

你用brew install mysql安装的是MySQL 8.0客户端,但后台仍在运行MySQL 5.7的服务器进程——这就是核心问题:不管你用哪个版本的客户端连接,都会连到旧服务器上。basedir显示的路径是之前安装5.7时留下的配置残留,哪怕目录已删除,旧服务进程仍在持续运行。

解决步骤
  • 第一步:检查当前运行的MySQL进程
    执行命令查看所有MySQL相关进程:

    ps aux | grep mysql
    

    观察输出中的进程路径,若出现mysql@5.7相关内容,即可确认旧服务器仍在运行。

  • 第二步:停止所有MySQL服务
    先尝试用brew停止服务:

    brew services stop mysql
    brew services stop mysql@5.7
    

    若brew提示服务不存在,直接杀死进程:找到第一步输出中MySQL进程的PID(第二列的数字),执行:

    sudo kill -9 [PID]
    

    把所有带mysql的进程全部终止。

  • 第三步:清理brew残留的MySQL包
    检查是否还有mysql@5.7的包残留:

    brew list | grep mysql
    

    若输出包含mysql@5.7,执行卸载:

    brew uninstall mysql@5.7
    

    随后清理brew缓存和残留文件:

    brew cleanup mysql
    brew cleanup mysql@5.7
    
  • 第四步:检查并清理旧配置文件
    查看系统中是否存在指向旧版本的配置文件:

    ls -la /etc/my.cnf /usr/local/etc/my.cnf ~/.my.cnf
    

    若找到这些文件,打开检查basedir、datadir配置项,将指向5.7的路径替换为8.0的路径(/usr/local/Cellar/mysql/8.0.32/);或者备份后直接删除旧配置文件。

  • 第五步:重启MySQL 8.0服务并验证
    启动8.0版本的服务:

    brew services start mysql
    

    连接客户端验证:

    mysql -u root
    

    此时服务器版本应显示为8.0.32,再执行SQL命令确认路径:

    SHOW VARIABLES WHERE Variable_name = 'basedir';
    

    结果应指向/usr/local/Cellar/mysql/8.0.32/。

  • 第六步:验证8.0语法支持
    执行MySQL 8.0特有语法(如窗口函数)测试:

    SELECT ROW_NUMBER() OVER () AS row_num FROM dual;
    

    若能正常执行,说明服务器版本已切换成功。

内容的提问来源于stack exchange,提问作者eComEvo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 06:02:45