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.