我无法完全终止 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(重新启动对我来说不是一个解决方案)。
答案1
如果 MySQL 以 respawn 开头,您可以检查“/etc/inittab”条目吗?如果是,那么你可以注释掉“/etc/inittab”中的行尝试使用
kill -HUP PID of MYSQL来杀死mysql
答案2
我已经找到它重启的原因了。
在服务文件中/usr/lib/systemd/system/mysql.service
启用了重新启动:
Restart=always
我评论了它:
#Restart=always
机器重新启动后,我可以按如下方式终止 mysql 进程:
killall -KILL mysql mysqld_safe mysqld