Как остановить MySQL на Mac OS?

187

Я установил MySQL через MacPorts . Какая команда мне нужна, чтобы остановить сервер (мне нужно проверить, как работает мое приложение, когда MySQL не работает)?

Лори Янг
источник

Ответы:

377

Существуют разные случаи в зависимости от того, установили ли вы MySQL с помощью официального бинарного установщика, использовали MacPorts или Homebrew :

Homebrew

brew services start mysql
brew services stop mysql
brew services restart mysql

MacPorts

sudo port load mysql57-server
sudo port unload mysql57-server

Примечание: это сохраняется после перезагрузки.

Двоичный установщик

sudo /Library/StartupItems/MySQLCOM/MySQLCOM stop
sudo /Library/StartupItems/MySQLCOM/MySQLCOM start
sudo /Library/StartupItems/MySQLCOM/MySQLCOM restart
mloughran
источник
Огромное спасибо - у меня были команды остановки и запуска, но я не знал / не думал о попытке перезагрузки. После использования команды stop запуск не будет работать, как в случае с панелью «Системные настройки MySQL».
Росс Хендерсон
4
В моем случае это было немного иначе, потому что номер версии mysql был добавлен в файл plist. Это было так: sudo launchctl unload -w /Library/LaunchDaemons/org.macports.mysql5.plist sudo launchctl load -w /Library/LaunchDaemons/org.macports.mysql5.plist
d1rk
1
И для меня, /opt/local/etc/LaunchDaemons/org.macports.mysql5/org.macports.mysql5.plist
Дмитрий Минковский
10
А для доморощенного:launchctl (un)load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
Костас
2
Если у вас установлены Homebrew Services , вы можете использовать brew services stop mysqlи brew services start mysql. (Также restart, и runкоторый начинается только для текущего сеанса.)
medmunds
138

Для тех, кто использовал homebrew для установки MySQL, используйте следующие команды для запуска, остановки или перезапуска MySQL

Заваривать начало

/usr/local/bin/mysql.server start

Заваривать перезапуск

/usr/local/bin/mysql.server restart

Заваривать стоп

/usr/local/bin/mysql.server stop
pjammer
источник
4
Для меня каталог установки от homebrew/usr/local/Cellar/mysql@5.7/5.7.23/bin/
Moobie
68

Вы всегда можете использовать команду "mysqladmin shutdown"

Римантас
источник
1
Команды выше не работали для меня. Этот сделал. Не уверен, какая разница в моей настройке, но спасибо.
Марко
2
Даже если это может сработать, если вы используете MacPorts и запускаете это, launchctl не поймет, что mysql остановлен, и будет жаловаться, если вы попытаетесь запустить его (загрузить). Таким образом, использование launchctl является предпочтительным.
lambshaanxy
1
Также, хотя это работает для выключения сервера, оно ничего не сделает, чтобы помочь вам восстановить его, когда вы захотите перезапустить его.
aroth
3
Не забудьте добавить -p и ввести пароль root для mysql при появлении запроса. На моей установке, где mysql установлен с MacPorts, mysql перезапустил и перезагрузил конфигурацию, которая была целью для моего действия.
Джеспер Гранн Лаурсен
sudo /opt/local/lib/mysql56/bin/mysqladmin shutdownесли ваш mysql исходит от MacPorts
Alain Tiemblo
51

Если вы используете, homebrewвы можете использовать

brew services restart mysql
brew services start mysql
brew services stop mysql

для списка доступных услуг

brew services list
январь
источник
2
У меня это работало, даже после взаимодействия с launchctl напрямую не стал. Спасибо!
Линдси Симон
19

sudo /usr/local/mysql/support-files/mysql.server stop

Moesio
источник
2
+1 это был только один, который работал для меня --- Я просто использовал установщик DMG из Mysql. Спасибо
Долан Антенуччи
15

sudo /opt/local/etc/LaunchDaemons/org.macports.mysql5/mysql5.wrapper stop

Вы также можете использовать запуск и перезапуск здесь. Я нашел это, просмотрев содержимое /Library/LaunchDaemons/org.macports.mysql.plist.

Кэти Лавалле
источник
1
Это то, как вы должны это сделать .. Для MacPorts. launchctlМетод НЕ работает, и на самом деле может вызвать проблемы с скукой при запуске PID / DB.
Алекс Грей
11

Пытаться

sudo <path to mysql>/support-files/mysql.server start
sudo <path to mysql>/support-files/mysql.server stop

Еще попробуй:

sudo /Library/StartupItems/MySQLCOM/MySQLCOM start
sudo /Library/StartupItems/MySQLCOM/MySQLCOM stop<br>
sudo /Library/StartupItems/MySQLCOM/MySQLCOM restart

Однако я обнаружил, что второй вариант работает (OS X 10.6, MySQL 5.1.50), только если файл .plist был загружен с:

sudo launchctl load -w /Library/LaunchDaemons/com.mysql.mysqld.plist

PS: я также обнаружил, что мне нужно выгрузить .plist, чтобы получить несвязанную установку MAMP -MySQL для правильного запуска / остановки. После запуска этого MAMP-MySQL запускается просто отлично:

sudo launchctl unload -w /Library/LaunchDaemons/com.mysql.mysqld.plist

Zack
источник
7

На моем Mac OSX Йосемити 10.10. Эта команда сработала:

sudo launchctl load -w /Library/LaunchDaemons/com.mysql.mysql.plist
sudo launchctl unload -w /Library/LaunchDaemons/com.mysql.mysql.plist

Вы можете найти файл MySQL в папке / Library / LaunchDaemons / для запуска

Дык чи
источник
2
Это единственный способ, который работал для меня. Для любых других методов mysqldпроцесс перезапускается сразу после остановки.
Rockallite
Это единственный способ, который работал для меня тоже. Я переключился с homebrew на DMG, поставляемый MySQL, и думаю, что версия brew все еще работала, хотя я ее и удалил.
Сэм Кричли
5

Использование:

sudo mysqladmin shutdown --user=*user* --password=*password*

Можно было бы сойти с рук, не используя sudo . Пользователь может быть, например корень (то есть, корень пользователя MySQL).

Стив
источник
4

Что ж, если ничего не помогает, вы можете просто использовать безжалостный подход и завершить процесс, запускающий MySQL вручную.

То есть,

ps -Af

чтобы вывести список всех процессов, затем выполните " kill <pid>" где <pid>это идентификатор процесса демона MySQL (mysqld).

Джон Монтгомери
источник
да .. этот самый лучший и универсальный для написания сценариев. Как вы думаете, есть возможность повреждения данных? или какие-то другие проблемы?
user425720 11.11.10
1
Это может привести к повреждению данных.
Дэн Сэндленд
Но как последнее усилие, это адекватно.
Дэн Сэндленд
4

В последних версиях OSX (10.8) и mysql 5.6 этот файл находится в разделе «Демоны запуска» и представляет собой com.oracle.oss.mysql.mysqld.plist. Он представляет параметр в разделе «Параметры системы», обычно в нижней части списка. Итак, зайдите в настройки системы, нажмите Mysql и отключите его в окне параметров. https://dev.mysql.com/doc/refman/5.6/en/osx-installation-launchd.html

ppostma1
источник
2

Для меня это работает с "mysql5"

sudo launchctl unload -w /Library/LaunchDaemons/org.macports.mysql5.plist
sudo launchctl load -w /Library/LaunchDaemons/org.macports.mysql5.plist
Allisone
источник
2

В моем случае он продолжал перезапускаться, как только я убивал процесс, используя PID. Также brew stopкоманда не работала, как я установил без использования доморощенного. Затем я перешел к системным настройкам Mac, и у нас там установлен MySQL. Просто откройте его и остановите сервер MySQL, и все готово. Здесь на скриншоте вы можете найти MySQL внизу системных настроек.введите описание изображения здесь

jokerster
источник
1

На OSX Снежный Барс

launchctl unload /System/Library/LaunchDaemons/org.mysql.mysqld.plist
sweetfa
источник
0

Я установил mysql5 и mysql55 через macports. Для меня упомянутые файлы здесь расположены в следующих местах:

(mysql55-сервер) /opt/local/etc/LaunchDaemons/org.macports.mysql55-server/org.macports.mysql55-server.plist

(mysql5) /opt/local/etc/LaunchDaemons/org.macports.mysql5/org.macports.mysql5.plist

Так что остановимся на этих работах так:

mysql55-сервер:

sudo launchctl unload -w /opt/local/etc/LaunchDaemons/org.macports.mysql55-server/org.macports.mysql55-server.plist

MySQL5:

sudo launchctl unload -w /opt/local/etc/LaunchDaemons/org.macports.mysql5/org.macports.mysql5.plist 

Вы можете проверить, работает ли сервис с:

ps ax | grep mysql

Далее вы можете проверить файлы журнала в моем случае здесь:

mysql55-сервер

sudo tail -n 100 /opt/local/var/db/mysql55/<MyName>-MacBook-Pro.local.err
...
130213 08:56:41 mysqld_safe mysqld from pid file /opt/local/var/db/mysql55/<MyName>-MacBook-Pro.local.pid ended

MySQL5:

sudo tail -n 100 /opt/local/var/db/mysql5/<MyName>-MacBook-Pro.local.err
...
130213 09:23:57  mysqld ended
Manuel_B
источник
0

Если вы установили пакет MySQL 5 с MacPorts:

sudo launchctl  unload -w /Library/LaunchDaemons/org.macports.mysql.plist 

Или

sudo launchctl  unload -w /Library/LaunchDaemons/org.macports.mysql5-devel.plist 

если вы установили mysql5-develпакет.

Бартош Блимке
источник
1
Это остановит его запуск при перезагрузке, а это не то, о чем просил автор.
Мэтью Шинкель
0

mysql> показать переменные, где имя_переменной, например, "% dir%";

| датадир | / opt / local / var / db / mysql5 / |

Джек Пэн
источник
0

После того, как попробуйте все эти командные строки, и это не работает. Я должен сделать следующее:

mv /usr/local/Cellar/mysql/5.7.16/bin/mysqld /usr/local/Cellar/mysql/5.7.16/bin/mysqld.bak
mysql.server stop

Этот способ работает, процесс mysqld ушел. но в /var/log/system.log много мусора:

Jul  9 14:10:54 xxx com.apple.xpc.launchd[1] (homebrew.mxcl.mysql[78049]): Service exited with abnormal code: 1
Jul  9 14:10:54 xxx com.apple.xpc.launchd[1] (homebrew.mxcl.mysql): Service only ran for 0 seconds. Pushing respawn out by 10 seconds.
бронзовый человек
источник