解決策 1:
いいえ、ありません (ちょうど 1 時間前に確認しました)。 my.cnf で bind-address にコメントを付けることができます:
<ブロック引用>注:« 1 時間前 » は 10 年以上前です。
#skip-networking
#bind-address = 127.0.0.1
2 つの IP のみが必要な場合は、ファイアウォールを使用する必要があります。
MySql バージョン 8.0.13 以降の場合 、コンマ区切りの IP アドレスのリストを指定できます。
bind-address = 10.0.0.1,10.0.1.1,10.0.2.1
関連する MySql ドキュメント。
解決策 2:
127.0.0.x にバインドしても、すべてのデバイスで使用できるわけではなく、ローカルでのみ使用できるようになります。すべてのインターフェイスで使用できるようにする場合は、0.0.0.0 を使用する必要があります。複数のインターフェイスからアクセスしたいが、すべてのインターフェイスからアクセスしたくない場合は、0.0.0.0 にバインドし、アクセスしたくないインターフェイスをファイアウォールでオフにする必要があります。
また、セキュリティの第 2 層として、すべての MySQL ユーザーのホスト フィールドが % 以外 (つまり、任意のホスト) に設定されていることを確認する必要があります。
解決策 3:
複数の IP アドレスにバインドすることはできませんが、代わりに使用可能なすべての IP アドレスにバインドできます。その場合は、0.0.0.0
を使用してください 次のように、MySQL 構成ファイル (例:/etc/mysql/my.cnf) のバインディング アドレス:
bind-address = 0.0.0.0
アドレスが 0.0.0.0 の場合、サーバーはすべてのサーバー ホスト IPv4 インターフェイスで TCP/IP 接続を受け入れます。
さらにアドレスが ::
の場合 、サーバーは、すべてのサーバー ホスト IPv4 および IPv6 インターフェイスで TCP/IP 接続を受け入れます。このアドレスを使用して、すべてのサーバー インターフェイスで IPv4 と IPv6 の両方の接続を許可します。
または、単に bind-address=
をコメントアウトすることもできます したがって、すべてのアドレスにバインドされます。ただし、 skip-networking
がないことを確認してください リモート接続も許可する場合は、my.cnf で有効にします (詳細:MySQL:リモート接続とローカル接続の両方を許可します)。
バインディング アドレスを変更したら、次の方法で MySQL サーバーを再起動することを忘れないでください。
sudo service mysql restart
最終的には、マスター/スレーブ レプリケーションを使用して、1 台のマシン (異なるポート) で MySQL の複数のインスタンスを実行することを検討できます。レプリケーションにより、1 つの MySQL データベース サーバー (マスター) から 1 つ以上の MySQL データベース サーバー (スレーブ) にデータをコピーできます。
続きを読む:
- 5.3 MySQL.com の 1 台のマシンで複数の MySQL インスタンスを実行する
- 第 17 章 MySQL.com でのレプリケーション
解決策 4:
いいえ、あなたがすることはできません。リンク先のページには次のことが明確に記載されています:
<ブロック引用>バインド先の IP アドレス。選択できるアドレスは 1 つだけです。このオプションが複数回指定された場合、最後に指定されたアドレスが使用されます。
アドレスまたは 0.0.0.0 が指定されていない場合、サーバーはすべてのインターフェイスでリッスンします。
解決策 5:
他の人が答えたように、複数のインターフェースに選択的にバインドする方法はまだありません.
Linux には、それを可能にするいくつかの TCP ツールがあります。このセットアップでは、127.0.0.1 でリッスンするように mysql を構成し、redir を使用してそれを任意のインターフェイスに公開します。
これを使用して、仮想ボックス ゲストがホスト マシンにインストールされている mysql を認識できるようにしています。
redir --laddr=192.168.33.1 --lport=3306 --caddr=127.0.0.1 --cport=3306 &