web-dev-qa-db-ja.com

OS X Yosemite / El Capitanで起動時にMySQLを自動ロードする方法

OS Xをアップグレードした後、MySQLのインストールが起動時にロードを停止しました。

これは 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を起動する適切な方法は何ですか?

76
Justin

これがそれを修正したものです:

まず、新しいファイルを作成します:/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
170
Justin

homebrew でmysqlをインストールした場合、ログイン時にlaunchdでmysqlを起動できます:

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

受け入れられた回答は、MySQLサーバーを自動起動するために機能しませんでした(実際、アクティブになっているときに開くと、設定ペインがシステム設定をクラッシュしました)。 MySQL 5.6ハンドブック の指示に従い、最終的に再び自動起動します!次の内容のファイル/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>

ファイルを作成した後、次のコマンドを実行します。

cd /Library/LaunchDaemons
Sudo chown root:wheel com.Oracle.oss.mysql.mysqld.plist 
Sudo chmod o-w com.Oracle.oss.mysql.mysqld.plist 
Sudo launchctl load -F com.Oracle.oss.mysql.mysqld.plist
2
NobleUplift

私のMacはEl Capitanで動作します。 brew経由でインストールされたMySQL。

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

必要なすべての許可を設定します。

Sudo chown root:wheel /Library/LaunchDaemons/homebrew.mxcl.mysql.plist
Sudo chmod 644 /Library/LaunchDaemons/homebrew.mxcl.mysql.plist
Sudo launchctl load -w /Library/LaunchDaemons/homebrew.mxcl.mysql.plist

Justinで記述されたアドバイスの一部を使用

1
mulat

bash script by MacMiniVault があります。これはあなたのためにこれを行います-MySQLもインストールします。プロセスを説明する article もあります。

この記事では、スクリプトを直接Terminalにパイプして実行することをお勧めしますが、これには深刻なセキュリティ上の影響があるため、ローカルで実行する前にスクリプトをダウンロードして検査することをお勧めします。

注:この返信は、前述の記事の指示に従うことのセキュリティへの影響に関するコメントに応じて書き直されました。シェルスクリプトをunknownソースからbashに直接パイプすることは一般的に悪い考えです。また、スクリプトを理解していないか、作成者を信頼していない場合は、使用しないでください。