2.4.3 Установка демона запуска MySQL
macOS использует демонов запуска для автоматического запуска, остановки и управления процессами и приложениями, такими как MySQL.
По умолчанию, пакет установки (DMG) на macOS устанавливает файл launchd с именем /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist, который содержит определение 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>
</array>
<key>WorkingDirectory</key> <string>/usr/local/mysql</string>
</dict>
</plist>
Некоторые пользователи сообщают, что добавление объявления DOCTYPE plist приводит к сбою работы launchd, несмотря на то, что проверка lint прошла успешно. Мы предполагаем, что это ошибка при копировании и вставке. MD5-контрольная сумма файла, содержащего приведенный выше фрагмент, равна 24710a27dc7a28fb7ee6d825129cd3cf.
Для активации службы launchd можно:
-
Нажать в окне настроек MySQL.
Рисунок 2.19 Панель настроек MySQL: расположение
Рисунок 2.20 Панель настроек MySQL: использование
-
Или загрузить файл launchd вручную.
$> cd /Library/LaunchDaemons $> sudo launchctl load -F com.oracle.oss.mysql.mysqld.plist -
Чтобы настроить MySQL на автоматический запуск при загрузке системы, можно:
$> sudo launchctl load -w com.oracle.oss.mysql.mysqld.plist
При обновлении сервера MySQL процесс установки launchd удаляет старые элементы запуска, установленные с сервером MySQL 5.7.7 и более ранними версиями.
Обновление также заменяет существующий файл launchd с тем же именем.
Дополнительная информация, связанная с launchd:
Записи
plistпереопределяют записиmy.cnf, поскольку они передаются в качестве аргументов командной строки. Дополнительную информацию о передаче параметров программы см. в разделе 4.2.2, «Указание параметров программы».Раздел ProgramArguments определяет параметры командной строки, передаваемые программе, которая в данном случае является бинарником
mysqld.Определение по умолчанию
plistнаписано с учетом менее сложных вариантов использования. Для более сложных сценариев вы можете удалить некоторые аргументы и вместо этого полагаться на файл конфигурации MySQL, такой какmy.cnf.Если вы редактируете файл
plist, то при повторной установке или обновлении MySQL не выбирайте опцию установщика. В противном случае отредактированный файлplistперезаписывается, и все внесенные вами изменения теряются.
Поскольку определение по умолчанию plist определяет несколько ProgramArguments, вы можете удалить большинство этих аргументов и вместо этого полагаться на файл конфигурации MySQL my.cnf для их определения. Например:
<?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>WorkingDirectory</key> <string>/usr/local/mysql</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/mysql/bin/mysqld</string>
<string>--user=_mysql</string>
</array>
</dict>
</plist>
В этом случае опции basedir, datadir, plugin_dir, log_error и pid_file были удалены из определения plist, а затем их можно определить в my.cnf.
© 2025 Oracle
Licensed under the GPLv2 License.