Loading...
MySQL 9.5 Reference Manual 9.5의 2.4.3 Installing and Using the MySQL Launch Daemon의 한국어 번역본입니다.
아래의 경우에 피드백에서 신고해주신다면 반영하겠습니다.
감사합니다 :)
macOS는 MySQL과 같은 프로세스 및 애플리케이션을 자동으로 시작, 중지 및 관리하기 위해 launch daemon을 사용합니다.
기본적으로, macOS의 설치 패키지(DMG)는 다음과 같은 plist 정의를 포함하는 /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist라는 이름의 launchd 파일을 설치합니다:
1<?xml version="1.0" encoding="UTF-8"?> 2<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 3<plist version="1.0"> 4<dict> 5 <key>Label</key> <string>com.oracle.oss.mysql.mysqld</string> 6 <key>ProcessType</key> <string>Interactive</string> 7 <key>Disabled</key> <false/> 8 <key>RunAtLoad</key> <true/> 9 <key>KeepAlive</key> <true/> 10 <key>SessionCreate</key> <true/> 11 <key>LaunchOnlyOnce</key> <false/> 12 <key>UserName</key> <string>_mysql</string> 13 <key>GroupName</key> <string>_mysql</string> 14 <key>ExitTimeOut</key> <integer>600</integer> 15 <key>Program</key> <string>/usr/local/mysql/bin/mysqld</string> 16 <key>ProgramArguments</key> 17 <array> 18 <string>/usr/local/mysql/bin/mysqld</string> 19 <string>--user=_mysql</string> 20 <string>--basedir=/usr/local/mysql</string> 21 <string>--datadir=/usr/local/mysql/data</string> 22 <string>--plugin-dir=/usr/local/mysql/lib/plugin</string> 23 <string>--log-error=/usr/local/mysql/data/mysqld.local.err</string> 24 <string>--pid-file=/usr/local/mysql/data/mysqld.local.pid</string> 25 <string>--keyring-file-data=/usr/local/mysql/keyring/keyring</string> 26 <string>--early-plugin-load=keyring_okv=keyring_okv.so</string> 27 </array> 28 <key>WorkingDirectory</key> <string>/usr/local/mysql</string> 29</dict> 30</plist>
Note
일부 사용자는 plist DOCTYPE 선언을 추가하면 린트 체크는 통과하지만 launchd 동작이 실패한다고 보고합니다. 우리는 이것이 copy-n-paste 오류라고 추정합니다. 위의 스니펫을 포함하는 파일의 md5 체크섬은 d925f05f6d1b6ee5ce5451b596d6baed 입니다.
launchd 서비스를 활성화하려면 다음 중 하나를 수행할 수 있습니다:
Figure 2.6 MySQL Preference Pane: Location

Instances 페이지에는 MySQL을 시작 또는 중지할 수 있는 옵션이 포함되어 있으며, Initialize Database는 data/ 디렉터리를 재생성합니다. Uninstall은 MySQL Server를 제거하고, 선택적으로 MySQL 환경설정 패널 및 launchd 정보도 제거합니다.
Figure 2.7 MySQL Preference Pane: Instances

1$> cd /Library/LaunchDaemons 2$> sudo launchctl load -F com.oracle.oss.mysql.mysqld.plist
1$> sudo launchctl load -w com.oracle.oss.mysql.mysqld.plist
Note
업그레이드 과정은 com.oracle.oss.mysql.mysqld.plist라는 기존 launchd 파일을 교체합니다.
launchd 관련 추가 정보:
plist 엔트리는 커맨드 라인 인수로 전달되기 때문에 my.cnf 엔트리보다 우선합니다. 프로그램 옵션 전달에 대한 추가 정보는 Section 6.2.2, “Specifying Program Options”를 참조하십시오.
ProgramArguments 섹션은 이 경우 mysqld 바이너리인 프로그램에 전달되는 커맨드 라인 옵션을 정의합니다.
기본 plist 정의는 덜 복잡한 사용 사례를 염두에 두고 작성되어 있습니다. 더 복잡한 설정의 경우, 일부 인수를 제거하고 대신 my.cnf와 같은 MySQL 구성 파일에 의존하고자 할 수 있습니다.
plist 파일을 편집한 경우, MySQL을 재설치 또는 업그레이드할 때 인스톨러 옵션의 선택을 해제하십시오. 그렇지 않으면 편집한 plist 파일이 덮어쓰여져 모든 수정 사항이 손실됩니다.
기본 plist 정의는 여러 ProgramArguments를 정의하므로, 이들 대부분을 제거하고 대신 my.cnf MySQL 구성 파일에 의존하여 정의할 수 있습니다. 예를 들면:
1<?xml version="1.0" encoding="UTF-8"?> 2<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 3<plist version="1.0"> 4<dict> 5 <key>Label</key> <string>com.oracle.oss.mysql.mysqld</string> 6 <key>ProcessType</key> <string>Interactive</string> 7 <key>Disabled</key> <false/> 8 <key>RunAtLoad</key> <true/> 9 <key>KeepAlive</key> <true/> 10 <key>SessionCreate</key> <true/> 11 <key>LaunchOnlyOnce</key> <false/> 12 <key>UserName</key> <string>_mysql</string> 13 <key>GroupName</key> <string>_mysql</string> 14 <key>ExitTimeOut</key> <integer>600</integer> 15 <key>Program</key> <string>/usr/local/mysql/bin/mysqld</string> 16 <key>ProgramArguments</key> 17 <array> 18 <string>/usr/local/mysql/bin/mysqld</string> 19 <string>--user=_mysql</string> 20 <string>--basedir=/usr/local/mysql</string> 21 <string>--datadir=/usr/local/mysql/data</string> 22 <string>--plugin-dir=/usr/local/mysql/lib/plugin</string> 23 <string>--log-error=/usr/local/mysql/data/mysqld.local.err</string> 24 <string>--pid-file=/usr/local/mysql/data/mysqld.local.pid</string> 25 <string>--keyring-file-data=/usr/local/mysql/keyring/keyring</string> 26 <string>--early-plugin-load=keyring_okv=keyring_okv.so</string> 27 </array> 28 <key>WorkingDirectory</key> <string>/usr/local/mysql</string> 29</dict> 30</plist>
이 경우, basedir, datadir, plugin_dir, log_error, pid_file, 그리고 --early-plugin-load 옵션은 기본 plist ProgramArguments 정의에서 제거되었으며, 대신 my.cnf에서 정의했을 수 있습니다.
Note
--early-plugin-load는 사용 중단(deprecated) 상태이며, 향후 MySQL 버전에서 제거될 수 있습니다. 이 옵션에 대한 자세한 내용은 해당 설명을 참조하십시오.
2.4.2 Installing MySQL on macOS Using Native Packages
2.4.4 Installing and Using the MySQL Preference Pane