バナー画像

ローカル環境にMySQLをインストールしただけの状態ではpasswordの設定が行われてません。

これではセキュリティに問題がありますので、パスワードの設定をしておくことをお勧めします。

そこで今回はpasswordの設定方法(変更方法)とその他に変更をする箇所について解説してみたいと思います。

2つの変更方法

passwordを変更する方法にはパターンがあります。

どちらもコマンドラインを使用しますが、一つ目の方法としてはmysqladminコマンドを使用して設定する方法が挙げられます。

この方法は非常に簡単に設定できる反面、デメリットとしてはログファイルにパスワードが残ってしまいます。

よってセキュリティ上、このやり方ではセキュリティに問題を抱えることになりますので、このやり方はお勧めできません。

二つ目の方法としてはrootユーザーでログインしてから変更する方法です。

この方法ならログファイルにパスワードも残らず変更をかけることが出来ますので、こちらを覚えるようにしましょう。

MySQLのパスワード変更方法

冒頭でも述べていますが、MySQLはインストールした状態のままであればpasswordの設定は一切されていません。

そこでまず、コマンドラインでMySQLにログインし、そこでUPDATEをかけpasswordを変更する必要があります。

passwordの変更には次のコマンドを使用します。

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

UPDATE文を使用することで、テーブルに格納されているユーザーのパスワードを新たに設定更新することが出来ます。

では実際に次のコマンドを見てみましょう。

// まずrootユーザーでMySQLにログイン
# mysql -u root
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 18
Server version: 10.4.10-MariaDB mariadb.org binary distribution

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

//参照するデータベースを指定
MariaDB [(none)]> use mysql;
Database changed
// 現在使用されているユーザー名とパスワードを確認
MariaDB [mysql]> select Host, User, Password from user;
+-----------+------+----------+
| Host      | User | Password |
+-----------+------+----------+
| localhost | root |          |
| 127.0.0.1 | root |          |
| ::1       | root |          |
| localhost | pma  |          |
+-----------+------+----------+
4 rows in set (0.001 sec)

まず最初に、現在使用できるユーザーを全て確認してみました。

インストールしたままの状態ですので、当然passwordはかかっていない状態であることが確認できます。

またユーザーも新規追加していないのでrootしかありません。

ではこの状態からpasswordを設定してみましょう。

コマンドラインでログインしたままの状態で”UPDATE mysql.user SET password=PASSWORD(‘新しいパスワード’) WHERE user=’root’;”を実行します。

またこのコマンドを実行した後で、MySQLに反映させないといけないので、次に以下のコマンドも併せて実行させてください。

FLUSH PRIVILEGES;

このコマンドを実行することで、再起動をかけることなくMySQLに設定の反映をさせることが出来ます。

では早速設定が反映されているかどうかを確認してみましょう。

先ほどと同じく、SELECTを使って一覧検索をかければ設定の確認ができます。

MariaDB [mysql]> select Host, User, Password from user;
+-----------+------+-------------------------------------------+
| Host      | User | Password                                  |
+-----------+------+-------------------------------------------+
| localhost | root | *B3137EF037852054A4B885EB525B8500A78D0D62 |
| 127.0.0.1 | root |                                           |
| ::1       | root |                                           |
| localhost | pma  |                                           |
+-----------+------+-------------------------------------------+
4 rows in set (0.001 sec)

表示としてはハッシュ化されていますので設定したパスワードとは違いますが、先ほどとは変わって”Password”の部分が空欄ではなくなっていることが確認できます。

passwordの設定はこれで完了です。

phpMyAdminの設定を変更する

先ほどpasswordの設定は完了しましたが、一つ問題が残っています。

次の画像を見てください。

これはphpMyAdminを使ってブラウザからサーバーを開こうとした際に表示される画面です。

先ほどpasswordを変更したことによって、今度はこちらがエラーとなりました。

よってここでは、このエラーを修正する方法について解説していきます。

phpMyAdminフォルダの中に「config.inc.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’] = ‘config’;
$cfg[‘Servers’][$i][‘user’] = ‘root’;
$cfg[‘Servers’][$i][‘password’] = ”;
$cfg[‘Servers’][$i][‘extension’] = ‘mysqli’;
$cfg[‘Servers’][$i][‘AllowNoPassword’] = true;
$cfg[‘Lang’] = ”;

/* Bind to the localhost ipv6 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
*/

この中に「$cfg[‘Servers’][$i][‘password’] = ”;」という部分がありますので、こちらに先ほど設定したパスワードを入力して保存してください。

終わりましたらそのままファイルを閉じていただいて構いません。

確認のため、再度phpMyAdminを開いてみましょう。

無事phpMyAdminが開けることが確認できました。

設定は以上です。

まとめ

いかがでしたか?

今回はpasswordの設定方法について解説してみました。

MySQLは初期状態では色々と問題もあるため、まずはじめにパスワードを設定することと、定期的にpasswordを変更する習慣を身に着けておきましょう。

エンジニアになりたい人に選ばれるプログラミングスクール「ポテパンキャンプ 」

ポテパンキャンプは卒業生の多くがWebエンジニアとして活躍している実践型プログラミングスクールです。 1000名以上が受講しており、その多くが上場企業、ベンチャー企業のWebエンジニアとして活躍しています。

基礎的な学習だけで満足せず、実際にプログラミングを覚えて実践で使えるレベルまで学習したいという方に人気です。 プログラミングを学習し実践で使うには様々な要素が必要です。

それがマルっと詰まっているポテパンキャンプでプログラミングを学習してみませんか?

卒業生の多くがWebエンジニアとして活躍

卒業生の多くがWeb企業で活躍しております。
実践的なカリキュラムをこなしているからこそ現場でも戦力となっております。
活躍する卒業生のインタビューもございますので是非御覧ください。

経験豊富なエンジニア陣が直接指導

実践的なカリキュラムと経験豊富なエンジニアが直接指導にあたります。
有名企業のエンジニアも多数在籍し品質高いWebアプリケーションを作れるようサポートします。

満足度高くコスパの高いプログラミングスクール「ポテパンキャンプ」

運営する株式会社ポテパンは10,000人以上のエンジニアのキャリアサポートを行ってきております。
そのノウハウを活かして実践的なカリキュラムを随時アップデートしております。

代表の宮崎もプログラミングを覚えサイトを作りポテパンを創業しました。
本気でプログラミングを身につけたいという方にコスパ良く受講していただきたいと思っておりますので、気になる方はぜひスクール詳細をのぞいてくださいませ。