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

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

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

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

【圧倒的 低コスト】Oracle Cloud 構築・運用保守・監視サービス

【圧倒的 低コスト】Oracle Cloud 構築・運用保守・監視サービス

【WordPress専用】高速 クラウド / サーバー『WebSpeed』

【WordPress専用】高速 クラウド / サーバー『WebSpeed』

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

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

【次世代】ゲーム専用データ分析エンジン『ThinkingEngine』

【次世代】ゲーム専用データ分析エンジン『ThinkingEngine』

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

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

【SNSアプリ開発】LINE カスタムアプリ開発サービス

【SNSアプリ開発】LINE カスタムアプリ開発サービス

【ECアプリ開発】Shopify カスタムアプリ開発サービス

【ECアプリ開発】Shopify カスタムアプリ開発サービス

【音声アプリ開発】Twilio カスタムアプリ開発サービス

【音声アプリ開発】Twilio カスタムアプリ開発サービス

【グローバル対応】北米リージョン・クラウド / サーバー サポート

【グローバル対応】北米リージョン・クラウド / サーバー サポート

【取材記事】サーバーサイド・バックエンドエンジニアを募集中

【取材記事】サーバーサイド・バックエンドエンジニアを募集中

【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
10,990
facebook twitter はてなブックマーク
【大阪 / 横浜】インフラエンジニア / サーバーサイドエンジニア 積極採用中!

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

この記事をかいた人

About the author