요세미티에서 MySQL 자동실행 실패 문제 해결
작성자: Wesley 작성일:
오늘 이 웹사이트에 DB 에러가 몇 번 일어났는데, 서버가 재부팅이 되면서 매번 MySQL이 자동 실행되는데 실패를 했기 때문입니다. 이 현상은 OS X 10.10 요세미티로 업그레이드를 한 후 계속되고 있다는 걸 이미 알고 있었지만 매번 이렇게 문제가 일어나는 것이 짜증나기 시작해서 해결할 방법을 찾아나섰습니다. 알고 보니 해결책은 무려 2010년에 Marko Tomic씨가 OS X 10.6 스노우 레퍼드(레오파드)에서 발생하는 동일 문제를 해결한 사례로 거슬러 올라갑니다. 이후, 몇 주 전에 요세미티에 적용할 수 있는 더 간단한 버전이 등장했습니다. 이는 2013년에 애플 지원 커뮤니티에 올라온 글과 매우 유사합니다.
이 문제의 발단은 MySQL이 자동실행을 하는 방식이 매우 오래되었음에도 갱신을 하지 않은 데에서 비롯되는데, 결국 몇 년 간 자동실행이 실패할 가능성을 계속 안고 있었던 셈입니다. 공식적인 수정이 있기 전에는 다음 내용을 터미널(Terminal.app)에 입력하면 되겠습니다. 핵심은 LaunchDaemon이 부팅 때 쓸 plist 파일을 생성하는 것입니다.
nano 편집기가 실행되고 나면 다음 내용을 입력하거나 복사해서 붙여 넣으세요.
Ctrl-O, 엔터, Ctrl-X 순으로 입력하여 저장 및 종료를 합니다. 그 다음 파일 권한을 설정하고 LaunchDaemon을 실행합니다.
마지막으로, 맥을 재시작하면 MySQL이 자동 실행될 것입니다. 재시작은 곧바로 하기 바랍니다.
이 문제의 발단은 MySQL이 자동실행을 하는 방식이 매우 오래되었음에도 갱신을 하지 않은 데에서 비롯되는데, 결국 몇 년 간 자동실행이 실패할 가능성을 계속 안고 있었던 셈입니다. 공식적인 수정이 있기 전에는 다음 내용을 터미널(Terminal.app)에 입력하면 되겠습니다. 핵심은 LaunchDaemon이 부팅 때 쓸 plist 파일을 생성하는 것입니다.
sudo nano /Library/LaunchDaemons/com.mysql.mysql.plist
nano 편집기가 실행되고 나면 다음 내용을 입력하거나 복사해서 붙여 넣으세요.
<!--?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>
Ctrl-O, 엔터, Ctrl-X 순으로 입력하여 저장 및 종료를 합니다. 그 다음 파일 권한을 설정하고 LaunchDaemon을 실행합니다.
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
마지막으로, 맥을 재시작하면 MySQL이 자동 실행될 것입니다. 재시작은 곧바로 하기 바랍니다.