ポータブル版XAMPPが起動しない時の対処法

  1. 「setup_xampp.bat」をクリック
  2. 黒い画面が表示されて、セットアップが始まります。
  3. 終了すると、何かキーを押すように指示が出るので、適当なキーを押すと黒い画面が閉じます。
  4. ApacheのStartボタンを押す

これで解決するはずです。

setup_xampp.bat

実際に表示されたエラー

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

XAMPPが起動できずに表示されたエラー

経緯

ポータブル版のXAMPP(xampp-portable-windows-x64-7.4.33-0-VC15.zip)をダウンロード後、初めてXAMPPを起動し、ApacheのStartボタンを押すと上記のようなエラーが表示されました。

XAMPPが起動しないときの原因として挙げられている対処法は全て試しましたが、これらでは解決しませんでした。

  • XAMPPが二重起動されている
  • 他のソフト(例:skype)でも同じポート80を使っている
  • 管理者権限で実行されていない
  • Visual Studio 2019 Microsoft Visual C++ 再頒布可能パッケージがインストールされていない
  • ウィルス対策ソフトがジャマしている

※経験上、ポートは変えない方が良いです(phpMyAdminが起動しなくなったり、色々なところに影響が出て、書き換えの手間が増える)

XAMPP壊れすぎ問題

元々、別バージョンのXAMPPを使ってWordPressのカスタマイズを行っていました。

ところが今日の朝起きて、昨日の続きをしようとXAMPPを起動したところ、WordPressにアクセスできず・・・

データベースを選択できません

phpMyadminからDBのWP_usersを確認してみると、WordPressフォルダの中のwp-config.phpに書かれている内容と違う。

管理者権限を持つユーザー情報が消えた・・・?

仕方ないので、新しく管理者権限を持つユーザーを追加しようと、phpMyadminの権限タブをクリックするとエラー。

Got error 176 “Read page with wrong checksum” from storage engine Aria

おそらくDBが壊れたのだろう。

phpMyadminから全てのテーブルに修復を実施。

再度、WordPressにアクセスすると、エラー内容が少し変わったものの結局は起動できず。

データベース確立エラー

今度は新しいWordPressをダウンロードしてきて、インストールを試みるも、同じ「error 176」で新しいユーザーを作成できません。

ということで、XAMPPの再インストールというか、新しく別にXAMPPを追加しようとしたところ、今回のハマりとなりました。

まぁーよくMySQLが壊れるんです。

先日もMySQLが起動できなくなったばかりで、そのときはApacheとMySQLをSTOPさせないままWindowsを終了させてしまったという心当たりはあったのですが・・・今回の原因は本当に謎。

直すより新しいポータブル版XAMPPをダウンロードしてくる方が手っ取り早いので、今、私のデスクトップには計4個のXAMPPが鎮座しています。

追記(またエラーで立ち上がらず)

またエラーで起動できず。

今度はMySQLが起動できない。

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

mysql_error.logを見てみると、

2023-06-30 10:21:05 0 [Note] InnoDB: Mutexes and rw_locks use Windows interlocked functions
2023-06-30 10:21:05 0 [Note] InnoDB: Uses event mutexes
2023-06-30 10:21:05 0 [Note] InnoDB: Compressed tables use zlib 1.2.12
2023-06-30 10:21:05 0 [Note] InnoDB: Number of pools: 1
2023-06-30 10:21:05 0 [Note] InnoDB: Using SSE2 crc32 instructions
2023-06-30 10:21:05 0 [Note] InnoDB: Initializing buffer pool, total size = 16M, instances = 1, chunk size = 16M
2023-06-30 10:21:05 0 [Note] InnoDB: Completed initialization of buffer pool
2023-06-30 10:21:05 0 [Note] InnoDB: Starting crash recovery from checkpoint LSN=300288
2023-06-30 10:21:06 0 [Note] InnoDB: 128 out of 128 rollback segments are active.
2023-06-30 10:21:06 0 [Note] InnoDB: Removed temporary tablespace data file: “ibtmp1”
2023-06-30 10:21:06 0 [Note] InnoDB: Creating shared tablespace for temporary tables
2023-06-30 10:21:06 0 [Note] InnoDB: Setting file ‘\Users\kaz\Desktop\xampp74-2\mysql\data\ibtmp1’ size to 12 MB. Physically writing the file full; Please wait …
2023-06-30 10:21:06 0 [Note] InnoDB: File ‘\Users\kaz\Desktop\xampp74-2\mysql\data\ibtmp1’ size is now 12 MB.
2023-06-30 10:21:06 0 [Note] InnoDB: Waiting for purge to start
2023-06-30 10:21:06 0 [Note] InnoDB: 10.4.27 started; log sequence number 300297; transaction id 170
2023-06-30 10:21:06 0 [Note] InnoDB: Loading buffer pool(s) from C:\Users\kaz\Desktop\xampp74-2\mysql\data\ib_buffer_pool
2023-06-30 10:21:06 0 [Note] Plugin ‘FEEDBACK’ is disabled.
2023-06-30 10:21:06 0 [Note] InnoDB: Buffer pool(s) load completed at 230630 10:21:06
2023-06-30 10:21:06 0 [Note] Server socket created on IP: ‘::’.
2023-06-30 12:04:28 0 [Note] mysqld.exe: Aria engine: starting recovery
recovered pages: 0% 14% 56% 82% 95% 100% (0.0 seconds); tables to flush: 2 1 0
(0.1 seconds);
2023-06-30 12:04:28 0 [Note] mysqld.exe: Aria engine: recovery done

良くわからないのでchatGPTに食わせてみたところ、「MySQLサーバーが正常に起動し、InnoDBエンジンによる回復が行われていることがわかります。したがって、MySQLサーバー自体にはエラーはないようです」との事。

XAMPPのMySQLが原因と分かったので、修復した結果、無事起動するようになりました。

XAMPPのMySQL修復手順

  1. [xampp]-[mysql]の中にある[data]フォルダをコピーしてデスクトップに退避
  2. [xampp]-[mysql]-[data]の中身を全て削除
  3. [xampp]-[backup]の中身を[data]フォルダ内に全てコピペ
  4. 一旦、XAMPPを起動し、MySQLがStartできるかどうか確認
  5. デスクトップに退避した[data]フォルダの中から必要なデータベースの名前が付いたフォルダだけを[xampp]-[backup]-[data]フォルダの中にコピペ
  6. 加えて、デスクトップに退避した[data]フォルダの中から「ibdata1(データファイル)」というファイルをコピーして、[xampp]-[backup]-[data]フォルダの中に上書き保存
  7. XAMPPを再起動

WordPress用ユーザーを修復

さて、MySQLは無事に起動したものの、WordPressにアクセスすると「データベースを選択できません」と表示されます。

とりあえずphpMyAdminを起動し、権限タブをクリックしてみると、今度はスムーズに権限を見ることができました。

やはり、管理者が消えています。

WordPressのwp-config.phpに書かれている情報通りに権限から同じユーザーを作成。

ようやく、WordPressにアクセスすることができました。

さらに追記

WordPressの管理者が消えてて、ユーザーを作ろうとすると「同じユーザ名のアカウントが既に存在していますが、別のホスト名が設定している可能性があります」と表示される場合があります。

以下のエラーが表示が出た時は、phpMyAdmin直下の「mysql」という名前の「db」というテーブルを修復してください。

#1034 – 表 ‘db’ の索引ファイル(key file)の内容が不正です。修復を試行してください。

※WordPressのデータベースではありません。