web-dev-qa-db-ja.com

バインドアドレスとMySQLサーバー

MySQLサーバーを設定しようとしているときにバインドアドレスに遭遇しました。バインドアドレスを構成する理由の詳細は、以下のリンクにあります。

複数のホスト名と複数の特権?

ここで、バインドアドレスの目的を理解したいと思います。ある意味で、バインディングアドレスは、MySQLサーバーをホストしているマシンに割り当てるアドレスですか?

私は見当もつかない。誰かが私にそれの目的を説明できたら本当に助かります。また、0.0.0.0をバインディングアドレスに割り当てると、セキュリティ上の欠陥やループホールが発生しますか?

23
Karthick

Bindで指定するアドレスは、MySQLにリッスンする場所を指示します。 0.0.0.0は特別なアドレスで、「使用可能なすべてのネットワークにバインドする」ことを意味します。

「バインド」オプションで指定された同じアドレスを使用してサーバーへの接続を開くことができるクライアントソフトウェアのみが接続を許可されます。

いくつかの例:

  • MySQLが127.0.0.1にバインドする場合、同じコンピューター上のソフトウェアのみが接続できます(127.0.0.1は常にローカルコンピューターであるため)。
  • MySQLが192.168.0.2にバインドしている場合(およびサーバーコンピューターのIPアドレスが192.168.0.2であり、それが/ 24サブネット上にある場合)、同じサブネット上のコンピューター(192.168.0で始まるすべてのコンピューター)が接続できます。
  • MySQLが0.0.0.0にバインドする場合、ネットワーク経由でサーバーコンピューターに到達できるすべてのコンピューターが接続できます。

これらはすべてトランスポートレベルの接続です。リモートコンピューターは引き続きアプリケーションレベルの資格を得る必要があります。つまり、リモートコンピューターはmysql.userの正しいログイン資格情報とホストパラメーターを必要とします。

48
Seth