在數據庫管理中,MySQL是非常常用的一種關系型數據庫,但在使用過程中,我們可能會遇到一些問題。其中一種比較常見的問題就是使用mysql_safe啟動MySQL之后無法kill掉進程。
# 使用mysql_safe啟動MySQL sudo mysql_safe& # 查看MySQL進程 ps -ef | grep mysql # 結果類似如下 root 14556 1 0 14:18 ? 00:00:00 /bin/sh /usr/bin/mysqld_safe mysql 14779 14556 2 14:18 ? 00:00:00 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib/mysql/plugin --user=mysql --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/run/mysqld/mysqld.sock --port=3306 # 嘗試kill掉進程 sudo kill 14556 sudo kill 14779
然而,使用kill命令殺掉這些進程并不起作用。原因是mysql_safe啟動MySQL進程的同時也啟動了一個進程監控程序,該程序會不斷的檢測MySQL進程是否存在,如果MySQL進程不在運行,則會自動重啟MySQL進程。因此,使用kill命令只能殺掉MySQL進程,但監控程序會自動重新啟動。
解決這個問題有兩種方式:
1. 使用mysqladmin終止進程
# 先查看進程列表 ps -ef | grep mysql # 結果類似如下 root 14949 14862 0 14:39 pts/0 00:00:00 mysqladmin --defaults-file=/etc/mysql/debian.cnf ping mysql 26754 1775 3 15:43 pts/0 00:00:00 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib/mysql/plugin --user=mysql --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/run/mysqld/mysqld.sock --port=3306 # 終止進程 sudo mysqladmin -uroot -p shutdown
2. 修改監控程序配置文件
監控程序的配置文件位于MySQL安裝目錄下,可以嘗試修改該配置文件以關閉監控程序功能。
# 打開配置文件 sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf # 找到如下配置項,注釋掉即可 #[mysqld_safe] #log_error=/var/log/mysql/mysql_error.log #pid_file=/var/run/mysqld/mysqld.pid #syslog # 保存并退出配置文件
最后,在解決MySQL啟動無法kill掉進程的問題時,需要謹慎操作,避免對整個數據庫造成不必要的影響。