デフォルト設定の 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ドキュメントから