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ドキュメントから

答え2

まあ、代わりに質問を繰り返したようです。元の編集

bind-address他の質問で説明されているように編集した場合、サービスはこのパラメータで設定されたIPアドレス以外のIPアドレスを受信しないでください。

次に、MySQLアプリケーションレベルのアクセスも提供する必要があるため、このサーバーに接続できません。

リモートサーバーのローカルシェルからmysqlプロンプトにアクセスして、次のコマンドを実行します。

`GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password';`

MySQLには、ネットワーク構成とアプリケーションレベルの認証/権限の2つの基本が欠けているようです。この技術をさらに詳しく調べてください。

Googleでもっと学びましょうERROR 1130 (HY000): Host is not allowed。この検索の最初の結果がStackExchangeにリンクされていることに気づくと驚くでしょう。ここで:エラー1130(HY000): ''ホストはこのMySQLサーバーに接続できません。

関連情報