外部のホストからアクセスできるDBユーザーの作成方法について解説します。開発環境などで、外部からMySQLにアクセスしたいときに活用できます。
目次
現在の状況を確認
mysql> select user, host from mysql.user;
+---------------+-----------+
| user | host |
+---------------+-----------+
| root | localhost |
| mysql.session | localhost |
| mysql.sys | localhost |
+---------------+-----------+
3 rows in set (0.00 sec)
rootユーザー
は、 localhost
からしか接続できないようです。
外部のホストからアクセス可能にする
特定IPからアクセス可能にするには、以下クエリを実行します。
grant all privileges
on [db_name].* to [user_name]@"[ip_address]"
identified by '[password]' with grant option;
ここでは、 rootユーザー
がどこからでもアクセスできるようにしてみます。
どこからでもアクセスできるようにするには、 %
を利用します。
grant all privileges
on *.* to root@"%"
identified by 'xxxxxxxxxxxxx' with grant option;
mysql> select user, host from mysql.user;
+---------------+-----------+
| user | host |
+---------------+-----------+
| root | % |
| mysql.session | localhost |
| mysql.sys | localhost |
+---------------+-----------+
3 rows in set (0.00 sec)
接続中ユーザの権限情報を確認
特定DBだけアクセスできないなどあれば、権限情報を確認してみてください。 SHOW GRANTS
を実行すると、接続中ユーザの権限情報を確認できます。
mysql> SHOW GRANTS;
+-------------------------------------------------------------+
| Grants for root@% |
+-------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION |
| GRANT PROXY ON ''@'' TO 'root'@'%' WITH GRANT OPTION |
+-------------------------------------------------------------+
2 rows in set (0.00 sec)