JA
/
EN

XAMPPのrootパスワードをrootに設定する方法|MAMPと統一

  • 開発環境
  • Windows

Mac版MAMPのMySQLは、既定のユーザー名とパスワードがどちらもrootです。Windows版XAMPPのMariaDBでは、検証環境のroot@localhostにパスワードが設定されていません。そのままでは、MacとWindowsで同じPHPアプリや設定ファイルを使う際に接続情報を切り替える必要があります。

本記事ではローカル開発環境の接続情報を揃えるため、XAMPPのroot@localhostへパスワードrootを設定し、phpMyAdminのconfig.inc.phpも更新します。

この記事の前提: rootrootはMAMPの既定値に合わせるためのローカル開発用設定です。推測しやすいパスワードなので、インターネットへ公開する環境、共有PC、第三者が接続できるMariaDBでは使用しないでください。

検証項目内容
Windows環境XAMPP 8.2.12、MariaDB 10.4.32、phpMyAdmin 5.2.1
揃える環境Mac版MAMP
ユーザー名root
パスワードroot
用途ローカル開発環境のみ

XAMPPが未導入の場合は、先に「Windows版XAMPPのインストール方法」を実施してください。config.inc.phpの編集には「VSCodeのインストール方法」などのテキストエディタを使用できます。

 

MAMPとXAMPPの接続情報を揃える理由

MAMP公式ドキュメントでは、Mac版MAMPの既定のMySQL接続情報が次のように案内されています。

項目MAMPの既定値
ユーザー名root
パスワードroot

Windows側のXAMPPも同じ値にすると、ローカル環境間でPHPアプリを移す際に、ユーザー名とパスワードを共通化できます。ただし、MAMPとXAMPPでは既定ポートやソケットなどが異なる場合があるため、接続情報のすべてが同一になるわけではありません。

 

設定前の注意点

パスワードを変更すると、古い接続情報を使用しているPHPアプリやデータベース管理ツールから接続できなくなります。作業前に次を確認します。

  • 必要なデータベースをバックアップする
  • MariaDBとphpMyAdminをlocalhostからだけ利用する
  • rootを本番アプリの接続ユーザーとして使用しない
  • WindowsファイアウォールやMariaDBで外部接続を許可しない
  • 既存アプリがrootの空パスワードを使っていないか確認する

XAMPPはローカル開発向けのパッケージです。Apache FriendsのWindows向けFAQでも、本番運用向けではないことと、phpMyAdminの外部公開には大きなリスクがあることが案内されています。

 

現在のrootアカウントを確認する

1. XAMPP Control PanelでApacheとMySQLを起動します。

2. ブラウザでhttp://localhost/phpmyadmin/を開きます。

3. トップページの「データベースサーバ」欄を確認します。

本記事の検証環境は次の構成です。

項目
サーバ127.0.0.1 via TCP/IP
サーバの種類MariaDB
サーバのバージョン10.4.32-MariaDB
現在のユーザーroot@localhost
PHPのバージョン8.2.12

4. 上部メニューの「ユーザアカウント」を開きます。

5. root@localhostの「パスワード」列を確認します。

MariaDBではユーザー名と接続元ホストの組み合わせがアカウントです。本記事で変更するroot@localhostと、root@127.0.0.1root@::1は別のアカウントとして扱われます。

 

rootパスワードをrootへ変更する

1. root@localhostの「権限を編集」をクリックします。

2. 権限編集画面で「Change password」タブを開きます。

3. 「パスワード:」を選択します。

4. 「パスワード」と「再入力」の両方へrootと入力します。

phpMyAdminの強度表示では弱いパスワードと判定されます。これは想定どおりであり、MAMPの既定値との互換性を優先したローカル限定の設定です。

5. パスワードハッシュは、アプリから別の方式を指定されていない限り検証環境の既定値から変更しません。

6. 「実行」をクリックします。

7. root@localhostのパスワードが変更されたというメッセージを確認します。

 

Access deniedが表示される理由

パスワード変更直後に、次のエラーが表示される場合があります。

mysqli::real_connect(): (HY000/1045): Access denied for user 'root'@'localhost' (using password: NO)

XAMPPのphpMyAdminがconfig認証で空のパスワードを使っていた場合、MariaDB側の新しいパスワードrootと一致しなくなるためです。パスワード変更自体が成功している場合は、次の手順でphpMyAdmin側の接続情報を更新します。

 

phpMyAdminのconfig.inc.phpを更新する

1. エクスプローラーでC:​\xampp\phpMyAdminを開きます。

2. 編集前にconfig.inc.phpのバックアップを作成します。

3. config.inc.phpをテキストエディタで開きます。

4. 認証設定を探します。行番号は環境によって異なります。

変更前の例は次のとおりです。

$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = '';
$cfg['Servers'][$i]['AllowNoPassword'] = true;

5. パスワードをrootへ変更し、パスワードなしの接続を無効にします。

$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = 'root';
$cfg['Servers'][$i]['AllowNoPassword'] = false;

6. ファイルを保存します。

config認証ではパスワードが設定ファイルへ平文で保存され、自動ログインが行われます。この方式はMAMPとXAMPPのローカル開発環境を同じ資格情報で扱う今回の目的に合わせたものです。共有PCや外部公開環境では使用せず、より安全な認証が必要な場合はphpMyAdmin公式の認証モードを確認してcookie認証を検討してください。

 

設定後の動作を確認する

1. ブラウザでhttp://localhost/phpmyadmin/を再読み込みします。

2. Access deniedエラーが消えることを確認します。

3. データベース一覧とroot@localhostの権限画面を開けることを確認します。

続いて、同じ資格情報を使用するローカルアプリから接続できるか確認します。

ユーザー名: root
パスワード: root

接続できない場合は、ホスト名、ポート番号、対象となるrootアカウントのホスト部分も確認してください。MAMPは構成によって8889、XAMPPは一般的に3306を使うため、パスワードを揃えてもポート番号は別設定になる場合があります。

 

参考資料

 

まとめ

項目設定内容
目的MacのMAMPとWindowsのXAMPPでローカルDB資格情報を統一
MariaDBアカウントroot@localhost
設定パスワードroot
phpMyAdmin認証config認証
config.inc.phpパスワードをrootAllowNoPasswordfalseに変更
使用範囲localhost限定の開発環境

この設定により、MAMPとXAMPPでrootrootという共通の接続情報を使用できます。ただし、これは移植しやすさを優先したローカル開発用の設定です。外部公開環境では使用せず、用途ごとの専用ユーザーと強力なパスワードを設定してください。

記事を共有する