この記事では主に、MySql で Skip-name-resolve を使用して、外部ネットワーク リンク クライアントが遅いという問題を解決する方法を説明します。 Tencent Cloud 上に構築された MySQL は、開発用コンピュータ上の Navicat からアクセスすると常に非常に遅くなります。MySQL は要求されたアドレスでドメイン名解決を実行しますが、開発用コンピュータにはドメイン名がないため、非常に遅くなります。 。
Tencent Cloud 上に構築された Mysql は、開発用コンピューターで Navicat を使用してアクセスすると常に非常に遅くなります。Mysql は要求されたアドレスでドメイン名解決を実行することが判明しましたが、開発用コンピューターにはドメイン名がないため、
[mysqld] skip-name-resolve skip-grant-tables
公式説明
MySQL
が DNS を使用する方法 新しいスレッドが mysqld に接続すると、mysqld はリクエストを処理するために新しいスレッドを
生成します。このスレッドは最初に if を確認します。ホスト名がホスト名キャッシュにない場合、スレッドはホスト名を解決するために
gethostbyaddr_r() と gethostbyname_r() を呼び出します。
オペレーティング システムが上記のスレッドセーフな呼び出しをサポートしていない場合、
スレッドはミューテックスをロックします。この場合、最初のスレッドの準備が完了するまで、他のスレッドはホスト名キャッシュにない他のホスト名を解決できないことに注意してください。ただし、非常に遅い DNS と多数のホストを使用している場合は、-name-resolve を使用して DNS lookop を無効にすることでパフォーマンスを向上させることができます。 Skip-name -resolve または HOST_CACHE_SIZE を増やして (デフォルト: 128)、mysqld を再コンパイルします。 –skip-host-cache でホスト名キャッシュを無効にすることができます。
FLUSH HOSTS または mysqladmin flash- TCP/IP 経由の接続を許可したくない場合は、
–skip-networking を使用して mysqld を起動することでこれを行うことができます。
ドキュメントによると、mysql ホストの DNS クエリが遅い場合や、DNS のクエリが多数ある場合は、クライアント ホスト 開発マシンが外部ネットワークに接続できないため、DNS 解決が完了できないため、接続が非常に遅い理由がわかります。同時に、この設定パラメータを追加した後は、mysql 認証テーブルのホスト フィールドでドメイン名が使用できなくなり、IP アドレスのみが使用されることに注意してください。これは、ドメイン名解決が禁止された結果であるためです。
関連する推奨事項:
Python http 長い接続クライアント インスタンスのチュートリアル
mysql 接続が遅い問題を解決する方法_MySQL
以上がMySql は、外部ネットワーク接続クライアントが遅すぎるという問題を解決するために、skip-name-resolve を使用します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。