mysqlサーバーはローカルではない要求を受け入れますが、postgresqlサーバーは許可しないのはなぜですか?

mysqlサーバーはローカルではない要求を受け入れますが、postgresqlサーバーは許可しないのはなぜですか?

デフォルトの設定では、mysqlサーバーはローカルではなく要求を受け入れますが、postgresqlサーバーは許可しないのはなぜですか?

$ 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

netstat理由を教えていただけますか?

$ sudo netstat -ap | grep postg
tcp        0      0 localhost:postgresql    0.0.0.0:*               LISTEN      1567/postgres       
udp        0      0 localhost:57504         localhost:57504         ESTABLISHED 1567/postgres       
unix  2      [ ACC ]     STREAM     LISTENING     27116    1567/postgres        /var/run/postgresql/.s.PGSQL.5432

$ sudo netstat -ap | grep mysql
tcp6       0      0 [::]:mysql              [::]:*                  LISTEN      23683/mysqld        
tcp6       0      0 [::]:33060              [::]:*                  LISTEN      23683/mysqld        
unix  2      [ ACC ]     STREAM     LISTENING     1169294  23683/mysqld         /var/run/mysqld/mysqld.sock
unix  2      [ ACC ]     STREAM     LISTENING     1169513  23683/mysqld         /var/run/mysqld/mysqlx.sock
unix  2      [ ]         DGRAM                    1169211  23683/mysqld  

mysqlはpostgresqlのように動作して実行されますが、ローカルではない要求を許可しないように設定するにはどうすればよいですか?

ありがとうございます。

ベストアンサー1

このタイプの操作にはファイアウォールは必要ありません。ファイアウォールが役に立たないと言うのではなく、単に0.0.0.0すべてのアドレスに対してlistening()を無効にできることに注意してください。最小権限ソフトウェアが接続を待機できるアドレスは何ですか?

PostgreSQLとMySQLは異なるソフトウェアなので、ネットワーク、ユーザーアクセス、インストールパス、データベースファイルパス、サポートされているファイルシステムなどに対して異なるデフォルト動作を持つことができます。データベースという理由だけで関連付けることはできません。基本構成に影響を与える可能性がある他の点は、ディストリビューションでこのパッケージを担当する人がソフトウェアで使用する必要がある基本構成を決定することです。

0.0.0.0上記のようにデプロイメントが異なるように設定されていない限り、MySQLはデフォルトですべてのネットワークアドレス()を受け取ります。

質問に戻り、MySQLがlocalhostにのみ応答するようにするには、適切な設定ファイル(/etc/my.cnfまたはほとんどの場合/etc/mysql/my.cnf)にアクセスし、次の行を追加または編集します。

bind-address = 127.0.0.1

次に、mysqlサービスを再起動します(ディストリビューションに応じて通常systemctl restart mysqlまたはsystemctl restart mysqld)。

次のコマンドを使用してもう一度確認してくださいss

ss -lntu | grep mysql

おすすめ記事