macos – 错误!无法找到MySQL服务器PID文件!

我在我的机器上重新安装了macOS Sierra.安装Oracle MySQL社区服务器5.7.15(mysql-5.7.15-osx10.11)后,我试图从控制台停止MySQL服务器.我收到了以下错误“错误!无法找到MySQL服务器PID文件!”.

我自己做了一些研究,但没有设法解决我的问题.

有什么建议?

解决方法:

通过Preferences Pane / launchd启动和停止MySQL服务器,另一方面通过sudo /usr/local/mysql/support-files/mysql.server启动/停止启动和停止MySQL服务器并不真正兼容.

在MySQL安装程序中选择“Launchd Support”后,将创建启动守护程序com.oracle.oss.mysql.mysqld,并且MySQL首选项窗格使用launchd机制来启动和停止mysql.如果启用“启动时自动启动MySQL服务器”,则启动Mac后会自动启用mysqld.

启动守护程序创建的pid文件名与mysql-server脚本创建和期望的名称不兼容.

运行时创建的启动守护程序的pid文件名是mysql.local.pid,该脚本需要一个基于Mac的主机名,.local或计算机名称的名称.

因此要么使用MySQL pref窗格/ launchctl,要么使用脚本来启动和停止mysqld.

在某种程度上,您可以通过修改文件com.oracle.oss.mysql.mysqld来使两个方法兼容:

停止mysql后替换数组

<array>
    <string>/usr/local/mysql/bin/mysqld</string>
    <string>--user=_mysql</string>
    <string>--basedir=/usr/local/mysql</string>
    <string>--datadir=/usr/local/mysql/data</string>
    <string>--plugin-dir=/usr/local/mysql/lib/plugin</string>
    <string>--log-error=/usr/local/mysql/data/mysql.local.err</string>
    <string>--pid-file=/usr/local/mysql/data/mysql.local.pid</string>
</array>

通过

<array>
    <string>/usr/local/mysql/bin/mysqld</string>
    <string>--user=_mysql</string>
    <string>--basedir=/usr/local/mysql</string>
    <string>--datadir=/usr/local/mysql/data</string>
    <string>--plugin-dir=/usr/local/mysql/lib/plugin</string>
    <string>--log-error=/usr/local/mysql/data/$name.err</string>
    <string>--pid-file=/usr/local/mysql/data/$name.pid</string>
</array>

$name:HostName(例如host.example.com),LocalHostName(例如host.local)或ComputerName(例如host).可能最好的方法是使用主机名.您可以使用scutil –get HostName获取主机名的主机名,或者使用sudo scutil –set HostName your_hostname设置主机名.

您还可以获取实际使用的mysql-server脚本pid的名称 – 在停止启动守护程序并使用mysql-server start启动mysqld之后,通过使用sudo ls /usr/local/mysql / data检查mysql的数据目录.使用在那里找到的名称来调整plist的pid名称.

您可能必须将启动守护程序文件转换为xml才能对其进行编辑.应用程序TextWrangler立即将其打开为xml文件.

之后用launchctl重新加载plist.

现在应该可以使用MySQL pref窗格和mysql.server脚本启动和停止.

如果您启用了“在启动时自动启动MySQL服务器”,则无法使用脚本停止服务器 – 即使在修改了plist之后 – 因为launchd会在几秒钟后覆盖任何停止命令并再次启动mysqld.

上一篇:BestCoder22 1002.NPY and arithmetic progression(hdu 5143) 解题报告


下一篇:如何为macOS应用程序创建安装程序?