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


84

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

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

여기에 이미지 설명 입력

답변:


143

@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

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


1
다른 사람들이 귀하의 솔루션을 찾을 수 있도록 Q 답변을 표시해야합니다.
davidcondrey

26
나는 OSX 10.11이 도착할 날을 꿈꾸며 아파치, PHP 및 mysql을 수정하는 데 2 ​​시간을 소비 할 필요가 없습니다. Vagrant로 이동해야 할 때입니다.
dvk3 2014 년

10
단 2 시간! haha
Xaver 2014 년

8
이것은 진짜 작동한다. BTW, 처음 두 명령을 하나로 결합 할 수 있습니다.sudo chown root:wheel /Library/LaunchDaemons/com.mysql.mysql.plist
Rockallite

1
이 작업을 다시 수행하는 데 두 시간을 절약하는 데 매우 유용합니다! 감사합니다.
Nigel B. Peck

13

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

9

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

2

만들기 /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

하지 작업을 수행, 그것은 여전히 :( 다시 시작한 후 "정지"라는
XAVER

apachectl start서버를 시작합니다!? 관련이 있습니까?
Xaver

sudo launchctl load -w...오류가 발생합니다Invalid property list
XAVER

가능성이
없어서

1
내가 하나 얻을 수있어 경우 좋아, 어쨌든 감사합니다, 나는 해결책을 게시합니다
XAVER

2

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

1

제공된 다른 답변 중 어느 것도 내 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

0

이전 답변에서 제안한 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를 실행 중입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.