0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

XAMPP Windows 8.2.12:Apache / MySQL / phpMyAdmin の“よくあるエラー”と即効解決ガイド 🚑

Posted at

XAMPP(Apache + MariaDB/MySQL + PHP + phpMyAdmin)はローカル開発の定番ですが、起動できない / つながらない系のトラブルは誰でもハマります。
本記事は Windows + XAMPP 8.2.12(PHP 8.2.12) を前提に、再現率の高いエラー原因 → 確認 → 解決のワンセットでまとめました。
安全のためのバックアップ/権限/ポート管理も網羅しています。

  • 動作想定:Windows 10/11 + XAMPP 8.2.12(Apache 2.4系 / MariaDB 10.x / PHP 8.2)
  • 記事のゴール:数分で原因に辿り着き、最短で直す

[TOC]


🧰 まず最初に:万能チェックリスト

:: ① ポート占有
netstat -ano | findstr :80
netstat -ano | findstr :443
netstat -ano | findstr :3306
tasklist /FI "PID eq <PID>"

:: ② サービスの存在/状態
sc query type= service state= all | findstr /I "apache mysql"

:: ③ Apache設定構文チェック(管理者で)
cd C:\xampp\apache\bin
httpd.exe -t

:: ④ MySQL接続チェック
cd C:\xampp\mysql\bin
mysql -u root -p -e "SELECT VERSION();"

:: ⑤ ログを即開く
notepad C:\xampp\apache\logs\error.log
notepad C:\xampp\mysql\data\mysql_error.log

⚠️ 必ず XAMPP Control Panel を「管理者として実行」
💾 重要データは C:\xampp\mysql\data を丸ごとバックアップ


A. Apache 起動エラー 🛑

メッセージ/症状 主原因 確認 解決
Apache shutdown unexpectedly. 直後に停止 80 / 443 のポート競合(IIS/Skype/Teams/VMware/他Webサーバ) `netstat -ano findstr :80 :443` 競合プロセスを停止(taskkill /PID <pid> /F)。必須なら ポート変更httpd.confListen 8080 / ServerName localhost:8080httpd-ssl.confListen 4433。XAMPPの Service and Port Settings も合わせる。
(OS 10048) Only one usage… Listen の重複/衝突 httpd.exe -t Listen の二重定義を削除。
AH00558: Could not reliably determine the server's FQDN ServerName 未設定 httpd.conf ServerName localhost:80(ポート変更時は合わせる)。
The requested URL /phpmyadmin/ was not found Alias 無効/パス変更 conf\extra\httpd-xampp.conf Alias /phpmyadmin "C:/xampp/phpMyAdmin/" を有効にし再起動。
Forbidden 403 /phpmyadmin/ ディレクトリ制限(リモート拒否) httpd-xampp.conf <Directory "C:/xampp/phpMyAdmin">Require local を必要に応じて Require ip 192.168.0.0/16 などへ(※外部公開は非推奨)。
VCRUNTIME140.dll / MSVCP140.dll が見つかりません VC++ ランタイム未導入 MS VC++ 再頒布パッケージ(x86/x64)をインストール。
1060: 指定サービスは存在しません (sc query apache) サービス未登録 sc query 管理者で cd C:\xampp\apache\bin && httpd.exe -k install。以後 net start Apache2.4 が使える。

💡 WordPress利用時にポート変更したら:
wp-config.phpWP_HOME / WP_SITEURL を 8080 等へ合わせる。


B. MySQL(MariaDB)起動/接続エラー 🐬

メッセージ/症状 主原因 確認 解決
MySQL shutdown unexpectedly. InnoDB破損/設定ミス/ポート競合/権限不足 mysql_error.log / netstat :3306 ① 管理者で起動 ② 競合なら my.ini[mysqld] port=3307 に変更(phpMyAdmin等も更新) ③ InnoDBエラー時は バックアップ後 ib_logfile0/1 削除、必要に応じ innodb_force_recovery=1..6 を一時追加 → 復旧後に削除。
The server quit without updating PID file my.ini 誤り / datadir不一致 ログのみ datadir のパス/権限/文字化けを修正。改行(CRLF)や全角パスにも注意。
Port 3306 in use by … ポート競合 `netstat -ano findstr :3306` 競合停止 or port=3307 へ。config.inc.php のポートも変更。
ERROR 2002/2003: 接続できない サーバ停止/ポート違い/ファイアウォール LISTEN有無 MySQL起動、ポート統一、FWで 3306 を許可。
ERROR 1045 (Access denied for user 'root'@'localhost') 認証失敗/権限不備 mysql -u root -p 忘れたら 安全モード--skip-grant-tables で起動 → ALTER USER 'root'@'localhost' IDENTIFIED BY '新PW'; FLUSH PRIVILEGES;
HY000/1130: Host 'localhost' is not allowed… ユーザー@ホスト 未定義/拒否 SELECT user,host FROM mysql.user; 例:CREATE USER 'controluser'@'localhost' IDENTIFIED BY 'PW'; GRANT ALL PRIVILEGES ON *.* TO 'controluser'@'localhost' WITH GRANT OPTION; FLUSH PRIVILEGES;
1060: 指定サービスは存在しません (sc query mysql) サービス未登録 sc query cd C:\xampp\mysql\bin && mysqld.exe --install MySQL --defaults-file="C:\xampp\mysql\bin\my.ini" && net start MySQL

🛟 破損時の“安全復旧”テンプレ(最終手段)

  1. C:\xampp\mysql\datadata_old にリネーム → 新規 data 作成。
  2. C:\xampp\mysql\backup → 新 data へコピー。
  3. data_old から 各DBフォルダmysql / performance_schema / phpmyadmin 以外)を新 data へ戻す。
  4. 必要なら ibdata1 も戻す(※整合性要注意)。
  5. 起動し、ダンプ取得後に再構築を検討。

C. phpMyAdmin 接続エラー 🧩

メッセージ 主原因 確認 解決
mysqli::real_connect(): (HY000/2002) No connection could be made… MySQL未起動/ポート不一致 LISTEN/ポート MySQL起動、config.inc.php のポートを実際に合わせる(例 3307)。
#1045 Access denied for user 'root'@'localhost' PW不一致/権限 mysql -u root -p root PWをXAMPP側と一致、忘れたら安全モードでリセット(上記B参照)。
HY000/1130 Host 'localhost' is not allowed… controluser@localhost 無い/権限不足 SELECT user,host FROM mysql.user; controluser を作成し config.inc.phpcontroluser/controlpass と一致させる。動作確認だけなら一時的に user=root に。
The requested URL /phpmyadmin/ was not found Alias 無効/パス変更 httpd-xampp.conf Alias /phpmyadmin "C:/xampp/phpMyAdmin/" を有効化。
Forbidden 403 ディレクトリ制限 httpd-xampp.conf ローカルは Require local のまま。LANアクセスが必要なら Require ip 192.168.0.0/16 などを追加(公開は非推奨)。
Blowfish secret の警告(設定が必要) 暗号化キー未設定 config.inc.php $cfg['blowfish_secret'] = '32文字程度のランダム文字列'; を追記。
Call to undefined function mysqli PHP拡張未ロード phpinfo() / php_error_log php.iniextension=mysqli を有効化、Apache再起動。
Unknown database 'xxx' DB未作成 CREATE DATABASE xxx; を作成し、config.inc.php または接続先を修正。

config.inc.php の最小例(ローカル & cookie認証)

<?php
$i = 0;
$i++;
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['port'] = '3306'; // 変更時は実ポートに
$cfg['Servers'][$i]['auth_type'] = 'cookie';
$cfg['blowfish_secret'] = 'put-your-32+chars-random-secret-here';

🔒 セキュリティTipauth_type = 'cookie' を推奨(config はPWをファイルに平文保存するため避ける)。


🔎 すぐ使える原因切り分けフロー(超短縮)

  1. LISTENしてる?netstat :80 :443 :3306

    • してない:起動/権限/設定/破損
    • してる:ユーザー/ポート/URL不一致 を疑う
  2. Apachehttpd.exe -t / error.log

  3. MySQLmysql_error.log / mysql -u root -p で入れるか

  4. phpMyAdminconfig.inc.phphost/port/auth_type/user を実態と合わせる

  5. データ触る前に バックアップ


🛡️ 予防のためのベストプラクティス(運用の型)

  • XAMPPは常に「管理者として実行」
  • 定期バックアップC:\xampp\mysql\data + mysqldump(自動化推奨)
  • インストール前にポート確認80/443/3306 が空いてるか
  • 最新版の適用:バグ修正/脆弱性対応(Apache Friends 公式)
  • 強力な root PW + phpMyAdminはローカルのみRequire local
  • ログ監視apache/error.logmysql_error.log を定期チェック
  • ✅ 規模が増えるなら Docker化 でプロセス/ポートを分離し再現性UP

🧾 付録:設定変更時に直す場所まとめ

  • Apacheポートhttpd.confListen/ServerName)、httpd-ssl.confListen 443
    + XAMPP「Service and Port Settings」
  • MySQLポートmy.ini[mysqld] port=)+ C:\xampp\phpMyAdmin\config.inc.phpport
  • phpMyAdminユーザーconfig.inc.phpuser/password/controluser/controlpass
    ↔ MySQL側の ユーザー@ホストmysql.user で一致させる

🏁 結論

XAMPP 8.2.12 での 起動×接続トラブルは、
①ポート②権限(管理者/UAC)③設定(conf/my.ini/config.inc.php)④ログ の順で 機械的に潰すと最短で直せます。
本記事の表と手順を手元のチートシートとして活用し、安定したローカル環境を運用してください ✨


📚 参考リンク

  • Apache Friends(XAMPP 公式)
  • XAMPP Community Forum
  • Stack Overflow(個別エラー時の検索キーワード例:"Apache shutdown unexpectedly", "HY000/1130", "The server quit without updating PID file"
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?