「XAMPP」をインストール後に、いくつか初期の段階で設定しておきたいことがあります。
その中でも、セキュリティ対策に関する設定はローカル環境開発の場合でも、しっかりと設定して外部からのMySQL(MariaDB)のデータベースにアクセスされないように防ぎましょう!
XAMPPをインストールした直後のプログラミング初心者も、セキュリティ設定していなかった方でもこの記事の手順に沿って行けば簡単にできますので、その方法をご紹介していきます。
環境概要
この記事でご説明する方法は、以下のパソコンで進めた内容になります。
ご自身と環境が違うことで、挙動が変わる場合があります。
- OS:Windows 10 Home 64 ビット
- CPU:Intel(R) Core(TM) i7-8550U CPU @ 1.80GHz (8 CPUs), ~2.0GHz
- GPU:Intel(R) UHD Graphics 620
- メモリー:16GB
手順概要
「XAMPP」のMySQL(データベース)セキュリティ設定の手順は以下になります。
という感じになります。では、進めていきましょう!
XAMPPをインストール後にMySQL(データベース)セキュリティ設定する方法
この記事では、Windosw版のXAMPPをインストールしている方を対象としていますので、まだXAMPPをインストールしていない場合は、以下からインストールを行いましょう!
XAMPPのMySQL(MariaDB)というデータベースを利用していますが、セキュリティ対策する内容は以下の2つになります。
なんだか難しく感じると思いますが、簡単に言うと「外部からの不正アクセスを防ぐためのパスワードを設定する」という理解でOKです!
MySQL(MariaDB)のパスワードを設定
まずは、「MySQL(MariaDB)のパスワードを設定」を始めます。
XAMPPのデータベースはMySQL(MariaDB)が採用されており、アクセスするためのログインとして、ユーザー名がデフォルトで「root」で、パスワードは未設定になっています。
パスワードを未設定のままでは、外部からのアクセスで簡単にログインされデータベースの中身を改ざんされてしまう恐れがある状態になっていますのでパスワードを設定しましょう!
XAMPPのコントロールパネルからShellを起動
XAMPPを起動し「Apache」と「MySQL」の Start をクリックして稼働させて、左側にあるメニューの「Shell」をクリックします。
そうすると、以下の図のようにコマンド入力して操作できる「Shell」が起動します。これをターミナルやコマンドラインなどと呼ばれます。
プログラミングを行うエンジニアの方にとってはお馴染みのツールですね。
MySQL(MariaDB)にログインする
「Shell」の画面内に「#」の行の右横に少し太めのアンダーバーが点滅しているところに、コマンドを入力しますので、まずは[ cd mysql\bin ] を入力して、 Enter でコマンドを実行しディレクトリを移動します。
# cd mysql\bin
[ cd ] は「change directory(チェンジディレクトリ)」の略で、ディレクトリ(階層)を移動する時のコマンドになり、 現在のディレクトリである「c:\xampp」から移動先のディレクトリとなる [ mysql\bin ]を指定することで「c:\xammp\mysql\bin」のディレクトリに移動できます。
MySQL(MariaDB)のパスワードを変更するために、MySQLにログインします。
先程の続きで「#」の行に[ mysql -u root ] を入力して、 Enter でコマンドを実行しログインします。実行すると以下の図のように表示されていればログインしている状態となります。
「-u root」は「root」というユーザ名でログインするという意味になります。この「root」はXAMPPのデフォルトで設定されています。
# mysql -u root
MySQLにログインができましたので、「MariaDB[(none)]>」の右に、「set password=password(‘任意のパスワード’);」と入力して、Enter でコマンド実行しパスワードを設定します。
# set password=password('任意のパスワード');
「Query OK, ~」と表示されれば、「root」ユーザーに対してパスワードが設定できました。
「Shell」を終了する
MySQL(MariaDB)のパスワード設定が完了しましたので、MySQLをログアウトしShellを終了します。
MySQLのログアウトは[ quit ]でログアウトし、Shellを終了するには、[ exit ] のコマンドを入力します。
MariaDB[(none)]> quit
# exit
phpMyAdminのログイン認証設定
もう1つのphpMyAdminのログイン認証設定を行っていきます。
XAMPPのコントロールパネルから、「MySQL」の Admin をクリックしてphpMyAdminにアクセスします。
すると、以下の図のようにログインエラーが発生して、phpMyAdminにアクセスすることができません。パスワードを設定する前は、phpMyadminにアクセスできていましたが、パスワード設定したことによってログイン情報が一致しないことでログインができなくなった状態になります。
phpMyAdminは、デフォルトでログイン情報を設定ファイルから読み取っているのでこの設定ファイルを編集してログインできるようにしていきます。
XAMPPを一旦終了する
設定ファイルを編集するので、XAMPPを起動させて「Apache」と「MySQL」が稼働していますので一旦終了させます。
(1)「Apache」と「MySQL」の稼働を停止させるため、stop をクリックします。
(2)XAMPPコントロールパネルの右側のメニューにある Quit をクリックします。
これでXAMPPを一旦終了させます。
phpMyAdminの設定ファイル「config.inc.php」を編集
XAMPPを一旦終了したら、phpMyAdminの設定ファイル「config.inc.php」を編集します。
設定ファイルは、XAMPPをCドライブにインストールしていれば「 c:\xampp\phpMyAdmin\config.inc.php 」のパスにファイルが存在するので、こちらを編集していきます。
ただし、編集する前に設定ファイルのバックアップを取っておくことをおすすめしますので、「config.inc.php」を複製してファイル名を「config.inc.php.org」にしてバックアップを取りましょう。
バックアップを作成し終わったら、「config.inc.php」右クリックし、「プログラムから開く」を選択、メモ帳でファイルを開きます。メモ帳以外のテキストエディタでもOKです。
ファイルを開くと「$cfg~」がズラリと並んでいるので、以下のように編集します。
(1)$cfg[‘Servers’][$i][‘auth_type’] = ‘config’; の「config」を「cookie」 に変更
(2)$cfg[‘Servers’][$i][‘user’] = ‘root’; の「root」を削除
編集前
/* Authentication type and info */
$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = '';
$cfg['Servers'][$i]['extension'] = 'mysqli';
$cfg['Servers'][$i]['AllowNoPassword'] = true;
$cfg['Lang'] = '';
編集後
/* Authentication type and info */
$cfg['Servers'][$i]['auth_type'] = 'cookie'; ←/* config を cookie に変更 */
$cfg['Servers'][$i]['user'] = ''; ←/* rootを削除 */
$cfg['Servers'][$i]['password'] = '';
$cfg['Servers'][$i]['extension'] = 'mysqli';
$cfg['Servers'][$i]['AllowNoPassword'] = true;
$cfg['Lang'] = '';
(1)の項目を「cookie」に変更する事で、phpMyadminにアクセス時にユーザーとパスワードを入力する認証画面を表示するようになります。編集内容を ctrl + s で保存してメモ帳を閉じましょう。
設定ファイル「config.inc.php」の変更後、phpMyAdminにアクセス
一旦終了したXAMPPを起動させ、「Apache」と「MySQL」を稼働させて、「MySQL」の Admin をクリックしてphpMyAdminにアクセスします。
phpMyAdminの認証画面が表示されれば、ユーザ名に「MySQLのデフォルトのユーザ名のroot」を入力し、パスワードには、MySQLのコマンドで「set password=password(‘任意のパスワード’);」で設定したパスワードを入力して、実行 をクリックします。
以下の図のように、phpMyAdminの画面が表示されればOKです!
まとめ
MySQL(MariaDB)データベースのセキュリティの対策は、重要な1つの作業になります。
また、何度も行うことでなければ覚えられないと思いますので、この記事をブックマークなど必要な時に確認できるようにしてもらえれば、調べる時間も軽減されて時間を有効に使っていきましょう!
XAMPPにWordPressをインストールしたい方は以下の記事を参考にしてくだい。
XAMPPの設定で、URLのlocalhostの表示を無くしたい方法を以下の記事でできます。ローカル環境で開発する時に開発しやすかったり管理しやくすなったり便利なのでちょっと覗いてみてください!
では、お疲れさまでした!