【大阪 / 横浜】インフラ / サーバーサイドエンジニア募集中!

【大阪 / 横浜】インフラ / サーバーサイドエンジニア募集中!

【2024年2月~】25年卒 エンジニア新卒採用の募集を開始!

【2024年2月~】25年卒 エンジニア新卒採用の募集を開始!

【導入実績 500社以上】AWS 構築・運用保守・監視サービス

【導入実績 500社以上】AWS 構築・運用保守・監視サービス

【CentOS 後継】AlmaLinux OS サーバー構築・移行サービス

【CentOS 後継】AlmaLinux OS サーバー構築・移行サービス

【WordPress 専用】クラウドサーバー『ウェブスピード』

【WordPress 専用】クラウドサーバー『ウェブスピード』

【格安】Webサイト セキュリティ自動診断「クイックスキャナー」

【格安】Webサイト セキュリティ自動診断「クイックスキャナー」

【低コスト】Wasabi オブジェクトストレージ 構築・運用サービス

【低コスト】Wasabi オブジェクトストレージ 構築・運用サービス

【予約システム開発】EDISONE カスタマイズ開発サービス

【予約システム開発】EDISONE カスタマイズ開発サービス

【100URLの登録が0円】Webサイト監視サービス『Appmill』

【100URLの登録が0円】Webサイト監視サービス『Appmill』

【中国現地企業に対応】中国クラウド / サーバー構築・運用保守

【中国現地企業に対応】中国クラウド / サーバー構築・運用保守

【YouTube】ビヨンド公式チャンネル「びよまるチャンネル」

【YouTube】ビヨンド公式チャンネル「びよまるチャンネル」

MySQLの起動、停止ができない場合の対処法

こんにちは。Webシステム課の後藤です。

以前ソケットエラーの記事を書いた際

ソケットファイルが存在しないのが原因の場合の解決策の1つに、
MySQLサーバーの再起動で復元されると書きました。

ただ、こんな場合があります。

  • MySQL manager or server PID file could not be found!
    が出てきて停止できない。
  • MySQL is not running, but lock exists
    が出てきて起動できない。

等ということがあるかもしれません。

今回はこのエラー達の原因と対処法をメモしていこうと思います。

1. 停止できない場合

MySQL manager or server PID file could not be found!
原因は PID ファイルが存在していないor見つけることができないからです。

※PIDファイルとはPIDを記述しておくファイルです。
Linux ではカーネルがプロセス識別子というものを用いてプロセスを管理しています。これがPID(Process ID)です。
mysqldのようにシステムが直接起動している様なプロセスですと、カーネルが忘れない様にpidファイルが生成されます。
/var/run/ 以下を見てみると色々なpidファイルがあります。

対処方法は、PIDファイルを作成することです。
my.cnfから作成する場所を確認します。

/etc/my.cnf

pid-file = /var/run/mysqld/mysqld.pid

/var/run/mysqld/mysqld.pid に設置する設定になっているので、そこにPIDファイルを作成します。

# touch /var/run/mysqld/mysql.pid
# chown mysql:mysql /var/run/mysqld/mysqld.pid

PIDファイルの中身はPIDが記述されていないといけません。

ps aux | grep mysqld

で mysqld(mysqld_safe ではありません)のPIDを確認しましょう。
fde69d1de836ef30f76004ce86430966-600x45
この場合は2846がmysqldのPIDなので、作成したmysqld.pidへ2846を記述します。

echo 2846 > /var/run/mysqld/mysql.pid

これで止められるはずです!

2. 起動できない場合

MySQL is not running, but lock exists

原因はlockファイルが残っているためです。

※lockファイルとは、プロセスの起動に成功した際に作成され、プロセスの停止が成功した際に削除されるという、
重複して同じプロセスを作成しない為のファイルです。

対処方法はlockファイルを削除することです。

# rm /var/lock/subsys/mysql

これで起動できるはずです!

※注意 : 以下の様な場合でも同じエラーが出るようです。

  • /etc/my.cnf で存在しないディレクトリにログを出力するように指定してある
  • 出力先のディレクトリのパーミッションがない

以上、MySQLの起動、停止ができない場合の対処法でした。

この記事がお役に立てば【 いいね 】のご協力をお願いいたします!
0
読み込み中...
0 票, 平均: 0.00 / 10
13,103
X facebook はてなブックマーク pocket
【2024.6.30 CentOS サポート終了】CentOS サーバー移行ソリューション

【2024.6.30 CentOS サポート終了】CentOS サーバー移行ソリューション

【2024年2月~】25年卒 エンジニア新卒採用の募集を開始いたします!

【2024年2月~】25年卒 エンジニア新卒採用の募集を開始いたします!

【大阪 / 横浜】インフラエンジニア・サーバーサイドエンジニア 積極採用中!

【大阪 / 横浜】インフラエンジニア・サーバーサイドエンジニア 積極採用中!

この記事をかいた人

About the author