Подтвердить что ты не робот

Закройте MySQL без перезапуска на El Capitan

Я запускаю OS X 10.11 El Capitan со встроенным стеке сервера (Apache 2.4.16, MySQL 5.6.26).

Мне нужно выйти из mysql, но при этом он немедленно перезапустит его.

Вот что я пробовал до сих пор:


Убивание процесса

$ ps aux | grep mysql, чтобы вернуть PID

74 49484     1   0 10:23AM ??         0:00.46 /usr/local/mysql/bin/mysqld --user=_mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --log-error=/usr/local/mysql/data/mysqld.local.err --pid-file=/usr/local/mysql/data/mysqld.local.pid --port=3307

Затем $ sudo kill -9 49484 убивает процесс, но он немедленно перезапускается с более высоким PID.


Выгрузка mysqld из launchd

$ launchctl list | grep mysql ничего не возвращает, поэтому нет $ launchctl unload


Остановка сервера mysql

$ /usr/local/mysql/support-files/mysql.server stop завершается сбой "PIR файл сервера ERROR! MySQL не найден!" несмотря на то, что mysql запущен и PID файл обновлен в /usr/local/mysql/data/mysqld.local.pid.


Выше все предлагаемые решения я нашел в Stack Overflow, ни одна из которых не работает для меня на El Capitan. На Yosemite просто убить процесс было достаточно, но с обновлением El Capitan mysql немедленно перезапускается.

Спасибо.

4b9b3361

Ответ 1

Что в конечном итоге сработало для меня, это остановить MySQL через интерфейс Mac System Preferences. Это убило mysql без его возвращения.

введите описание изображения здесь

Ответ 2

В macOS Sierra это сработало для меня

Остановить MySQL:

launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist

Запустите MySQL:

launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist

Ответ 3

В OS X El Capitan это сработало для меня:

sudo launchctl unload -F /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist

Ответ 4

Я обнаружил, что для меня работали следующие команды:

Остановить mysql:

sudo launchctl unload -F /Library/LaunchDaemons/com.mysql.mysql.plist

Запустить mysql:

sudo launchctl load -F /Library/LaunchDaemons/com.mysql.mysql.plist

Ответ 5

На моем конфиге я нашел это:

$ cat /Library/LaunchDaemons/com.mysql.mysql.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>

Вам необходимо: изменить этот истинный тег после KeepAlive на false и выгрузить демон, как предлагали другие. В моем случае это было: sudo launchctl unload -F/Library/LaunchDaemons/com.mysql.mysql.plist && launchctl load/Library/LaunchDaemons/com.mysql.mysql.plist

Как только демон будет перезапущен с новой конфигурацией, он не будет препятствовать завершению работы mysql, когда вы убьете его из настроек.

Ответ 6

Если вы использовали homebrew для установки mysql, mysqld продолжит перезапуск, если вы не используете следующую команду brew:

brew services list

brew services list output

Получите имя службы для остановки и затем выполните следующую команду:

brew services stop [email protected]

Ответ 7

Согласно ответу Теории, это все еще эффективно для Mojave.

sudo launchctl unload -F/Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist

По-видимому, если вы сталкиваетесь с проблемой продолжения запуска mysqld, это, скорее всего, связано с тем, что mysql установлен на системном уровне и по умолчанию он автоматически запускается при перезагрузке компьютера.

В моей ситуации, я был смущен после перезагрузки компьютера, почему мой docker mysql контейнер пожаловалась уже выделенный порт. Помню, что после постоянной отладки я установил mysql на системный уровень и никогда не перезагружал свой компьютер!

Не унывайте.

Ответ 8

это остановило MySQL для меня на Mac Sierra

sudo launchctl unload -F /Library/LaunchDaemons/[email protected]