Centos
如何在 Linux 中殺死 mysql (Percona Xtradb Cluster) 服務?
我無法完全殺死 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