MySQLは現在、日本で最も汎用的に使用されているリレーショナルデータベースシステムと言えるでしょう。
以前は安全性の高いOracleや日本での人気の高いPostgreSQLの方が多く使用されていましたが、MySQLの信頼度が以前より断然に高まり、日本国内での人気も一気に高まってきました。PHPなどのWeb言語との親和性も高く、何よりフリーソフトであることで人気を集めています。
そのMySQLを使用する際に真っ先に一番気をつけなくてはいけないこと、それはrootユーザーにパスワードを設定することです。コレを怠っては簡単に乗っ取りなどが発生してしまう危険性があります。そうさせないためにも、MySQLにおけるrootユーザーのパスワード設定をしっかりしておきましょう。
MySQLでのrootパスワード設定の必要性
MySQLははじめにインストールした状態ではrootのパスワードが設定されておりません。なのでコンソールから
# mysql -u root
と、入力すれば誰でもMySQLに管理者権限でアクセス出来てしまうということです。サーバー自体にパスワードロックやIPアドレス制限をかけておけば簡単にはMySQLアクセスできないだろうと言う意見もあるかと思います。たしかにその通りですが、リスクを少しでも減らすのと、WebサイトやアプリからMySQLへの接続がある場合、そちらからの管理者権限の乗っ取りにも気をつけなくてはならないのでMySQL自体のrootユーザーにもしっかりパスワードを設定しておくべきです。そのための方法を下に記載します。
rootパスワードを設定する二つの方法
ログインしてパスワードを設定
一つ目はMySQLにログインしてMySQLコマンドで実行する方法です。
# mysql -u root
まずはこちらのコマンドでMySQLにrootユーザーとしてログインします。
mysql> update mysql.user set password=password('ooo') where user = 'root';
次にこちらのMySQLコマンドを実行します。このMySQLコマンドは
「rootユーザーのパスワードをoooに変更する」
という意味になります。もちろん場合に応じて「ooo」の部分はご自分の使用するパスワードに置き換えて入力してください。続いて
mysql> flush privileges;
と、入力しましょう。これは変更点を反映するという意味のMySQLコマンドです。このMySQLコマンドの実行によって、管理者パスワードの変更が反映されることになります。そして最後に
mysql> exit;
の入力をしましょう。こちらのMySQLコマンドでMySQLから一旦接続を切ります。次回接続時には
# mysql -u root -p
と入力します。そうすると
Enter Password
と表示されますので、先ほど設定したパスワードを入力しましょう。注意点としてはパスワードを入力している時には画面には一切表示が反映されません。入力が完了してEnterキーを押すとMySQLコマンド入力画面へとなります。
mysqladminでパスワードを設定
第二の方法としてコンソールからmysqladminコマンドを利用することがあります。こちらは、簡単で手軽にパスワードを設定することが出来ます。
# mysqladmin -u root password 'ooo(root用のパスワード)'
こちらは非常に手軽なのですが、欠点としてコマンドの履歴を記載するログファイルにパスワードが残ってしまいます。なので、セキュリティーを重視する場合はあまり使用しないほうが良いです。
また、こちらでパスワード設定した場合も、ログインできるかを確認します。
# mysql -u root -p
Enter password:
Windows版でも同じように出来ます。MySQLをインストールした後に
すべてのプログラム-アクセサリ-コマンドプロンプト
でコマンドプロンプトを起動します。
その後は、LINUX等と同様に
C:> mysql -u root
mysql> update mysql.user set password=password('ooo') where user = 'root';
mysql> flush privileges;
として下さい。そうするとrootユーザーのパスワードが変更されます。そして
mysql> exit;
と入力し、MySQLから一度ログアウトした後、
C:> mysql -u root -p
と入力すると
Enter Password
とパスワードを求められますので、後はパスワードを入力してMySQLにログインしましょう
また、WindowsにMySQLをインストールする際にxamppを使用する方もいるかと思います。その場合下記のページに書かれている方法でMySQLのrootユーザーのパスワードを設定することが出来ます。ですが、この方法を実行するより、コマンドプロンプトでアクセスし、コマンドを実行したほうがシンプルです。
http://www.adminweb.jp/xampp/mysql/index2.html