【发布时间】:2011-07-30 03:51:52
【问题描述】:
我正在尝试在我的 mac pro 上自动启动 mysql 5.5.10 社区服务器 (gpl)。我在这个论坛上阅读了几个主题。我仍然感到困惑,因为那些线程引用了一个文件:
/Library/StartupItems/MySQLCOM
我似乎没有这个文件或文件夹。
有人可以帮忙吗。
顺便说一句,我可以使用 mysqld 启动 mysql...而且它工作正常。
提前致谢!
【问题讨论】:
我正在尝试在我的 mac pro 上自动启动 mysql 5.5.10 社区服务器 (gpl)。我在这个论坛上阅读了几个主题。我仍然感到困惑,因为那些线程引用了一个文件:
/Library/StartupItems/MySQLCOM
我似乎没有这个文件或文件夹。
有人可以帮忙吗。
顺便说一句,我可以使用 mysqld 启动 mysql...而且它工作正常。
提前致谢!
【问题讨论】:
您实际上必须创建此文件...最好的方法是使用符号链接:
mkdir /Library/StartupItems/MySQLCOM
cd /Library/StartupItems/MySQLCOM/
ln -s /path/to/installation/mysql/support-files/mysql.server MySQLCOM
但是我不会推荐这个。你应该正确地使用launchd - 这是正确的OS X方式:-)
首先在/Library/LaunchDaemons/com.mysql.mysqld.plist创建一个plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Disabled</key>
<false/>
<key>GroupName</key>
<string>_mysql</string>
<key>KeepAlive</key>
<true/>
<key>Label</key>
<string>com.mysql.mysqld</string>
<key>Program</key>
<string>/usr/local/mysql/bin/mysqld</string>
<key>ProgramArguments</key>
<array>
<string>--user=_mysql</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>Umask</key>
<integer>7</integer>
<key>UserName</key>
<string>_mysql</string>
<key>WorkingDirectory</key>
<string>INSTALL_PATH/mysql</string>
</dict>
</plist>
然后调整权限:
sudo chown root /Library/LaunchDaemons/com.mysql.mysqld.plist
sudo chgrp wheel /Library/LaunchDaemons/com.mysql.mysqld.plist
sudo chmod 644 /Library/LaunchDaemons/com.mysql.mysqld.plist
现在 MySQL 应该在启动时启动。要在不重新启动的情况下测试一切正常,您可以运行:sudo launchctl load com.mysql.mysqld.plist 然后检查错误日志中的消息。
如果您需要添加特殊参数(如自定义日志、cnf 等),您可以通过在 <array> 后面的 <key>ProgramArguments</key> 元素中将它们指定为 <string> 元素来实现。这些<string> 元素的值应该是您将与mysqld 一起使用的标准开关。
【讨论】:
对如何为较新版本的 OSX 安装 plist 的方式略有改变。
不要简单地在 LaunchDemons 文件夹中创建文件并修改权限,而是在本地文件夹中创建 plist 文件,然后运行: sudo install com.mysql.mysqld.plist /Library/LaunchDaemons
【讨论】: