Spec-Zone.ru › MySQL 8.4

2.4.3 Установка и использование демона запуска MySQL для macOS

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>
            <string>--keyring-file-data=/usr/local/mysql/keyring/keyring</string>
            <string>--early-plugin-load=keyring_okv=keyring_okv.so</string>
        </array>
    <key>WorkingDirectory</key>  <string>/usr/local/mysql</string>
</dict>
</plist>

   
Примечание

Некоторые пользователи сообщают, что добавление объявления DOCTYPE plist приводит к сбою работы launchd, несмотря на то, что проверка lint прошла успешно. Мы предполагаем, что это ошибка копирования-вставки. MD5-контрольная сумма файла, содержащего вышеприведенный фрагмент, равна d925f05f6d1b6ee5ce5451b596d6baed.

Чтобы включить службу launchd, вы можете:

  • Открыть системные настройки macOS и выбрать панель настроек MySQL, а затем выполнить Запустить сервер MySQL.

    Рисунок 2.6 Панель настроек MySQL: расположение

    Shows "MySQL" typed into the macOS System Preferences search box, and a highlighted "MySQL" icon in the bottom left portion of the MySQL Preference Pane.

    Страница Экземпляры включает опцию запуска или остановки MySQL, а Инициализировать базу данных повторно создает каталог data/. Удалить удаляет сервер MySQL и, по желанию, панель настроек MySQL и информацию launchd.

    Рисунок 2.7 Панель настроек MySQL: Экземпляры

    The left side shows a list of MySQL instances separated by "Active Instance", "Installed Instances", and "Data Directories" sections. The right side shows a "Stop MySQL Server" button, a check box titled "Start MySQL when your computer starts up", and "Initialize Database" and "Uninstall" buttons.

  • Или загрузить файл 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
    
Примечание

Процесс обновления заменяет ваш существующий файл launchd с именем com.oracle.oss.mysql.mysqld.plist.

Дополнительная информация по launchd:

  • Записи plist переопределяют my.cnf записи, поскольку они передаются в качестве аргументов командной строки. Дополнительную информацию о передаче параметров программы см. в разделе 6.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>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>--keyring-file-data=/usr/local/mysql/keyring/keyring</string>
            <string>--early-plugin-load=keyring_okv=keyring_okv.so</string>
        </array>
    <key>WorkingDirectory</key>  <string>/usr/local/mysql</string>
</dict>
</plist>

   

В этом случае опции basedir, datadir, plugin_dir, log_error, pid_file и --early-plugin-load были удалены из определения ProgramArguments по умолчанию, которое вы, возможно, определили в my.cnf вместо этого.

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-8.4-en/macos-installation-launchd.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API