Как остановить 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

Огромное спасибо - у меня были команды остановки и запуска, но я не знал / не думал о попытке перезагрузки. После использования команды 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

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


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


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


2

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

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

2

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


1

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

launchctl unload /System/Library/LaunchDaemons/org.mysql.mysqld.plist

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

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.
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.