MySqlは、外部ネットワーク接続クライアントの低速問題を解決するためにskip-name-resolveを使用します。

MySqlは、外部ネットワーク接続クライアントの低速問題を解決するためにskip-name-resolveを使用します。

Tencent Cloud上に構築されたMySQLは、開発用コンピュータでNavicatを使用してアクセスすると常に非常に遅くなります。Mysqlは要求されたアドレスに対してドメイン名解決を実行することが判明しました。開発用コンピュータにはドメイン名がないため、非常に遅くなります。次の方法で解決します。

[mysqld]
名前解決をスキップ
スキップ許可テーブル

公式説明

MySQLの仕組み
新しいスレッドがmysqldに接続すると、mysqldは
リクエストを処理するために新しいスレッドを生成します。このスレッドはまず
ホスト名がホスト名キャッシュにある場合。ない場合はスレッドは
gethostbyaddr_r()とgethostbyname_r()を使用してホスト名を解決します。
オペレーティングシステムは上記のスレッドセーフな呼び出しをサポートしていません。
スレッドはミューテックスをロックし、gethostbyaddr()とgethostbyname()を呼び出します。
この場合、他のスレッドは他のスレッドを解決できないことに注意してください。
最初のスレッドが実行されるまでホスト名キャッシュに存在しないホスト名
準備完了。DNSホストルックアップを無効にするには、mysqldを次のように起動します。
–skip-name-resolve。ただし、この場合、IP名のみを使用できます。
MySQLの権限テーブル。非常に遅いDNSと多くの
ホストの場合、DNSルックアップを無効にするか、
–skip-name-resolveを使用するか、HOST_CACHE_SIZE定義を増やすことで
(デフォルト:128)mysqldを再コンパイルします。ホスト名を無効にすることができます
–skip-host-cacheでキャッシュします。ホスト名のキャッシュをクリアするには、
FLUSH HOSTSまたはmysqladmin flush-hostsを実行します。
TCP/IP経由の接続の場合は、mysqldを次のように起動します。
--ネットワークをスキップします。

ドキュメントによると、mysql ホストの DNS クエリが非常に遅い場合、またはクライアント ホストの数が多い場合は、接続が非常に遅くなります。開発マシンは外部ネットワークに接続できないため、DNS 解決を完了できず、接続が非常に遅くなる理由が説明できます。同時に、この構成パラメータを追加した後、ドメイン名の解決が禁止されるため、MySQL 認証テーブルのホスト フィールドではドメイン名を使用できず、IP アドレスのみを使用できるようになることに注意してください。

要約する

上記は、MySql で skip-name-resolve を使用して、外部ネットワーク接続クライアントの速度が遅い問題を解決する方法について紹介したものです。お役に立てれば幸いです。ご質問がある場合は、メッセージを残してください。すぐに返信いたします。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。

以下もご興味があるかもしれません:
  • IDEA で MySQL にリンクするとエラー 08001 が発生し、接続に成功した後にテーブルが表示されない問題と解決策
  • MySQLにNavicatをインストールした後、2059が表示され、認証プラグインとローカルリンク仮想マシンdocker、リモートリンクサーバー
  • Python pymysql リンク データベース クエリ結果を Dataframe インスタンスに変換
  • MySQL マルチテーブルクエリ例の詳しい解説 [リンククエリ、サブクエリなど]
  • 操作例 MySQL ショートリンク
  • MySql 8.0.11 のインストール プロセスと Navicat とのリンク時に発生する問題の概要
  • MySQLグループリンクの使用に関する詳細な説明
  • SSHトンネルを使用してMySQLサーバーに接続する方法
  • MySQL リンクを表示し、異常なリンクを削除する方法

<<:  Docker コンテナのログを表示およびクリーンアップする方法 (テスト済みで効果的)

>>:  Expressを使用してプロジェクトを自動的にビルドするNode.jsのプロセス全体

推薦する

CentOS7 で MySQL のスケジュールされた自動バックアップを実装する方法

実稼働環境で起こる最も嬉しいことは、シナリオによっては、更新または削除時にパラメータを無視せざるを得...

Docker Compose を使用して Confluence を構築するチュートリアル

この記事は「Attribution 4.0 International (CC BY 4.0)」ライ...

Vueはビデオ再生を実装するためにビデオタグを使用します

この記事では、ビデオタグを使用してビデオ再生を実装するVueの具体的なコードを参考までに共有します。...

Linux の daily_routine サンプルコードの詳細な説明

まずサンプルコードを見てみましょう: #/bin/bash cal 日付 -u echo "...

Docker Machineの詳細な説明

Docker と Docker Machine の違いDocker はクライアント サーバー アーキ...

Linuxコマンドunzipの詳しい説明

目次1. 解凍コマンド1.1 構文1.2 オプション2. 例1. 解凍コマンドunzip コマンドは...

高速でクールな揺れアニメーション効果を実現するCSS

1. Animate.css の紹介Animate.css は、Web プロジェクトですぐに使用で...

MySQL ジョイントインデックスの使用ルール

結合指数は複合指数とも呼ばれます。複合インデックスの場合: MySQL はインデックス内のフィールド...

MySQLのFreeListメカニズムの詳細な説明

1. はじめにMySQL が起動すると、BufferPool が初期化されます。クエリ操作を実行する...

Reactでファイルパスエイリアスを素早く設定する方法

React は、ユーザー インターフェイスを構築するための JavaScript ライブラリです。F...

nginx 503 サービスが一時的に利用できない問題を解決する方法

最近、ウェブサイトを更新すると、503 Service Temporarily Unavailabl...

nginxプロキシsocket.ioサービスの落とし穴の詳細な説明

目次Nginx は 2 つの socket.io サーバーをプロキシします。 socket.ioの動...

Kafka と Nginx の統合例

背景nginx-kafka-module は、Kafka を nginx に統合して、Web プロジ...

Vue+Echart 棒グラフで疫病データ統計を実現

目次1. まずプロジェクトにechartsをインストールします2. echartsに縦棒グラフテンプ...

MySQL トランザクション分離レベルの表示と変更の例

トランザクション分離レベルを確認するMySQL では、'%tx_isolation%'...