Подтвердить что ты не робот

Процесс mysql не может быть остановлен

Недавно я установил 5.5.28-29.2 Percona Server (GPL), выпуск 29.2 на рабочем столе ОС Ubuntu 12.04. Я попытался остановить сервер, используя разные методы:

- sudo /etc/init.d/mysql stop
- sudo kill -9 pid
- mysqladmin -u root -p shutdown

Все эти методы останавливают процесс, однако он запускается автоматически после его смерти. Я проверил syslog (/var/log/syslog/) и всегда показывает следующую трассировку:

Jan  4 17:50:44 kernel: [ 1915.494219] init: mysql main process (17311) killed by KILL signal
Jan  4 17:50:44 kernel: [ 1915.494245] init: mysql main process ended, respawning
Jan  4 17:50:44 kernel: [ 1915.500025] type=1400 audit(1357318244.557:48): apparmor="STATUS" operation="profile_replace" name="/usr/sbin/mysqld" pid=18458 comm="apparmor_parser"
Jan  4 17:50:46 /etc/mysql/debian-start[18501]: Upgrading MySQL tables if necessary.
Jan  4 17:50:46 /etc/mysql/debian-start[18504]: /usr/bin/mysql_upgrade: the '--basedir' option is always ignored
Jan  4 17:50:46 /etc/mysql/debian-start[18504]: Looking for 'mysql' as: /usr/bin/mysql
Jan  4 17:50:46 /etc/mysql/debian-start[18504]: Looking for 'mysqlcheck' as: /usr/bin/mysqlcheck
Jan  4 17:50:46 /etc/mysql/debian-start[18504]: This installation of MySQL is already upgraded to 5.5.28, use --force if you still need to run mysql_upgrade
Jan  4 17:50:46 /etc/mysql/debian-start[18515]: Checking for insecure root accounts.
Jan  4 17:50:46 /etc/mysql/debian-start[18520]: Triggering myisam-recover for all MyISAM tables

Знаете ли вы, почему процесс перезапускается автоматически? Спасибо заранее!

4b9b3361

Ответ 1

У меня была такая же проблема. Выполнение команды kill приведет к уничтожению процесса, но в моем случае он будет снова появляться под другим идентификатором процесса.

Единственный способ понять, как остановить его навсегда, это:

sudo stop mysql

Надеюсь, что это поможет.

Источник: http://www.itfromscratch.com/how-to-stop-the-percona-mysql-server/

Ответ 2

Использование sudo service mysql stop работало для меня.

Ответ 3

Хотите убить все экземпляры mysql? Попробуйте root:

 pkill mysqld;

Ответ 4

Я собираюсь угадать здесь, но mysqld может быть запущен через mysql_safe init script, который перезапустит сервер.

Ответ 5

Для тех, кто смотрит на эти годы после факта, у меня была аналогичная проблема, и я просто решил ее.

Кажется, был второй init script, называемый orig_mysql.conf, который существовал в каталоге /etc/init вместе с файлом mysql.conf. Это заставило выскочить, чтобы начать два случая, и, видимо, он запутался, когда его закончили. Как таковой продолжался восстание.

Мое решение:

  • Остановить mysql с помощью выскочки, если возможно: service mysql stop
  • УДАЛИТЕ один из файлов conf (я удалил /etc/init/orig _mysql.conf). Затем перезапустите init, используя: telinit u
  • Удалите все оставшиеся mysqld-процессы вручную.

Как только вы подтвердите, что у вас нет запущенных процессов mysqld и что они больше не возрождаются, перезапустите mysql с помощью service mysql start.

Надеюсь, это поможет кому-то. Мне потребовалось два года, чтобы решить эту проблему.

Ответ 6

Это может не относиться к этой конкретной проблеме, но здесь все равно. Я проверил журнал ошибок ( "/var/log/mysql/error.log" ) и увидел, что "explicit_defaults_for_timestamp = TRUE" вызывает ошибку ( "Неизвестная переменная" ). Поэтому я удалил его из my.cnf( "/etc/mysql/my.cnf" ) и запустил "sudo start mysql", и он вернулся и работал. Надеюсь, это тоже поможет!

Ответ 7

Вы должны просто удалить mysql.sock. Этот способ запуска службы mysqld снова заново воссоздает его. Если это не так, просто перезагрузите сервер после удаления mysql.sock

Ответ 8

Я использую Homebrew в Mac OS. brew services stop mysql не работал у меня, но sudo brew services stop mysql сделал.