LoginSignup
1
0

XAMPPでMySQLが起動できなかったときのメモ

Posted at

はじめに

「気づけばプロ並みPHP」という書籍で学習中にXAMPPで環境を用意する必要があり、その際に書籍通りに操作したところapacheなどは起動することができたのですが、MySQLは起動しなかったのでその原因と解決についてまとめました。

【環境】
MacOS
xampp 7.2.3

結論

原因
もともと入れていたMySQLがずっと動いていて、
かつ自動で再起動していたため、
xamppで使うport番号と被ってしまっていたことが原因でした。

解決策
ポート番号が使用されているかを確認
$ sudo lsof -i:3306
利用されていた場合そのプロセスをkillする
$ sudo kill -9 <PID>

自動で再起動になっている場合はそれも止める
$ brew services stop mysql

概要

冒頭の説明のままですが、MySQLを選択しstartをクリックしても緑色のランプにならなかったため、

スクリーンショット 2024-03-18 23.38.51.png
(画像は解決後のスクショのため緑になってしまっています)

configureからエラーログを確認しようとしたところ、特に何も表示されていなかったため、さらにネットで調べ以下のコマンドでエラーログを確認できました。

root/Applications/XAMPP/にて
$ sudo tail xamppfiles/var/mysql/<自身のPC名>.err

実際のログ

2024-03-18 16:47:04 0 [ERROR] Can't start server: Bind on TCP/IP port. Got error: 48: Address already in use
2024-03-18 16:47:04 0 [ERROR] Do you already have another mysqld server running on port: 3306 ?
2024-03-18 16:47:04 0 [ERROR] Aborting

最後の3行のみで抜粋するとこんな感じのログが出ていました。

bindしようとしたけど、すでにそのアドレスが使われていた。
もしかしてすでに別のmysqlが3306のポートを使っていませんか?みたいなことが書かれているっぽいです(英語力皆無)

実際にポート3306が使用されているか確認するために
$ sudo lsof -i:3306
を実行。

COMMAND   PID   USER   FD   TYPE            DEVICE SIZE/OFF NODE NAME
mysqld  63931 _mysql   49u  IPv6 0xbc925f70d094c8d      0t0  TCP *:mysql (LISTEN)

確かに存在したため、このプロセスを下記のコマンドで落とす
利用されていた場合そのプロセスをkillする
$ sudo kill -9 <PID>

自分の場合はhomebrewでmysqlを入れていたので
下記のコマンドで自動起動ごとmysqlを停止させました。
自動で再起動になっている場合はそれも止める
$ brew services stop mysql

最後にもう一度
$ sudo lsof -i:3306
を実行して何も表示されなければポート3306を利用されていないということなので大丈夫だと思います。

改めて実行

スクリーンショット 2024-03-19 0.43.38.png

できました。

まとめ

自分自身、以前Railsなどで利用した際に入れたmysqlがずっと起動しっぱなしなことが今回のエラーの原因でした。

参考になれば幸いです。

参考リンク

1
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
1
0