[mysql] Mac OS X Yosemite / El Capitan에서 MySQL 서버 자동 시작

시작할 때 MySQL 서버를 자동으로 시작하고 싶습니다. 이것은 Mavericks에서 가능했지만 Yosemite에서는 작동하지 않는 것 같습니다.

편집 : El Capitan에서도 작동하는 것 같습니다.

여기에 이미지 설명 입력



답변

@dcc는 매우 가까웠습니다. 이것은 MySQL이 Yosemite에서 다시 자동 시작되는 방법입니다.

com.mysql.mysql.plist에서 /Library/LaunchDaemons:

<?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>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>

또한 이 답변을 기반으로 권한을 변경했습니다.

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

추가 사항이 있으면 아래에 공유하십시오!


답변

@Xavers 지시를 따랐고 명령을 실행하려고 시도했습니다.

sudo launchctl load -w /Library/LaunchDaemons/com.mysql.mysql.plist

오류가 발생했습니다.

/Library/LaunchDaemons/com.mysql.mysql.plist : 잘못된 속성 목록

잠시 머리를 긁적 후 맨 위에있는 DOCTYPE DTD 선언을 제거하면 오류가 사라지고 다시 시작할 때 mySQL 서버가 실제로 실행되고 있음을 발견했습니다.

따라서 내 XML은 다음과 같습니다.

<?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>


답변

homebrew와 함께 mysql설치 한 경우를 입력하여 자동 시작 방법에 대한 지침을 얻을 수 있습니다 brew info mysql.

예를 들어, 내 컴퓨터의 출력은 다음과 같습니다.

To have launchd start mysql at login:
  ln -sfv /usr/local/opt/mysql/*.plist ~/Library/LaunchAgents
Then to load mysql now:
  launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist


답변

만들기 /Library/LaunchDaemons/com.mysql.mysql.plist및 다음 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>
        </true>
    </dict>
</plist>

그런 다음 새로 생성 된 plist 파일을로드합니다.

sudo launchctl load -w /Library/LaunchDaemons/com.mysql.mysql.plist


답변

이 도움말은 잘못된 오류 문제를 해결하는 데 도움이됩니다. 아래에서 사용한 수정 된 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>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>


답변

제공된 다른 답변 중 어느 것도 내 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 launchctl load -F com.oracle.oss.mysql.mysqld.plist


답변

이전 답변에서 제안한 plist를 사용했을 때 사용자를 내 시스템에 대해 _mysql로 ​​변경했지만 MySQL 환경 설정 창에서 “Stop MySQL Server”버튼이 더 이상 작동하지 않았습니다. 이 KeepAlive키는 중지 버튼을 누른 직후 프로세스를 다시 시작하도록합니다. 키 RunAtLoad를 사용하여 재부팅 할 때만 시작하도록했지만 창의 버튼이 계속 작동하도록 허용했습니다.

<?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>RunAtLoad</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>

그런 다음 다른 답변과 마찬가지로 다음을 실행했습니다.

sudo launchctl load -w /Library/LaunchDaemons/com.mysql.mysql.plist

이제 MySQL은 다시 시작할 때 시작되지만 시스템 환경 설정의 MySQL 패널은 계속 작동합니다. El Capitan, 10.11.2를 실행 중입니다.