ブログ

BLOG

CATEGORY

XAMPP、Control PanelのApacheは起動するもMySQLが起動しない。

この症状に遭遇するのは、もう、かれこれ、3回目でしょうか。
パソコンが代替わりをする度に、同じ症状で毎度足止めを食らっている気がします。
どこかにメモでもしておけば、無駄足を踏むこともないだろうに、学習能力が無いのか?

10年ほど前は、スカイプのポート80が原因。

パソコンのOSはWindows7でした。
XAMPPのApacheと同じポート80を使用するソフトウェアがあると、競合して、XAMPPのMySQLが起動しないようです。
当時は、XAMPPのApacheをポート88に変えることで解決したと思います。

今回はhttpd.exeが原因?

今月新調したパソコンには、スカイプを入れていません。
では、何故、MySQLは起動しないのか。

他のソフトウェアが競合していないか調べる。

今回はWindows10です。
ポート番号の競合具合をコマンドプロンプトで調べます。

  1. コマンドプロンプトを管理者として実行で起動します。
  2. netstat -oan 上記の文字列を入力しEnter。
  3. ポートを使用するソフトウェアの一覧が出力。その中の「ローカルアドレス0.0.0:80」の行を探す。
    あれば、PIDの番号を覚えておく。
  4. Windowsのタスクバー上で右クリックをして、タスクマネージャーを起動。
  5. 詳細タブを開き、さっき覚えたPIDに該当するソフトウェアを探す。
  6. 該当するソフトウェアが、停止しても問題が無いものなら、停止する。
    httpd.exeの行で右クリックをし、タスクの終了。
    「開かれているプログラムがこのプロセスに関連付けられている場合、プログラムは終了します。保存されていないデータはすべて失われます。システムプロセスを終了すると、システムが不安定になる可能性があります。続行しますか?」と警告が出るが、無視して、プロセスの終了をクリック。
  7. XAMPPを開いていたら、Control PanelのQuitで終了してから再度起動。

MySQLのStartボタンを押すが、これでも動かず。

エラーメッセージを確認。

最初のエラー

1:26:28 [mysql] Problem detected!
1:26:28 [mysql] Port 3306 in use by "Unable to open process"!
1:26:28 [mysql] MySQL WILL NOT start without the configured ports free!
1:26:28 [mysql] You need to uninstall/disable/reconfigure the blocking application
1:26:28 [mysql] or reconfigure MySQL and the Control Panel to listen on a different port
1:26:28 [mysql] Attempting to start MySQL app...

Port 80…という文字列があるはずと探す。違う!Port3306と書いてあるじゃないか!
思い込みは怖い。
調べたら、Port3306を他のPortに変えるとMySQLは起動するらしい。

  1. XAMPPのControl PanelのMySQLと同じ並びにあるConfigボタンをクリック。
  2. プルダウンメニューが表示される。一段目の「my.ini」を選択。
  3. my.iniファイルが開く。
    22行目付近と30行目付近の2か所。port=3306を念のため#でコメントアウトして、すぐ下の行にport=3307と追記。
    こんな感じ。
    #port=3306
    port=3307

XAMPPの再起動後、MySQLのStartボタンを押すが動かず。

エラーメッセージが変わる。

1:51:23 [mysql] Error: MySQL shutdown unexpectedly.
1:51:23 [mysql] This may be due to a blocked port, missing dependencies,
1:51:23 [mysql] improper privileges, a crash, or a shutdown by another method.
1:51:23 [mysql] Press the Logs button to view error logs and check
1:51:23 [mysql] the Windows Event Viewer for more clues
1:51:23 [mysql] If you need more help, copy and post this
1:51:23 [mysql] entire log window on the forums

タスクマネージャーを確認したら、正しく終了できていなかったのか、起動中のXAMPPが4つもあった。
その4つのXAMPPに対して、右クリックのタスクの終了で強制終了。

XAMPPの再起動後、MySQLのStartボタンを押すが動かず。

最終的に、何が原因だったのか。

  1. 途方に暮れる。
  2. パソコンを再起動。
  3. 管理者として実行でXAMPPを起動。
  4. MySQLのStartボタンを押すとMySQLが起動した。

これでようやくMySQLが起動しました。

  • 最初はポートの競合。
  • 次に、複数のXAMPPが起動中だったことで、ポートがブロックされた可能性。
  • 次に、XAMPPを管理者として実行していなかった。

MySQLのConfigでPortを3306から3307に変更しましたが、3306に戻して、管理者として実行からXAMPPを起動すると、MySQLは問題なく起動しました。
Portの問題というより、最初から管理者として実行をしていなかったことが問題だったのかもしれません。

お世話になったサイト
xamppでmysqlが動いてくれない… そんなときはPortをチェック