Centos

如何在 Linux 中殺死 mysql (Percona Xtradb Cluster) 服務?

  • December 12, 2016

我無法完全殺死 CentOS 7 上的 mysql 服務。我試圖找到所有 PID:

ps -ef | grep 'mysql'

然後用kill -9 ...

但是mysql會在一段時間後重新創建。

我也試圖像這樣殺死它:

killall -KILL mysql mysqld_safe mysqld

同樣的效果。幾秒鐘後mysql重新加入。

為什麼會發生?

編輯:

# ps aux | grep mysql
root     15284  0.0  0.3 115384  1804 ?        Ss   12:10   0:00 /bin/sh /usr/bin/mysqld_safe --basedir=/usr  --wsrep-new-cluster 
mysql    15743  0.1 40.3 1353412 202276 ?      Sl   12:10   0:03 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --user=mysql --wsrep-provider=/usr/lib64/galera3/libgalera_smm.so --wsrep-new-cluster --log-error=/var/log/mysqld.log --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/lib/mysql/mysql.sock --wsrep_start_position=43de3d74-bca8-11e6-a178-57b39b925285:9                                                                                                                         
root     16303  0.0  0.1 112648   976 pts/0    R+   12:56   0:00 grep --color=auto mysql

我正在使用 mysql fork (Percona Xtradb Cluster),如果節點從集群中分區,它將無法停止。只有當我禁用 mysql 服務並重新啟動節點時,它才能停止。但對我來說,在不重新啟動節點的情況下終止程序要好得多。所以

systemctl stop mysql

不工作。它試圖阻止它,但沒有成功。

我已經通過 yum 從 Percona 儲存庫安裝了它:

yum install Percona-XtraDB-Cluster-57

情況是下一個:

有 3 個節點並且它們崩潰了。一段時間後,只有 2 個節點可以啟動。但他們正在等待第三個節點。他們有狀態:啟動。如果我嘗試停止 mysql 服務,那麼它將其狀態更改為:停用。但這無法阻止。因此,我嘗試終止 mysql 服務並從 2 個節點配置一個新集群。但是我無法在不重新啟動的情況下停止 mysql(重新啟動對我來說不是解決方案)。

我找到了重啟的原因。

在服務文件/usr/lib/systemd/system/mysql.service中啟用了重新啟動:

Restart=always

我評論它:

#Restart=always

機器重啟後,我可以殺死一個mysql程序,如下所示:

killall -KILL mysql mysqld_safe mysqld

如果 MySQL 以 respawn 開頭,您能否檢查它的“/etc/inittab”條目。如果是,那麼你可以註釋掉“/etc/inittab”中的那一行嘗試用

MYSQL的kill -HUP PID殺死mysql

引用自:https://unix.stackexchange.com/questions/328911