programing

Mac OS X Yosemite/El Capitan에서 MySQL Server 자동 부팅

yoursource 2022. 10. 22. 13:27
반응형

Mac OS X Yosemite/El Capitan에서 MySQL Server 자동 부팅

부팅 시 MySQL 서버를 자동으로 시작하고 싶습니다.이것은 매버릭스에서 가능했지만 요세미티에게는 효과가 없는 것 같다.

edit: 이것은 El Capitan에서도 동작하는 것 같습니다.

여기에 이미지 설명 입력

@dcc는 매우 가까웠다.Yosemite에서 MySQL을 다시 자동 시작하는 방법은 다음과 같습니다.

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:잘못된 속성 리스트

잠시 머리를 긁적거린 후 상단에 있는 DOSCTYPE 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>

mysql을 homebrew와 함께 설치한 경우 를 입력하여 자동 시작 방법을 확인할 수 있습니다.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하다

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

이전 답변에서 제안한 목록을 사용할 때 시스템을 위해 사용자를 _mysql로 변경했지만 MySQL 기본 설정 창의 "MySQL Server 중지" 버튼이 더 이상 작동하지 않습니다.KeepAlive키를 누르면 Stop 버튼을 누른 직후 프로세스가 다시 시작됩니다.요.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 창은 계속 작동합니다.'엘 캐피턴', 10.11.2

언급URL : https://stackoverflow.com/questions/26461173/autostart-mysql-server-on-mac-os-x-yosemite-el-capitan

반응형