はじめに
Macのローカル環境でmysqlを利用していたが、なんらかの理由でmysqlの動作がおかしくなりbrewで再インストール...その後、brewのmysqlは正常に動作するようになったが、まさかのXAMPPでmysqlだけが起動しないという現象に...
とりあえず、色々試してなんとか解決をしたのでその手順を自分用にアウトプット。
XAMPPの実行コマンドのあれこれ
普段はXAMPPのGUIから起動しているが、エラー確認できないため。ターミナルで行います。 ここではいくつか初歩的なコマンドを記載しています。私の場合は、②,③,④を実行するとmysqlあれこれのエラーが表示されるという状態でした。
//①XAMPPを停止
sudo /Applications/XAMPP/xamppfiles/xampp stop
//②XAMPPパッケージに含まれるすべてのサーバー(Apache、MySQL、PHPなど)を一度に起動
sudo /Applications/XAMPP/xamppfiles/xampp startmysql
//③XAMPPのMySQLサーバーのみを個別に起動
sudo /Applications/XAMPP/xamppfiles/bin/mysql.server start
//④XAMPPパッケージに含まれるMySQLサーバーのみを停止
sudo /Applications/XAMPP/xamppfiles/xampp stopmysql
XAMPPのエラー表示コマンド
XAMPPのエラーってあまり表示されないですよね?(特にGUI)どこでエラー見れるの...?って探してたら、見つけたのがエラーログ確認コマンド
//便利なエラー表示コマンド(xxx.local.err部分は個人で変更)
sudo cat /Applications/XAMPP/xamppfiles/var/mysql/xxx.local.err
//上のコマンドをそのまま貼り付けて、え?表示されないよ?ってなった人向け↓(私がそうでした)
sudo /Applications/XAMPP/xamppfiles/var/mysql/
ls -a
//末尾が.local.errになっている部分をコピーして
sudo cat 【コピー内容】
エラー例
Starting XAMPP for Mac OS X 8.0.28-0...
XAMPP: Starting Apache...ok.
XAMPP: Starting MySQL...ok.
➜ ~ /Applications/XAMPP/xamppfiles/bin/mysql.server: line 264: kill: (57697) - No such process
//XAMPPに含まれるMySQLサーバーを起動するためのコマンド
sudo /Applications/XAMPP/xamppfiles/bin/mysql.server start
Starting MariaDB
.2023-05-01 15:30:53 76639 mysqld_safe Logging to '/Applications/XAMPP/xamppfiles/var/mysql/ToyosimanoMacBook-puro.local.err'.
2023-05-01 15:30:53 76639 mysqld_safe Starting mysqld daemon with databases from /Applications/XAMPP/xamppfiles/var/mysql
./Applications/XAMPP/xamppfiles/bin/mysql.server: line 264: kill: (76639) - No such process
ERROR!
sudo /Applications/XAMPP/xamppfiles/xampp startmysql
XAMPP: Starting MySQL...ok.
➜ ~ /Applications/XAMPP/xamppfiles/bin/mysql.server: line 264: kill: (1401) - No such process
とりあえずエラーがたくさん出てました、もうわけわかめちゃん。(今思い返せば意外と簡単)
上記に対応するエラーが出てる人は、下記に記載する対処法でもしかしたら解決できるかもです。
対処法1-1.プロセスをキル
homebrewなどでmysqlのプロセスが起動していると、XAMPPの方でmysqlを立ち上げることができないとかなんとかでプロセスをキルしようね?っていう話だそうです。//MySQL,PORT3306のプロセスを確認
lsof -nP -i4TCP:3306
sudo kill ポート番号(下の画像だと96185)
しっかりとタスクがキルできているか確認...
lsof -nP -i4TCP:3306
ななな、別のポートで復活している...?
タスクキルを続けるもいたちごっこ...
原因
原因はHomebrewのサービス自動起動の有効化/無効化機能でした。この機能は、自動的にHomebrewがmysqlを起動してくれるという通常であれば便利な機能なのですが、今回はこの機能が悪さをしていたみたいですね。
//サービス自動起動の有効化
brew services start mysql
サービス自動起動の無効化
brew services stop mysql
対処法1-2.HomebrewのMySQL設定変更
まず最初に、現在インストールされているサービスの状態(起動中か停止中か)やユーザー、 サービスのファイルパスなどの情報を表示。brew service list
mysql@5.7が起動してますね。
サービス自動起動の無効化コマンドを入力
brew services stop mysql
今一度mysqlが実行されていないか確認...
brew service list
lsof -nP -i4TCP:3306
XAMPPで【Start All】又はコマンドでmysqlを起動...
よっしゃぁぁぁぁ!!!!