通过 MacPorts 的 Mysql 5.6 服务器无法启动

Mat*_*t S 4 mysql macports macos

我一直很高兴使用 MacPortsmysql5mysql5-server. 现在是时候升级了。我遵循了标准程序,但服务器无法启动。

sudo port unload mysql5
sudo port install mysql56 mysql56-server mysql_select
sudo port select -set mysql mysql56
sudo port load mysql56-server
Run Code Online (Sandbox Code Playgroud)

没有错误。当我运行时,ps aux | grep sql我看到它没有运行。我尝试在 my.conf 中设置套接字并运行 mysql5_install_db (但这似乎特定于旧包)。文件权限看起来正确。还没有 mysql 错误日志。如何启动此服务器?

Mat*_*t S 5

弄清楚了。打开 LaunchDaemon plist 文件以查看将运行的确切命令。手动运行以查看启动输出并最终想出了解决方案:

sudo mysql_install_db5 --datadir=/opt/local/var/db/mysql56
sudo chown -R _mysql:_mysql /opt/local/var/db/mysql56/
sudo mysql_upgrade
Run Code Online (Sandbox Code Playgroud)

如果您需要帮助追踪启动错误,请打开Console包含“mysql”的消息。在我的情况下,该过程正在迅速关闭,导致重试无限循环。要深入挖掘,请打开此文件以查看它是如何启动的:

/Library/LaunchDaemons/org.macports.mysql56-server.plist
Run Code Online (Sandbox Code Playgroud)

从那里我们可以看到它基本上运行

/opt/local/bin/daemondo --label=mysql56-server --start-cmd /opt/local/lib/mysql56/bin/mysqld --user=_mysql
Run Code Online (Sandbox Code Playgroud)

所以在命令行尝试

sudo -u _mysql /opt/local/lib/mysql56/bin/mysqld
Run Code Online (Sandbox Code Playgroud)

并观察启动输出。