Mysql

如何獲取Mysql的新pid文件並成功重啟Mysql?

  • July 26, 2019

由於lost of pid file of my server,我無法使用普通命令停止 mysql,例如

service mysql stop

這將顯示

ERROR! MySQL server PID file could not be found!

所以我嘗試停止所有mysql程序並手動重啟mysql

我在網際網路上搜尋並找到了一種解決方案,但它對我不起作用。

我跑

ps aux | grep mysql

結果顯示

root      6490  0.0  0.2 112720  2332 pts/0    S+   03:48   0:00 grep --color=auto mysql

所以我輸入

kill -9 6490

但結果是

-bash: kill: (6490) - No such process

似乎每次我試圖殺死它時,pid都會改變。

我怎樣才能真正停止所有 mysql 程序?然後能得到一個新的pid文件嗎?linux和mysql的新手,提前謝謝你!


更新:

感謝 Henryk Gerlach 的回答,看來我已經關閉了所有 Mysql 程序,但是在我重新啟動伺服器後,pid 文件不會自動生成。我該怎麼做才能真正讓我的Mysql恢復正常?

您顯示的結果:

root      6490  0.0  0.2 112720  2332 pts/0    S+   03:48   0:00 grep --color=auto mysql

實際上是 ps aux | grep mysql命令的pid和程序。它實際上不是 MySQL 的程序。

MySQL 的執行程序類似於以下內容:

mysql     1894  0.8  9.8 1865804 1192032 ?     Sl   Jul01 300:53 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --user=mysql --log-error=/var/lib/mysql/DBNAME.err --pid-file=/var/lib/mysql/DBNAME.pid

您可以使用該命令pkill按名稱殺死正在執行的 MySQL 程序。但是,不建議強行殺死 MySQL。

pkill -f mysql

這將匹配命令行任何部分的文件名模式

要啟動/停止 MySQL 服務,您可以執行:

service mysqld start 
service mysqld stop 
service mysqld restart

或者

service mysql start
service mysql stop
service mysql restart

嘗試:

ps aux > /tmp/processes
grep mysql /tmp/processes

如果 grep 沒有返回任何內容,則沒有 mysql 正在執行。

引用自:https://dba.stackexchange.com/questions/243835