MacOSX: автозапуск mysql при загрузке

#macos #terminal #homebrew #mysql

#macos #терминал #доморощенный #mysql

Вопрос:

Я только что установил mysql в терминал через homebrew.

Теперь, когда я пытаюсь подключиться к mysql, происходит сбой, но после запуска mysqld он работает..

Итак, что мне нужно сделать сейчас, это запустить mysqld при загрузке моего Mac.

Я искал в Google mysqld autoload at startup и т.д., Но не смог найти правильный ответ.

Надеюсь, кто-нибудь сможет указать мне правильное направление.. Спасибо!

Ответ №1:

brew info mysql дает вам инструкции по загрузке MySQL при запуске, но вот все, что вам нужно сделать:

 mkdir -p ~/Library/LaunchAgents
cp `brew --prefix mysql`/*mysql*.plist ~/Library/LaunchAgents/
launchctl load -w ~/Library/LaunchAgents/*mysql*.plist
  

Комментарии:

1. Я считаю, что это верно только в том случае, если вы установили mysql через brew, но это здорово, если у вас есть!

2. В моей последней установке файл plist называется: homebrew.mxcl.mysql.plist

3. И если у вас установлен Mariadb, имя файла: homebrew.mxcl.maraidb.plist

4. Хотя этот ответ исторически точен, более свежая brew services start команда является современным решением, с которым проще работать, чем с тайным launchctl

5. Должно ли это включаться /Library/LaunchAgents или /Library/LaunchDaemons ? Я думаю, что позже.

Ответ №2:

В настоящее время brew info mysql выдает следующее утверждение:

Чтобы запустить launchd, запустите mysql сейчас и перезапустите при входе в систему: службы brew запускают mysql

Или, если вы не хотите / нуждаетесь в фоновой службе, вы можете просто запустить: mysql.server start

Таким образом, запуск brew services start mysql гарантирует, что он будет запускаться как служба и перезапускаться при каждом входе в систему.

Если вы запустите эту команду с sudo :

 sudo brew services start mysql
  

заставит службу запускаться при загрузке, а не после входа в систему, что более полезно для серверов.

Комментарии:

1. Это ЕДИНСТВЕННЫЙ ответ, который фактически отвечает на вопрос и запускает сервер при ЗАГРУЗКЕ, а не при входе в систему. Это создает правильный .plist в нужном месте. Это действительно должно быть отмечено как правильный ответ… хотя на самом деле у меня это не работает. Но я думаю, что это отдельные проблемы.

2. Не позволяет выполнять sudo, потому что «Запуск Homebrew от имени root чрезвычайно опасен и больше не поддерживается». Как мне теперь это сделать при загрузке?

3. Похоже, что нет никакого способа, если root не владеет brew исполняемым файлом. Вероятно, вам нужно будет пройти LaunchDaemons путь из других ответов. ИМХО, это худшее решение, которое приняли люди из Homebrew. Мы знаем, что делаем, должен быть хотя бы переключатель, отключающий это глупое принудительное исполнение.

Ответ №3:

Ответ Mipadi не удался для меня с MySQL 5.6.13, установленным с помощью Homebrew на дату публикации этого сообщения. Но я проверил brew info mysql , как он предложил, и это дало мне рабочее решение:

 > ln -sfv /usr/local/opt/mysql/*.plist ~/Library/LaunchAgents
  

Ответ №4:

 mkdir -p ~/Library/LaunchAgents
cp /usr/local/opt/mysql/homebrew.mxcl.mysql.plist ~/Library/LaunchAgents/
launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
  

Ответ №5:

Вам больше не нужно настраивать plist. Последняя версия brew (1.3.4) по состоянию на октябрь 2017 года, вы можете запускать только:

brew services start <service_name>

и он будет автоматически запускаться при каждой перезагрузке компьютера. Команда brew info дает вам это

Чтобы запустить launchd mysql сейчас и перезапустить при входе в систему: службы brew запускают mysql Или, если вы не хотите / нуждаетесь в фоновой службе, вы можете просто запустить: mysql.server start

Ответ №6:

Продолжение Алехандро, которое не смогло уместиться в комментарии.

Проверьте, какие службы являются пользовательскими (login) и root (boot) с помощью этого:

 $ brew services list
Name       Status  User   Plist
chronograf started jacob  /Users/jacob/Library/LaunchAgents/homebrew.mxcl.chronograf.plist
grafana    started jacob  /Users/jacob/Library/LaunchAgents/homebrew.mxcl.grafana.plist
influxdb   started root   /Library/LaunchDaemons/homebrew.mxcl.influxdb.plist
kapacitor  stopped        
mariadb    started jacob  /Users/jacob/Library/LaunchAgents/homebrew.mxcl.mariadb.plist
memcached  started jacob  /Users/jacob/Library/LaunchAgents/homebrew.mxcl.memcached.plist
telegraf   started jacob  /Users/jacob/Library/LaunchAgents/homebrew.mxcl.telegraf.plist
  

Ответ №7:

У меня есть предварительная установка MYSQL.

Тип

 brew info mysql
  

и следуйте приведенным инструкциям:

Чтобы launchd запускал mysql при входе в систему:

 ln -sfv /usr/local/opt/mysql/*.plist ~/Library/LaunchAgents