phpMyAdmin 更新時によく出るエラーと対処法【XAMPP環境向け】

XAMPP に同梱されている phpMyAdmin を使っていると、アップグレードや設定変更のタイミングで「クッキー暗号化キーが必要です」「環境保管領域が未設定です」「controluser での接続に失敗しました」といった警告やエラーが表示されることがあります。

これらは致命的な不具合ではないものの、放置するとセキュリティ面や機能面で制限がかかり、操作に支障が出るケースもあります。

本記事では、代表的な警告・エラーの 「症状」と「原因」 を分かりやすく整理しました。ご自身の環境で同じ表示が出たときに、原因をすぐに切り分けられる参考にしてください。

クッキー暗号化キー不足

エラーメッセージ:「クッキーの暗号化用の有効なキーが必要です(blowfish_secret)」。

症状、原因

症状:「警告: クッキーの暗号化のために、構成ファイルに有効なキーが必要です。一時的なキーが自動的に作成されました。」

原因:config.inc.php の $cfg[‘blowfish_secret’] が未設定または短すぎる(十分な強度がない)。

解決ステップ

  1. Apache を停止(XAMPP Control Panel)。
  2. C:\xampp\phpMyAdmin\config.inc.php を開く。無ければ config.sample.inc.php を config.inc.php にコピー。
  3. 32文字ジャストのランダム文字列を設定。 $cfg[‘blowfish_secret’] = ‘Ab9f!2GhJkLmN7pQrStUvWxYz1234567’;一般的な記号(!@#$%^&*_-+= など)は問題なく使えます。
  4. Apache 起動 → 警告が消えているか確認。

参考設定(最低限)

$cfg['Servers'][1]['auth_type'] = 'cookie';
$cfg['blowfish_secret'] = '(32〜64文字のランダム文字列)';
$cfg['TempDir'] = 'tmp';
PHP

不具合が起きたときの戻し方(ロールバック)

設定を戻すだけでOK。blowfish_secret を空に戻すと警告が再発します。初期値は”xampp”になっています。

phpMyAdmin のアップデート

エラーメッセージ:「新しい phpMyAdmin が提供されています(x.x.x)」アップグレード手順。

症状、原因

  • 症状:「phpMyAdmin の新しいバージョンが提供されています。最新バージョンは 5.2.2 で、2025-01-21 にリリースされています。」
  • 原因:現在の phpMyAdmin が古く、最新リリース(例:5.2.2)より前のバージョンを使用している。

注意点(互換性)

  • XAMPP の PHP バージョンが phpMyAdmin の要件を満たす必要あり。古い XAMPP だと最新版が動かないことがあります。
  • もし動かない場合は
    • A) XAMPP 本体を更新
    • B) 1つ前の phpMyAdmin を使う(要件内)

解決ステップ(フォルダ差し替え方式)

  1. Apache、mysql 停止。
  2. バックアップ:C:\xampp\phpMyAdmin を phpMyAdmin_backup。
  3. 最新のバージョンをダウンロード
  4. 公式 zip を解凍 → フォルダ名を phpMyAdmin にリネーム。
  5. 旧 C:\xampp\phpMyAdmin を phpMyAdmin_old にリネーム。
  6. 新フォルダ phpMyAdmin を C:\xampp\ 直下へ配置。
  7. 旧フォルダから config.inc.php を新フォルダ直下へコピー(無ければ sample を元に新規作成)。
  8. (推奨)tmp フォルダ & $cfg[‘TempDir’] を設定。
  9. Apache 起動 → http://localhost/phpmyadmin/ でバージョン確認。

不具合が起きたときの戻し方(ロールバック)

動作不良なら Apache、mysql 停止 → 新フォルダを削除 → phpMyAdmin_old を元名に戻す。

環境保管領域エラー

エラーメッセージ:phpMyAdmin 環境保管領域が完全に設定されていないため、いくつかの拡張機能が無効になっています。理由についてはこちらをご覧ください。代わりにデータベースの操作タブを使って設定することもできます。

症状、原因

  • 症状:「phpMyAdmin 環境保管領域が完全に設定されていないため、いくつかの拡張機能が無効になっています。」
  • 原因:config.inc.phpが存在しない。(存在しない場合は作成して配置する)
  • 原因:phpmyadmin データベースと関連テーブル、制御ユーザー(controluser)が作成されていない。

何ができるようになるか

  • ブックマーククエリ、Recent/お気に入り、リレーションビュー、PDF 設計、中央設定保存などの拡張機能。

解決ステップ(SQL スクリプトで一気に用意)

  1. Apache/MySQL 起動(MySQL は XAMPP のもの)。
  2. http://localhost/phpmyadmin/ → ルートでログイン。
  3. phpMyAdmin ディレクトリの sql/create_tables.sql をインポート(または貼り付け実行)。
    これで phpmyadmin データベースと必要テーブルが作成されます。
  4. 再読み込み → 警告が消え、拡張機能が有効化。

代替(操作タブから)

  • 任意のDBを開き「操作」タブに “ストレージを作成” のガイドが出る場合は、それに従って自動作成も可能。

不具合が起きたときの戻し方(ロールバック)

  • phpmyadmin DB を削除。

認証プラグイン未対応エラー

エラーメッセージ:mysqli::real_connect(): (HY000/2054): The server requested authentication method unknown to the client [auth_gssapi_client]

症状、原因

  • 症状:phpMyAdmin からログインしようとしても接続に失敗し、認証方式に関するエラーが表示される。
  • 原因:MySQL ユーザーが auth_gssapi_client など、PHP/mysqli が対応していない認証プラグインを利用している。
  • 原因:MySQL/MariaDB 側ユーザーの認証プラグインが auth_gssapi_client(Kerberos 連携等)に設定されており、XAMPP の PHP(mysqli/mysqlnd)が未対応。
  • 原因:似た系統のエラーに caching_sha2_password・sha256_password などのプラグイン不一致もあります。

解決戦略(どちらか)

A. クライアント(PHP/mysqli)を対応版にする

  • 実務では難しい/手間が大きい(XAMPP の更新やビルドが必要)。

B. DBユーザーの認証プラグインを一般的なものへ変更(現実解)

  • mysql_native_password や caching_sha2_password へ切り替える(環境のPHP対応に合わせる)。

解決ステップ(ユーザーのプラグイン変更)

  1. MySQL に CLI など別クライアントで接続(root 権限)。
  2. 対象ユーザーを確認: SELECT user, host, plugin FROM mysql.user;
  3. 変更(例:mysql_native_password に変更するケース
  4. ALTER USER ‘your_user’@’localhost’ IDENTIFIED WITH mysql_native_password BY ‘強いパスワード’;
  5. ALTER USER ‘your_user’@’localhost’ IDENTIFIED VIA mysql_native_password USING PASSWORD(‘強いパスワード’);
  6. config.inc.php の接続ユーザー・パスを一致させる。
  7. $cfg[‘Servers’][$i][‘user’] = ‘your_user’; // 通常は空のままでもOK
  8. $cfg[‘Servers’][$i][‘password’] = ‘your_pass’; // 同上
  9. ※通常は $cfg[‘Servers’][$i][‘auth_type’] = ‘cookie’; で、ログイン画面で都度入力します。
  10. Apache 再起動 → 接続エラーが解消するか確認。

不具合が起きたときの戻し方(ロールバック)

  • 変更前のプラグインに戻す: ALTER USER ‘your_user’@’localhost’ IDENTIFIED WITH auth_gssapi_client BY ‘元のパス’; FLUSH PRIVILEGES;

pma ユーザー認証失敗

エラーメッセージ:mysqli::real_connect(): (HY000/1045): Access denied for user ‘pma’@’localhost’ (using password: NO)

症状、原因

  • 症状
    phpMyAdmin 画面に警告が出て、一部の拡張機能(履歴・ブックマーク・リレーションなど)が使えない。
  • 原因
    管理用ユーザー(controluser)pma がDBに存在しない、または config.inc.php にパスワード未設定で、phpMyAdmin が「パスワード無し」で接続を試みて拒否されている。

解決ステップ

  1. 管理用ユーザー(pma) を作成
  2. (任意名可): CREATE USER ‘pma’@’localhost’ IDENTIFIED BY ‘強いパスワード’;
  3. GRANT SELECT, INSERT, UPDATE, DELETE ON `phpmyadmin`.* TO ‘pma’@’localhost’;
  4. — 必要に応じて追加権限(たとえば relation 機能で mysql.* 参照等)を付与 FLUSH PRIVILEGES;
  5. config.inc.php に制御ユーザー設定(controluser)を記述: $i = 1; // 既に1なら流用 $cfg[‘Servers’][$i][‘controluser’] = ‘pma’; $cfg[‘Servers’][$i][‘controlpass’] = ‘強いパスワード’; // (必要に応じて)$cfg[‘Servers’][$i][‘pmadb’] = ‘phpmyadmin’;
CREATE USER 'pma'@'localhost' IDENTIFIED BY '強いパスワード';
GRANT SELECT, INSERT, UPDATE, DELETE ON phpmyadmin.* TO 'pma'@'localhost';
FLUSH PRIVILEGES;
SQL

「controluser での接続に失敗」

※下記のエラーと重複で出てくるので、前に紹介した、内容でほぼ改善できるかと思います。

エラーメッセージ:mysqli::real_connect(): (HY000/1045): Access denied for user ‘pma’@’localhost’ (using password: NO)

症状、原因

  • 症状:「設定ファイルに定義されている管理ユーザ(controluser)での接続に失敗しました。」
  • 原因:config.inc.php に設定された controluser/controlpass が、DB 側に存在しない or 認証方式が不一致。

原因

  • config.inc.php の controluser / controlpass がDB側と不一致、もしくはユーザー未作成・権限不足。
  • MySQL 側の認証プラグイン不一致(④と同根)。

解決ステップ

  1. config.inc.php の該当行を確認: $cfg[‘Servers’][1][‘controluser’] = ‘pma’; $cfg[‘Servers’][1][‘controlpass’] = ‘強いパスワード’;
  2. DB に pma(または指定ユーザー)が存在するか確認: SELECT user, host, plugin FROM mysql.user WHERE user=’pma’;
  3. 無ければ作成・権限付与(③参照): CREATE USER ‘pma’@’localhost’ IDENTIFIED BY ‘強いパスワード’; GRANT SELECT, INSERT, UPDATE, DELETE ON `phpmyadmin`.* TO ‘pma’@’localhost’; FLUSH PRIVILEGES;
  4. 認証プラグインが不一致なら(④の要領で)mysql_native_password などへ変更。
  5. Apache 再起動 → エラー消失を確認。

不具合が起きたときの戻し方(ロールバック)

  • controluser 行をコメントアウトして機能を無効化(拡張機能は使えなくなります)。

付録:config.inc.php のサンプル(XAMPP 向け)

<?php
/*
 * This is needed for cookie based authentication to encrypt password in
 * cookie
 */
$cfg['blowfish_secret'] = ''; /* YOU SHOULD CHANGE THIS FOR A MORE SECURE COOKIE AUTH! */

/*
 * Servers configuration
 */
$i = 0;

/*
 * First server
 */
$i++;

/* Authentication type and info */
$cfg['Servers'][$i]['auth_type'] = 'cookie';
$cfg['Servers'][$i]['user'] = 'username';→ここにユーザー名
$cfg['Servers'][$i]['password'] = 'password';→ここにパスワード
$cfg['Servers'][$i]['extension'] = 'mysqli';
$cfg['Servers'][$i]['AllowNoPassword'] = true;
$cfg['Lang'] = '';

/* Bind to the localhost ipv4 address and tcp */
$cfg['Servers'][$i]['host'] = '127.0.0.1';
$cfg['Servers'][$i]['connect_type'] = 'tcp';

/* User for advanced features */
$cfg['Servers'][$i]['controluser'] = 'pma';ここにユーザー名
$cfg['Servers'][$i]['controlpass'] = '';ここにパスワード

/* Advanced phpMyAdmin features */
$cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
$cfg['Servers'][$i]['bookmarktable'] = 'pma__bookmark';
$cfg['Servers'][$i]['relation'] = 'pma__relation';
$cfg['Servers'][$i]['table_info'] = 'pma__table_info';
$cfg['Servers'][$i]['table_coords'] = 'pma__table_coords';
$cfg['Servers'][$i]['pdf_pages'] = 'pma__pdf_pages';
$cfg['Servers'][$i]['column_info'] = 'pma__column_info';
$cfg['Servers'][$i]['history'] = 'pma__history';
$cfg['Servers'][$i]['designer_coords'] = 'pma__designer_coords';
$cfg['Servers'][$i]['tracking'] = 'pma__tracking';
$cfg['Servers'][$i]['userconfig'] = 'pma__userconfig';
$cfg['Servers'][$i]['recent'] = 'pma__recent';
$cfg['Servers'][$i]['table_uiprefs'] = 'pma__table_uiprefs';
$cfg['Servers'][$i]['users'] = 'pma__users';
$cfg['Servers'][$i]['usergroups'] = 'pma__usergroups';
$cfg['Servers'][$i]['navigationhiding'] = 'pma__navigationhiding';
$cfg['Servers'][$i]['savedsearches'] = 'pma__savedsearches';
$cfg['Servers'][$i]['central_columns'] = 'pma__central_columns';
$cfg['Servers'][$i]['designer_settings'] = 'pma__designer_settings';
$cfg['Servers'][$i]['export_templates'] = 'pma__export_templates';
$cfg['Servers'][$i]['favorite'] = 'pma__favorite';

/*
 * End of servers configuration
 */

?>
PHP

まとめ

今回紹介したような phpMyAdmin の警告やエラーは、どれも珍しいものではなく、多くの開発環境で一度は目にするものです。

大切なのは「なぜこの警告が出ているのか」を理解し、慌てずに設定やバージョンを確認して対応することです。

もし同じようなメッセージが出たときは、「これは自分の環境でよくある調整ポイントなんだ」と落ち着いて原因を切り分けてみてください。

その積み重ねが、XAMPP や phpMyAdmin をより安心して使いこなすことにつながります。

あなたの環境に合った正しい対処を選びながら、快適な開発環境を整えていきましょう。

タイトルとURLをコピーしました