Как остановить mysqld


185

Чтобы узнать команду запуска mysqld (используя Mac), я могу сделать:

ps aux|grep mysql

Я получаю следующий вывод, который позволяет мне запустить сервер mysql.

/usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=...

Как мне найти необходимую команду для остановки mysql из командной строки?


1
Вы проверяли stackoverflow.com/questions/100948/…
dhable

Эта работа для меня: askubuntu.com/questions/529302/how-to-stop-mysqld-process Может быть, это сработает и для вас, братан. [] s
lam3

1
Вопрос был для Mac.
Snowcrash

Если вы подключены через mysqlклиент, вы можете просто ввести его SHUTDOWNв командной строке .
chb

Ответы:


314

Пытаться:

/usr/local/mysql/bin/mysqladmin -u root -p shutdown 

Или:

sudo mysqld stop

Или:

sudo /usr/local/mysql/bin/mysqld stop

Или:

sudo mysql.server stop

Если вы устанавливаете Launchctl в OSX, вы можете попробовать:

MacPorts

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

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

Домашнее пиво

launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist

Бинарный установщик

sudo /Library/StartupItems/MySQLCOM/MySQLCOM stop
sudo /Library/StartupItems/MySQLCOM/MySQLCOM start
sudo /Library/StartupItems/MySQLCOM/MySQLCOM restart

Я нашел это в: https://stackoverflow.com/a/102094/58768


9
Спасибо, /usr/local/mysql/bin/mysqladmin -u root shutdownсделали свое дело.
David542

5
Если это среда разработки и пароль не определен, это сработает:/usr/local/mysql/bin/mysqladmin -u root shutdown
laurent

2
средний вариант работал, но только с добавлением «службы»: service mysqld stop
plaidcorp

11
Боже мой, почему я использую все это выше, а оно все еще работает? Это как вирус!
Zen

4
Что делать, если я запускаю mysql как $ mysqld? (просто в терминале). Как мне тогда его убить? Потому что CTRL-C не работает ... Я знаю, killчто убьет его, но просто интересно, есть ли escape-последовательность, которую слушает mysqld.
Matej

34

Есть альтернативный способ просто убить процесс демона, вызвав

kill -TERM PID

где PID- значение, хранящееся в файле, mysqld.pidили идентификатор процесса mysqld, который можно получить, введя команду ps -a | grep mysqld.


4
это приятно знать, потому что он фактически убивает процесс после того, как он продолжал возрождаться, когда "kill -9 PID" просто не делал этого.
lordB8r

2
@ lordB8r что это значит b / c? Я пробовал kill -9 mysqld (pid), но сразу после этого он перезапускается, меня это мучает.
Zen

@Zen Используйте kill -TERM mysqld(pid)вместо этого, и все дерево процессов будет уничтожено, не позволяя ему возродиться.
Pirooz 01

1
Да, операция безопасна, поскольку RDB гарантируют свойства ACID.
Pirooz

2
Я попробовал kill -term PID, и он убил его, но если я запустил ps -a | grep mysqld, процесс mysqld снова запускается с новым PID.
2myCharlie 01

20

Я нашел здесь ответ.

Использовать

sudo stop mysql

Это сработало для моей установки AWS ubuntu mysql. "Kill -TERM pid" не работал в моем случае. Спасибо.
Йоши

sudo mysql stopдля меня (Digital Ocean - ghost-512mb-lon1-01).
Лев,

Я получил эту ошибку для этого: ОШИБКА 1045 (28000): доступ запрещен для пользователя 'root' @ 'localhost' (с использованием пароля: NO)
2myCharlie



11

Работал у меня на Mac

а) Остановить процесс

sudo launchctl list | grep -i mysql

Если результат показывает что-нибудь вроде: «xxx.xxx.mysqlxxx»

sudo launchctl remove xxx.xxx.mysqlxxx

Пример: sudo launchctl remove org.macports.mysql56-server

б) Отключить автозапуск процесса

sudo launchctl unload -wF /Library/LaunchDaemons/xxx.xxx.mysqlxxx.plist

Пример: sudo launchctl unload -wF /Library/LaunchDaemons/org.macports.mysql56-server.plist

  • Наконец перезагрузите ваш Mac

Примечание. В некоторых случаях, если вы сначала попробовали «a)» , вам необходимо перезагрузить компьютер еще раз, прежде чем пытаться b) .


10

для двоичного установщика используйте это:

остановиться:

sudo /Library/StartupItems/MySQLCOM/MySQLCOM stop

начать:

sudo /Library/StartupItems/MySQLCOM/MySQLCOM start

Заново:

sudo /Library/StartupItems/MySQLCOM/MySQLCOM restart

10

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

Файл plist теперь находится в /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist


4
К слову, я попробовал все вышеперечисленные методы, и ни один из них не помог остановить дополнительный процесс MySQL. Просмотр системных настроек и поиск MySQL сделали свое дело - спасибо!
andycrone

Спасибо, это сработало. Здесь же находится кнопка удаления.
smcg

Это сработало для большинства: gist.github.com/vitorbritto/0555879fe4414d18569d, но на всякий случай попробуйте шаг 7 перед шагом 6
ppostma1

6

Убивать - определенно неправильный путь! PID останется, задания репликации будут убиты и т.д.

ОСТАНОВИТЬ сервер MySQL

/ sbin / служба mysql остановить

ЗАПУСТИТЬ сервер MySQL

/ sbin / запуск службы mysql

ПЕРЕЗАГРУЗИТЕ сервер MySQL

/ sbin / перезапуск службы mysql

Возможно sudo понадобится если у вас недостаточно прав


5

Попробуйте убить mysqld четыре раза подряд. Это единственное, что у меня сработало ...

root@ubuntu:/etc/init# killall -KILL mysqld 
root@ubuntu:/etc/init# killall -KILL mysqld 
root@ubuntu:/etc/init# killall -KILL mysqld 
root@ubuntu:/etc/init# killall -KILL mysqld 
mysqld: no process found

Просто продолжайте убивать его снова и снова, пока не увидите «mysqld: no process found».


4

То, что у меня работало в CentOS 6.4, было запущено service mysqld stopот имени пользователя root.

Я нашел свой ответ на nixCraft .


2

Если мой mysql продолжает перезапуск
sudo rm -rf /usr/local/var/mysql/dev.work.err
mysql.server stop
у меня работает.


Остановка mysql.server вызвала эту ошибку: zsh: команда не найдена: mysql.server
2myCharlie

2

Чтобы остановить автозапуск mysql при загрузке, у меня сработало следующее с mysql, 8.0.12установленным с использованием Homebrew в macOS Mojave 10.14.1:

rm -rf ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist

2
/etc/init.d/mysql stop
service mysql stop
killall -KILL mysql mysqld_safe mysqld

When you see the following information, you success

mysql: no process found
mysqld_safe: no process found
mysqld: no process found

Я использую это для решения проблемы установки MySQL 5.6 в Ubuntu 15.10 по этой ссылке .

Во время этой установки я сталкиваюсь с проблемой:

"mysqld_safe A mysqld process already exists"

Просто полностью остановите mysqld, mysqld_safe, mysql решает проблему.


1

Чтобы остановить экземпляр сервера MariaDB и MySQL:

sudo mysqladmin shutdown

Чтобы запустить экземпляр сервера MariaDB и MySQL:

mysqld &

Чтобы изменить владельца данных для MariaDB и экземпляра сервера MySQL:

sudo chown -R 755 /usr/local/mariadb/data

0

Для mysql 5.7, загруженного из двоичного файла на MacOS:

sudo launchctl load -F /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist
sudo launchctl unload -F /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist

-1

Для MAMP

  1. Остановите серверы (но вы можете заметить, что MySQL остается включенным)
  2. Удалить или переименовать /Applications/MAMP/tmp/mysql/который держит mysql.pidи mysql.sock.lockфайлы
  3. Когда вы вернетесь в Mamp, вы увидите, что MySQL отключен. Вы можете снова "запустить серверы".

это даст «/ Applications / MAMP / tmp / mysql» для файла сокета UNIX не существует »в файле mysql_error_log
Абдулла Тахан,
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.