У меня MBA середины 2013 года под управлением OSX 10.9.
Процесс, который начинается при каждом запуске mysqld
. Я считаю, что это было из старой версии MySQL, которую я установил (через AMPPS ). Затем я установил MAMP Pro, и у меня часто возникают конфликты между этими двумя процессами. Каждый раз, когда я выключаю и перезагружаю свой Mac, я должен найти процесс, mysqld
который работает (на мониторе активности), выйти из него и затем запустить MAMP (с помощью команды терминала: /Application/MAMP/bin/startMysql.sh
больше не будет работать).
Поэтому мне интересно, как я могу отключить это mysqld
при каждом запуске.
ps
чтобы отслеживать родительский процесс и посмотреть, что запускаетсяmysqld
?Ответы:
Откройте терминал, затем:
Где «xxx.xxx» включен в выходные данные первой команды, например «org.macports.mysql». Пароль для команды "sudo" - это пароль вашей учетной записи.
Правда, sudo не требуется для «перечисления», но поскольку вы уже указали пароль sudo для первой команды, он ненадолго сохраняется в памяти сеанса и не требуется для второй команды (которая является привилегированной). В противном случае просто пропустите sudo для первой команды и используйте ее для второй. Есть больше способов, чем один, чтобы снять шкуру с кошки.
источник
sudo launchctl list | grep -i mysql
не дает результата.sudo launchctl list | grep -i mysqld
I.imgur.com/WZ5EVjw.png такжеЕсли ранее установленная версия MySQL была создана на странице загрузок сообщества MySQL на сайте SUN / Oracle, скорее всего,
launchd
она не связана с запускомmysqld
процесса. По какой-то причине сценарий запуска, который распространяется с MySQL, использует устаревшую технологию «Элементы запуска» для запуска процессов при загрузке. Фактически, даже текущий двоичный дистрибутив (5.6.15)mysqld
использует StartupItems для запуска сервера на OS X (?!)Сценарий запуска, запускающий конфликтующую версию MySQL, скорее всего, находится по адресу
/Library/StartupItems/MYSQLCOM/MYSQLCOM
. Во время загрузки этот элемент запуска будет проверять файл в,/etc/hostconfig
чтобы определить, установлено ли для переменной «MYSQLCOM» значение «-YES-». Если это так, запускается скрипт запускаmysqld
.Должна быть возможность отключить запуск MySQL, изменив строку, в
/etc/hostconfig
которой указаноMYSQLCOM=-YES-
словоMYSQLCOM=-NO-
(что должно отключить процесс запуска при следующей загрузке).Вы можете завершить текущий запущенный экземпляр
mysqld
, выполнив команду:Чтобы навсегда отключить запуск неправильного
mysqld
процесса, должна быть возможность сначала остановить демон, используя приведенную выше команду, а затем удалить элемент запуска MySQL, используя следующую команду:Примечание: у вас также может быть установлена панель настроек MySQL на
/Library/PreferencePanes/MySQL.prefpane
или~/Library/PreferencePanes/MySQL.prefpane
... Эта панель настроек также может быть удалена для «очистки» частей старой установки MySQL.источник
sudo /Library/StartupItems/MYSQLCOM/MYSQLCOM stop
тоже ничего не дают: i.imgur.com/ukHtW5x.pngСледующее работает для меня с MySQL,
8.0.12
установленной с помощью Homebrew вmacOS Mojave 10.14.1
:источник
Возможно, было бы проще переименовать mysqld (или переместить / создать резервную копию / удалить его), а затем перезапустить и найти сообщение об ошибке для элемента запуска, который пытался запустить программу, которая больше не доступна.
Другие ответы, кажется, охватывают поиск агентов запуска и демонов запуска, а также отслеживание PID, который обычно не работает для демонов, поскольку у них обычно родительский PID равен 1.
Кроме того, поскольку mysql не поставляется с Mavericks, вы должны иметь возможность отслеживать выбранный вами установочный пакет или использовать его,
mdfind mysqld
чтобы найти пакет, который доставил эту базу данных на ваш Mac, а затем найти инструкции по удалению / отключению для этого пакета mysql. Вы также можете посмотреть системные настройки, если вы установили там элемент управления для запуска программного обеспечения.источник
mdfind mysqld
не показывает никаких файлов MySQL, связанных с AMPPS, только файлы, связанные с MAMP (и некоторые другие из программ MySQL, которые я установил, например, MySQL Workbench)Начните с выяснения родительского процесса, который запустил ваш mysql. Из терминала запустите
ps
команду, чтобы узнать, что это за процесс; Вы можете использовать-j
или,-l
чтобы перечислить родительский идентификаторppid
. Так что это покажет вам:Первый столбец - ваш идентификатор пользователя, второй - идентификатор процесса, третий - идентификатор родителя.
Если родительский идентификатор равен 1, то он будет запущен корневым демоном запуска, что, вероятно, означает, что он поступает из одного из LaunchDaemons или StartupItems. Если это происходит из процесса, который не равен 1, но это процесс запуска, то это, вероятно, LaunchAgents или находится в элементах входа в систему.
Таким образом, процесс 1 запускается при запуске системы, и все, что имеет родительский процесс 1, происходит от системных демонов. Все (в данном случае) с родительским процессом 257 запускается из одного из LaunchAgents или LoginItems.
Имейте в виду, что имя запускающего демона или элемента запуска не обязательно должно иметь «mysql» в заголовке - оно могло быть запущено другой программой или элементом входа в систему (поэтому простой поиск по имени может его не найти) , Как только вы нашли то, что запустило его, вы можете узнать, откуда оно появилось.
источник