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
'programing' 카테고리의 다른 글
Intelij Idea에서 사용되지 않는 모든 클래스를 찾으려면 어떻게 해야 합니까? (0) | 2022.10.22 |
---|---|
datadir 소유권은 재부팅 후 매번 mysql:mysql로 리셋됩니다. (0) | 2022.10.22 |
전처리 후 gcc가 C코드를 출력할 수 있습니까? (0) | 2022.10.22 |
Python에서 날짜에 날짜 추가 (0) | 2022.10.22 |
Python은 클래스에 "개인" 변수를 가지고 있습니까? (0) | 2022.10.22 |