XAMPPのMySQLやMariaDBでrootユーザーのパスワードを変更する方法

ローカル環境にWebサーバの環境を簡単に構築できるMAMPやXAMPPでデータベースを扱う際にrootユーザーのデフォルトパスワードが設定されていなかったりしますので、セキュリティのことを考えてパスワードを設定しておきたいところです。
またパスワードを変更したい場合もありますので、ここではXAMPPやMAMPといったローカル開発環境のMySQL/MariaDBでrootユーザーのパスワードを変更する方法をご紹介します。もちろん、MySQL単体でホストのPCにインストールしている場合でも大丈夫です。

 
rootユーザーのパスワードの変更方法ですが2パターンありまして、その一つとしてmysqladminコマンドを使う方法があります。
ただmysqladminコマンドでパスワードを設定をする方法では、「mysqladmin -u root password」のように手軽で簡単に設定できるのですが、ログファイルにパスワードが残ってしまいますのでセキュリティ面を考えるとオススメしません。

 
そこでもう一つの変更方法として、rootユーザーでログインしてから変更する方法をご紹介します。

 

MySQLのrootユーザーのパスワード変更

一番良いのはログインしてから変更する方法です。
おそらくローカル開発環境を構築する際にXAMPPやMAMPをインストールするとデフォルトでパスワードがrootとなっている、またはパスワードは空っぽで設定されていない状態とあります。
またホストのPCに単体でMySQLをインストールすると、インストールまでの設定でパスワードを設定するかと思います。
一度、rootユーザーでログインしてからパスワードを変更します。

 
パスワードの変更はmysql.userテーブルで管理されているユーザーの設定をUPDATE文で更新します。

UPDATE mysql.user SET password=PASSWORD('新しいパスワード') WHERE user='root';

 
UPDATE文でmysql.userテーブルに格納されているrootユーザーのパスワードに新しいパスワードをセットするという命令です。
例としてrootユーザーのパスワードを「asdfghjkl」に変更してみます。(実務ではこんな簡単なパスワードは使わないでくださいね)

設定を変更したらそれを反映させます。
MySQLを再起動しても良いですが、そんなことしなくても以下のコマンドですぐに反映できます。

FLUSH PRIVILEGES;

 
反映させたら「exit」で一度ログアウトします。

流れはこんな感じです。

XAMPPやMAMPでMySQLのrootユーザーのパスワード変更する

 
新しいパスワードでrootユーザーにログインできるか確認してみましょう。

XAMPPやMAMPでMySQLのrootユーザーの新しいパスワードの設定する

 

ここまでで無事パスワードを変更できたのですが、rootユーザーのパスワードを変更した際にもう一つ設定しておくものがあります。
データベースを構築する時にphpMyAdminを利用することもありますが、rootユーザーのパスワードを変更するとphpMyAdminでエラーメッセージが出て利用することが出来ません。

phpMyAdminのエラーメッセージ

 
原因はphpMyAdminの方でrootユーザーのパスワードの設定が変更されていないためです。
ですのでphpMyAdminの設定ファイルを編集して新しいパスワードを設定してあげます。

 

phpMyAdminの設定ファイルを編集

編集する設定ファイルはxamppフォルダの中のphpMyAdminフォルダの中の「config.inc.php」というファイルになります。

phpMyAdminの設定ファイルの場所

 
config.inc.phpをエディタで開きまして、だいたい21行目あたりに編集箇所があります。
Authentication type and infoの項目のパスワードの部分の最後のシングルクォーテーション「’」の中に新しいパスワードを入力してファイルを保存します。

config.inc.phpで認証パスワードを編集

 
新しいパスワードを設定することでphpMyAdminを利用する際に認証が通るので使えるようになります。

phpMyAdminの画面の確認

 
phpMyAdminに接続すると無事に画面が表示されるのが確認できます。

 

ローカル開発環境でちょっとでも大事な情報を扱うことがある場合は、rootユーザーのデフォルトのパスワードなどはしっかり変更しておき、セキュリティを高めておきましょう。