【XAMPP】MySQLが起動しないNo such process

<h2>はじめに</h2>

Macのローカル環境でmysqlを利用していたが、なんらかの理由でmysqlの動作がおかしくなりbrewで再インストール...その後、brewのmysqlは正常に動作するようになったが、まさかのXAMPPでmysqlだけが起動しないという現象に...
とりあえず、色々試してなんとか解決をしたのでその手順を自分用にアウトプット。


<h2>XAMPPの実行コマンドのあれこれ</h2>
普段は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

```

<h2>XAMPPのエラー表示コマンド</h2>
XAMPPのエラーってあまり表示されないですよね？(特にGUI)<br>
どこでエラー見れるの...?って探してたら、見つけたのがエラーログ確認コマンド

```
//便利なエラー表示コマンド(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 【コピー内容】
```

<h2>エラー例</h2>

:::note alert
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
:::

:::note alert
//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! 
:::

:::note alert
sudo /Applications/XAMPP/xamppfiles/xampp startmysql

XAMPP: Starting MySQL...ok.
➜  ~ /Applications/XAMPP/xamppfiles/bin/mysql.server: line 264: kill: (1401) - No such process
:::

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1045856/22f10da3-ec5d-44a7-744b-328ef7cdd8c6.png)


とりあえずエラーがたくさん出てました、もうわけわかめちゃん。(今思い返せば意外と簡単)
上記に対応するエラーが出てる人は、下記に記載する対処法でもしかしたら解決できるかもです。

<h2>対処法1-1.プロセスをキル</h2>
homebrewなどでmysqlのプロセスが起動していると、XAMPPの方でmysqlを立ち上げることができないとかなんとかでプロセスをキルしようね？っていう話だそうです。

```
//MySQL,PORT3306のプロセスを確認
lsof -nP -i4TCP:3306
sudo kill ポート番号(下の画像だと96185)
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1045856/dc8e68aa-ae38-04dd-0d19-e513991da21b.png)

しっかりとタスクがキルできているか確認...
```
lsof -nP -i4TCP:3306
```
ななな、別のポートで復活している...?
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1045856/614eeca3-7c2c-65f4-c8d3-e2f2b2c30a23.png)
タスクキルを続けるもいたちごっこ...

<h2>原因</h2>
原因はHomebrewのサービス自動起動の有効化/無効化機能でした。<br>

:::note 
この機能は、自動的にHomebrewがmysqlを起動してくれるという通常であれば便利な機能なのですが、今回はこの機能が悪さをしていたみたいですね。
```
//サービス自動起動の有効化
brew services start mysql

サービス自動起動の無効化
brew services stop mysql
```
:::


<h2>対処法1-2.HomebrewのMySQL設定変更</h2>
まず最初に、現在インストールされているサービスの状態（起動中か停止中か）やユーザー、
サービスのファイルパスなどの情報を表示。

```
brew service list
```
mysql@5.7が起動してますね。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1045856/35541215-16f5-92fb-c435-589016e61b0d.png)
サービス自動起動の無効化コマンドを入力
```
brew services stop mysql
```
今一度mysqlが実行されていないか確認...
```
brew service list
lsof -nP -i4TCP:3306
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1045856/865e4f89-8cdf-961c-2ee8-cce7960f7c24.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1045856/26990031-8bdf-16dc-e118-f3af7dced3c6.png)

XAMPPで【Start All】又はコマンドでmysqlを起動...
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1045856/c7173a56-944e-dbfa-1f78-de56748bdf79.png)

よっしゃぁぁぁぁ！！！！

<h2>まとめ</h2>
XAMPPはかなり利用していましたが、この様なエラーに遭遇したことがなくかなり足止めを喰らいました...様々な記事などを参考にして、なんとか解決に繋がったので良かったです。
皆様のエラーもこの対処法で解決することを望むばかりです...では、素敵なXAMPPライフを！