0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

MySQLエラー「The server quit without updating PID file」の原因と解決方法

Posted at

エラー内容

ERROR! The server quit without updating PID file (/usr/local/var/mysql/*.local.pid).

このエラーは、MySQLサーバーが起動しようとした際に、何らかの理由で正常に動作できず、PIDファイルを更新せずに終了したことを意味します。

PIDファイルとは?

PID (Process ID) ファイルは、MySQLサーバーが稼働していることを示すファイルです。このファイルには、サーバープロセスのIDが記録されます。
正常に起動した場合に生成され、サーバー停止時には削除されるべきものですが、エラー発生時には適切に更新されない場合があります。

原因

指定されているPIDファイルのディレクトリやファイルが適切に構成されていないことが原因で発生していました。

環境

% mysql --version
mysql  Ver 8.0.40 for macos15.1 on arm64 (Homebrew)

% bundle list | grep mysql2
  * mysql2 (0.5.6)

解決手順

#インストール
brew install mysql@8.0

#サーバー起動
mysql.server start

####エラー発生####
=> ERROR! The server quit without updating PID file (/opt/homebrew/var/mysql/*.local.pid).

「ls -la /opt/homebrew/var/mysql」で権限確認

「cat /opt/homebrew/var/mysql/*.local.err」でエラーの詳細を確認
#・ibdata1、InnoDBなどが作成されない

「/opt/homebrew/var/mysql/」の初期化コマンドを実行 → ibdata1、InnoDBなどが作成されない
#※ mysqld --initialize --user=$(whoami) --datadir=/opt/homebrew/var/mysql

「/opt/homebrew/var/mysql」の中のファイル権限を変更
# sudo chown -R $(whoami):staff /opt/homebrew/var/mysql
# chmod -R 755 /opt/homebrew/var/mysql

「sudo rm -rf /opt/homebrew/var/mysql」で配下のデータを削除

新しくデータを作成+権限修正
# sudo chown -R $(whoami):staff /opt/homebrew/var

「/opt/homebrew/var/mysql」を初期化(デフォルトのファイルを自動生成)
# mysqld --initialize --user=$(whoami) --datadir=/opt/homebrew/var/mysql
# ログに「A temporary password is generated for root@localhost: 6Py<O:W#-Tiy」にあるパスワードをメモする
# 「mysql -u root -p」でログインする時に使う

mysql.server start
# SUCCESS! 

データベース作成
# rails db:create

libmysqlclient.23.dylibが見つからない
# エラーLibrary not loaded: /opt/homebrew/opt/mysql/lib/libmysqlclient.23.dylib
# 特定のバージョンを指定する場合に発生する

検索をかけるとファイル発見(※場所が違う)
# find /opt/homebrew -name "libmysqlclient*.dylib" 2>/dev/null
# homebrewでは関連データが全てCellarで格納される。呼び出す際にはoptというフォルダが変数になっており、自動的に適切なデータが入るようになっている

強制的にファイルを作成
# mkdir -p /opt/homebrew/opt/mysql/lib

参照名を変更
# ln -s /opt/homebrew/Cellar/mysql@8.4/8.4.3_3/lib/libmysqlclient.24.dylib /opt/homebrew/opt/mysql/lib/libmysqlclient.23.dylib

リンクが設定されるか確認
# ls -la /opt/homebrew/opt/mysql/lib/

データベース作成
# rails db:create

パスワード、ユーザー名が違うということでエラー
# ActiveRecord::DatabaseConnectionError: There is an issue connecting to your database with your username/password, username: root.

初期化時に発行されたパスワードでログイン
# 87voW!(2akg4

アカウント作成
# ALTER USER 'root'@'localhost' IDENTIFIED BY '自分のパスワード';

db作成完了
# rails db:create

その他のエラー事例:

# エラー:「mysql.server stop」してから「mysql.server start」した時
Do you already have another mysqld server running on socket: /tmp/mysql.sock ?

mysql.server start
ls -l /tmp/mysql.sock
sudo rm -f /tmp/mysql.sock

まとめ

このエラーは、MySQLサーバーの設定やプロセスの異常が原因で発生することが一般的です。上記の手順を一つずつ試していくことで、問題の解決が可能です。特に、エラーログの確認が有効な対処法となります。

MySQLの安定した運用を保つために、設定や環境の変更時には注意深く作業を進めることをおすすめします。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?