まず、現状。
mysql> select user, host from mysql.user; +---------------+-----------+ | user | host | +---------------+-----------+ | mysql.session | localhost | | mysql.sys | localhost | | root | localhost | +---------------+-----------+ 3 rows in set (0.00 sec)
ここで、外部から接続するためのユーザを追加します。
mysql> create user 'user1'@'%' identified by 'Abcdefg123!'; Query OK, 0 rows affected (0.00 sec)
user1 というユーザをどこからでも(%)アクセスできるように登録したことにあなります。
mysql> select user, host from mysql.user; +---------------+-----------+ | user | host | +---------------+-----------+ | user1 | % | | mysql.session | localhost | | mysql.sys | localhost | | root | localhost | +---------------+-----------+ 4 rows in set (0.00 sec)
追加されています。これで接続できるはずです。できない場合は、
こちらでファイアウォールの設定も気にしてみてください。
ただ、ファイアウォールの設定ができ接続できたとしても何もできません。なぜならユーザにデータベースを操作する権限を与えていないからです。
mysql> grant all on *.* to 'user1'@'%'; Query OK, 0 rows affected (0.00 sec)
これで user1 がどこから(%)アクセスしてきても、すべてのデータベースのテーブル(*.*)に、すべての操作(all)ができるようになります。