web-dev-qa-db-ja.com

Mysqlの新しいpidファイルを取得してMysqlを正常に再起動する方法

のため lost of pid file of my server、次のような通常のコマンドを使用してmysqlを停止することはできません

service mysql stop

表示されます

ERROR! MySQL server PID file could not be found!

だから私はすべてのmysqlプロセスを停止してmysqlを手動で再起動しようとします

私はインターネットを検索して1つの解決策を見つけましたが、それは私にとってはうまくいきません。

走る

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を実際に正常に戻すにはどうすればよいですか?

1
Hantong Liu

あなたが示している結果:

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
1
ode2k

試してください:

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

Grepが何も返さない場合、mysqlは実行されていません。

1
Henryk Gerlach