小工具知识网

当前位置: 首页 > 行业知识 > mac上通过homebrew安装的mysql崩掉的心酸历程ERROR 2002 (HY000): Can‘t connect to local MySQL server through socket

行业知识

mac上通过homebrew安装的mysql崩掉的心酸历程ERROR 2002 (HY000): Can‘t connect to local MySQL server through socket

2026-11-08 07:35:43 来源:互联网转载

太心酸了,昨天电脑运行还好好的程序,今天一过来就说mysql服务启动不了了。让我想到了上次pyenv崩掉的过程噜

本机环境:macOs系统,用的homebrew安装的5.7和8.0版本的mysql。

报错现象和初步分析

这个错误表示客户端尝试通过 Unix 套接字文件 /tmp/mysql.sock 连接到本地 MySQL 服务器时失败了。错误码 (2) 通常表示找不到文件或目录。

于是我输入如下命令检查mysql服务是否正在运行

brew services list

发现服务没有启动,所以输入如下命令启动

brew services start mysql@5.7

结果报错如下:

这个报错实际上也没有更多的信息,大致意思就是说在尝试启动 MySQL 服务时遇到了问题。建议我们以 root 用户身份重新运行命令。

但是在 macOS 上,我们通常不需要以 root 用户身份运行 brew services 命令的。

所以尝试解决方案如下:

尝试1:重装大法

我上来就是一个

brew uninstall mysql@5.7brew cleanupbrew install mysql@5.7

homebrew反手就给我一个

what can i say, what can i say man?

这个错误表明 Homebrew 在尝试清理旧的安装包时遇到了权限问题。具体来说,Homebrew 无法删除 /usr/local/Cellar/node/21.7.0 目录,因为该目录不为空。

那么我们肯定要先看下这个目录是存放什么的。看名字就是和node.js有关的东西,与我们mysql没有关系。其实可以继续执行install命令了。

然后继续

brew services start mysql@5.7

和前面抱一样的错。重装大法,寄。

尝试2:查看日志并分析

日志文件通常位于/usr/local/var/mysql/下,文件名一般是计算机名.err,于是我使用如下命令

tail -n 100 /usr/local/var/mysql/EVYSHAN-MC0.err

输出内容如下:

关键信息为:

2024-04-07T03:18:34.527985Z 0 [ERROR] [FATAL] InnoDB: Table flags are 0 in the data dictionary but the flags in file ./ibdata1 are 0x4000!

丢给gpt,他说这个错误表明 InnoDB 数据字典中的表标志与 ibdata1 文件中的标志不一致。ibdata1 是 InnoDB 存储引擎的系统表空间文件,它包含了数据字典、撤销日志、双写缓冲区等重要数据。这种不一致通常是由于文件损坏或者不正确的 MySQL 升级操作导致的。

因为本机没有重要的数据,所以我选择重新初始化数据库

mysqld --initialize

遭遇报错如下:

可以看到它会去找8.0的mysql,于是我用指定路径再次初始化了一次。

  1. 首先停止mysql服务(如果它正在运行)
    brew services stop mysql@5.7brew services stop mysql
  2. 备份数据目录(可选,但推荐)
mv /usr/local/var/mysql/ /usr/local/var/mysql_backup/
  1. 删除先有数据目录
rm -rf /usr/local/var/mysql/*
  1. 初始化数据库
mysqld --initialize

然后注意,初始化成功后会显示一个临时密码

之后我们就根据这个密码来登陆mysql

brew services start mysql@5.7mysql -u root -p

win!!!

最后注意更换密码嗷

ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';

上一篇:宝塔面板拼音输入法教程,打字技巧轻松掌握!

下一篇:网站备案服务器怎么解决?