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