如何在OS X Yosemite / El Capitan上启动时自动加载MySQL

时间:2014-10-20 23:06:38

标签: mysql macos osx-yosemite startup osx-elcapitan

升级OS X后,我的MySQL安装在启动时停止加载。

walk-through on MySQL说:

  

"启动项安装将变量MYSQLCOM = -YES-添加到   系统配置文件/ etc / hostconfig。如果你想禁用   自动启动MySQL,将此变量更改为MYSQLCOM = -NO - 。"

所以,我打开了那个文件,然后说:

# This file is going away 
AFPSERVER=-NO- 
AUTHSERVER=-NO-
TIMESYNC=-NO-
QTSSERVER=-NO-
MYSQLCOM=-YES-

我认为OSX开发者添加了# This file is going away,但我不确定。

如果是这种情况,在OSX Yosemite上启动MySQL的正确方法是什么?

5 个答案:

答案 0 :(得分:170)

这就是修复它的原因:

首先,创建一个新文件:/Library/LaunchDaemons/com.mysql.mysql.plist

<?xml version="1.0" encoding="UTF-8"?>
<plist version="1.0">
  <dict>
    <key>KeepAlive</key>
    <true />
    <key>Label</key>
    <string>com.mysql.mysqld</string>
    <key>ProgramArguments</key>
    <array>
      <string>/usr/local/mysql/bin/mysqld_safe</string>
      <string>--user=mysql</string>
    </array>        
  </dict>
</plist>

然后更新权限并将其添加到launchctl

sudo chown root:wheel /Library/LaunchDaemons/com.mysql.mysql.plist
sudo chmod 644 /Library/LaunchDaemons/com.mysql.mysql.plist
sudo launchctl load -w /Library/LaunchDaemons/com.mysql.mysql.plist

答案 1 :(得分:15)

如果您通过homebrew安装了mysql,则可以在登录时launchd启动mysql:

ln -sfv /usr/local/opt/mysql/*.plist ~/Library/LaunchAgents

答案 2 :(得分:2)

接受的答案无法自动启动我的MySQL服务器(事实上,我每次尝试在活动时打开它时,我的首选项窗格都会崩溃系统偏好设置)。我按照the MySQL 5.6 handbook的说明进行操作,最后再次自动启动!使用以下内容创建文件$('a[href="http://localhost/?cat=2"]').parents(":eq(1)").addClass("social-line"); $('a[href="http://localhost/?cat=3"]').parents("ul:first").addClass("knowledge-line"); $('a[href="http://localhost/?cat=4"]').closest("ul").addClass("news-line"); <ul class="post-categories"> <li> <a href="http://localhost/?cat=2" rel="category">Social</a> </li> </ul>

/Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist

创建文件后运行以下命令:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" 
  "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>             <string>com.oracle.oss.mysql.mysqld</string>
    <key>ProcessType</key>       <string>Interactive</string>
    <key>Disabled</key>          <false/>
    <key>RunAtLoad</key>         <true/>
    <key>KeepAlive</key>         <true/>
    <key>SessionCreate</key>     <true/>
    <key>LaunchOnlyOnce</key>    <false/>
    <key>UserName</key>          <string>_mysql</string>
    <key>GroupName</key>         <string>_mysql</string>
    <key>ExitTimeOut</key>       <integer>600</integer>
    <key>Program</key>           <string>/usr/local/mysql/bin/mysqld</string>
    <key>ProgramArguments</key>
        <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/mysqld.local.err</string>
            <string>--pid-file=/usr/local/mysql/data/mysqld.local.pid</string>
            <string>--port=3306</string>
        </array>
    <key>WorkingDirectory</key>  <string>/usr/local/mysql</string>
</dict>
</plist>

答案 3 :(得分:0)

有一个bash script MacMiniVault,它将为您执行此操作 - 并安装MySQL。还有article描述了该过程。

本文建议将脚本直接传送到终端并运行它,但由于这有一些严重的安全隐患,因此在本地运行脚本之前下载并检查脚本是个更好的主意。

注意:回复此回复是为了回应有关遵循上述文章中的说明所涉及的安全问题的评论。 将shell脚本从未知源直接传递给bash通常是个坏主意。此外,如果您不理解脚本或信任作者,请不要使用它。

答案 4 :(得分:0)

我的Mac在El Capitan上运行。 MySQL通过brew安装。

BookViewController

告诉我,我有一些问题要解决:

mysql.server status 

ERROR! MySQL is not running, but PID file exists 目录中找到homebrew.mxcl.mysql.plist个文件并将其复制到/usr/local/Cellar/mysql/x.x.x/

/Library/LaunchDaemons/

设置所有必要的权限:

sudo cp homebrew.mxcl.mysql.plist /Library/LaunchDaemons/homebrew.mxcl.mysql.plist

使用了部分建议,由Justin

描述