MySQL Warning: 在 Mac OS High Sierra 中使用 Brew 安装 MySQL 的后续步骤未成功完成

MySQL Warning: 在 Mac OS High Sierra 中使用 Brew 安装 MySQL 的后续步骤未成功完成

如果你在 Mac OS High Sierra 中使用 Brew 安装 MySQL,很可能会遇到以下这个错误信息:“Warning: The post-install step did not complete successfully”,并且你或许无法正常启动或连接 MySQL 数据库,这时该怎么办呢?

阅读更多:MySQL 教程

了解问题

Brew 是一款方便的 macOS 包管理工具,因此在 macOS 上安装 MySQL 时,许多人会选择使用 Brew。然而,在 Mac OS High Sierra 上安装 MySQL 会遇到一些问题,因为 High Sierra 自带了一个名为 mysqlclient 的 Python 包。此外,High Sierra 还有一个 SIP 安全机制,使得我们对系统文件的访问变得更加受限。

这些因素导致,安装 MySQL 后,Brew 无法自动完成 MySQL 的后续安装步骤,尤其是无法自动配置权限和重置根密码等关键操作。

解决方法

1. 寻找 Log 文件

首先,我们需要找到安装日志文件,Brew 一般会在 /usr/local/Homebrew/Logs/ 目录下保存所有安装日志。找到 mysql 文件夹下的 mysql-server*.log 文件,这里的 * 是对日志文件的日期和时间进行占位符替换的变量。

查看日志文件,找到下面错误信息的位置:

2021-01-01 00:00:00 +0800
Trying to start MySQL server... ERROR! The server quit without updating PID file
(/usr/local/var/mysql/MacBook-Pro.local.pid).
Mysql

如果你遇到了类似的错误信息,可以接着尝试下面的方法。

2. 查看 Brew 的信息

运行以下命令以了解 MySQL 的安装情况:

brew info mysql
Mysql

如果看到类似下面的信息:

mysql: stable ...
...
==> Caveats
We've installed your MySQL database without a root password. To secure it run:
    mysql_secure_installation
...
Mysql

那么继续执行以下步骤:

  1. 运行 mysql_secure_installation 脚本以重新设置 root 密码和其他安全选项。例如:
mysql_secure_installation
Mysql
  1. 修改 MySQL 配置文件,根据需要调整配置,比如更改 MySQL 监听的 IP、端口等。可以先备份原配置文件,然后再进行修改:
sudo cp /usr/local/etc/my.cnf{,.bak}
sudo vim /usr/local/etc/my.cnf
Mysql

但是,如果你尝试运行 mysql_secure_installation,你会发现它无法正常完成,因为它尝试修改启动 MySQL 服务器时使用的 PID 文件,但是在 High Sierra 中,由于 SIP 的限制,必须将 PID 文件存储在 特定目录之外。

3. 修改 Launch Daemon 文件

所以,要绕过要求 PID 文件存储在特定目录之外的 SIP 限制,我们可以修改 Brew 的 MySQL Launch Daemon 文件。在 Mac OS X 上,Launch Daemons 是启动和运行系统守护进程的常用方法。默认情况下,Brew 会将 MySQL Launch Daemon 存储在 /Library/LaunchDaemons/homebrew.mxcl.mysql.plist 中,因此我们需要修改这个文件以更改 PID 文件的位置。

首先将该文件复制出来,在 /Library/LaunchDaemons/homebrew.mxcl.mysql.plist.bak 中备份:

sudo cp /Library/LaunchDaemons/homebrew.mxcl.mysql.plist{,.bak}
Mysql

接下来,打开 /Library/LaunchDaemons/homebrew.mxcl.mysql.plist。为了修改该文件,您需要使用管理员权限打开,可以使用以下命令:

sudo vim /Library/LaunchDaemons/homebrew.mxcl.mysql.plist
Mysql

找到下面的标签:

<key>ProgramArguments</key>
<string>/usr/local/opt/mysql/bin/mysql.server</string>
XML

在该标签内部,将两行指令:

<string> --pid-file=/usr/local/var/mysql/${HOSTNAME}.pid</string>
<string> --daemonize</string>
XML

替换为以下两行指令:

<string> --pid-file=/usr/local/mysql/data/${HOSTNAME}.pid</string>
<string> --daemonize --user=_mysql</string>
XML

然后新增以下标签:

<key>WorkingDirectory</key>
<string>/usr/local/mysql/data</string>
<key>StandardErrorPath</key>
<string>/usr/local/mysql/data/mysqld_safe.err</string>
<key>StandardOutPath</key>
<string>/usr/local/mysql/data/mysqld_safe.out</string>
XML

修改完成后,保存文件并重启 Launch Daemon:

sudo launchctl unload -F /Library/LaunchDaemons/homebrew.mxcl.mysql.plist
sudo launchctl load -F /Library/LaunchDaemons/homebrew.mxcl.mysql.plist
Mysql

至此,你的 MySQL 已经成功安装并启动啦!现在可以测试一下:

mysql -u root -p
Mysql

接下来就可以开始你的 MySQL 数据库之旅了!

总结

在 Mac OS High Sierra 上使用 Brew 安装 MySQL 时,可能会出现后续步骤未成功完成的错误。解决这个问题需要我们先找到安装日志文件,通过了解 Brew 的信息和修改 Launch Daemon 文件等方式来解决问题。希望这篇文章能为你提供帮助!

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册