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

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

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

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

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

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

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

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

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

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

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

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

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

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

【200ヶ国以上に対応】グローバル eSIM「ビヨンドSIM」

【200ヶ国以上に対応】グローバル eSIM「ビヨンドSIM」

【中国への旅行・出張・駐在なら】中国SIMサービス「チョコSIM」

【中国への旅行・出張・駐在なら】中国SIMサービス「チョコSIM」

【グローバル専用サービス】北米・中国でも、ビヨンドのMSP

【グローバル専用サービス】北米・中国でも、ビヨンドのMSP

【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
14,295
X facebook はてなブックマーク pocket
【2025.6.30 Amazon Linux 2 サポート終了】Amazon Linux サーバー移行ソリューション

【2025.6.30 Amazon Linux 2 サポート終了】Amazon Linux サーバー移行ソリューション

この記事をかいた人

About the author