mysqlサーバーがローカルではなく接続要求を許可しないが、まだtcpポートをリッスンするのはなぜですか?

mysqlサーバーがローカルではなく接続要求を許可しないが、まだtcpポートをリッスンするのはなぜですか?

デフォルト設定の mysql サーバはコンピュータのポートでリッスンします。

$ nmap -p0-65535 192.168.1.97

Starting Nmap 7.60 ( https://nmap.org ) at 2019-03-20 14:34 EDT
Nmap scan report for ocean.fios-router.home (192.168.1.97)
Host is up (0.00036s latency).
Not shown: 65533 closed ports
PORT      STATE SERVICE
22/tcp    open  ssh
3306/tcp  open  mysql
33060/tcp open  mysqlx

Nmap done: 1 IP address (1 host up) scanned in 4.50 seconds

他のマシンから mysql サーバーに接続できません。

$ mysql  --user=root --host=ocean --password test
Enter password: 
ERROR 1130 (HY000): Host 'olive.fios-router.home' is not allowed to connect to this MySQL server

これら2つの矛盾した結果をどのように理解しますか?

mysqlサーバーは接続要求を受け取りましたが、拒否しますか?

ローカル以外の接続要求を許可しない場合、なぜTCPポートでリッスンするのですか?

ありがとうございます。

ベストアンサー1

これは、MySQLがユーザーをユーザーとして扱うためです。 MySQLは、次のように作成されたユーザーとホストの組み合わせに権限を付与しますuser@host

以下の例はそれぞれ異なります。

GRANT ALL PRIVILEGES ON db.* TO 'user1'@'%';
GRANT ALL PRIVILEGES ON db.* TO 'user1'@'localhost';
GRANT ALL PRIVILEGES ON db.* TO 'user1'@'192.168.1.97';

各ユーザーとホストの組み合わせは異なるパスワードを持つことができます(...追加された場合)IDENTIFIED BY 'your-password';

より多くの例とより良い説明を見つけることができます。MySQL GRANTドキュメントから

おすすめ記事