Процесс 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
Знаете ли вы, почему процесс перезапускается автоматически?
Спасибо заранее!
Ответы
Ответ 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
сделал.