MySQLは初期状態ではrootユーザーが作成されています。rootユーザーでは、MySQLの操作のすべてを行うことができます。 そのため、特定のアプリケーションでrootユーザーのままMySQLにアクセスし、MySQLの操作すべてを行える状態にしておくのはセキュリティ的に危険です。 今回はrootユーザー以外のユーザー作成方法を学びます。

MySQLのユーザー作成

3年以上前に更新されました。情報が古い可能性があります。
更新日 : 2020年02月04日

MySQLは初期状態ではrootユーザーが作成されています。rootユーザーでは、MySQLの操作のすべてを行うことができます。

そのため、特定のアプリケーションでrootユーザーのままMySQLにアクセスし、MySQLの操作すべてを行える状態にしておくのはセキュリティ的に危険です。

今回はrootユーザー以外のユーザー作成方法を学びます。

ユーザー作成のSQL

ユーザー作成はMySQLのrootユーザーで行ってください。

ユーザー作成もSQL文で行うことができます。ユーザー作成は以下のSQLで実行可能です。

CREATE USER 'ユーザー名'@'ホスト名' IDENTIFIED BY 'パスワード';

'ユーザー名''ホスト名''パスワード'の部分は作成したいユーザーの値に直して利用します。

ユーザー名

ユーザー名は任意のユーザー名を作成可能です。アプリケーションから利用するデータベースと同様の名前などにするのが一般的です。

ホスト名

'ユーザー名'@'ホスト名''ホスト名'の部分では、MySQLにアクセスしてくるクライアントのIPアドレスやホスト名を指定します。

例えば、「test_userという名前のユーザー名は、IPアドレスが192.168.0.1というIPアドレスからのアクセスのみ許可したい」という場合には'test_user'@'192.168.0.1'と設定します。こうすることで192.168.0.1からアクセスしたコンピュータのみ接続を許可します。

MySQLサーバー自体と、アクセスするアプリケーションサーバーが同一コンピュータに存在する場合には'test_user'@'localhost'と記述しておけばアクセス可能です。

パスワード

パスワードは作成するユーザーのパスワードです。ホスト名ごとにパスワードも異なるように設定できるため注意が必要です。

実際にユーザーを作成してみる

実際に以下のSQLを実行してユーザーを作成してみましょう。

CREATE USER 'test_user'@'localhost' IDENTIFIED BY 'password';

作成できれば、phpMyAdminでは以下のようにユーザーアカウントとして追加されているはずです。

ここまででユーザー追加は完了です。さらに、作成したユーザーでMySQLにログインしたい方は以下をお読み下さい

作成したユーザーで、phpMyAdmin以外でMySQLにログインする方法については別記事で記載します。macOSでMAMPを利用してMySQLにアクセスしている方はターミナル用にMySQLのクライアントソフトが必要です。

WindowsのXAMPPを利用してMySQLにアクセスしている方は、XAMPPのコントロール画面からShellというボタンをクリックすると、MySQLクライアントがコマンドプロンプトから使える状態になります。

コマンドプロンプト起動後、以下のコマンドでMySQLにログインできます。

$ mysql -uroot -proot
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 59
Server version: 10.3.15-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)]>

mysql -uユーザー名 -pパスワードと入力するとログイン確認ができます。