MySql verwendet Skip-Name-Resolve, um das Problem langsamer externer Netzwerkverbindungen des Clients zu lösen

MySql verwendet Skip-Name-Resolve, um das Problem langsamer externer Netzwerkverbindungen des Clients zu lösen

Das auf Tencent Cloud erstellte MySQL ist immer sehr langsam, wenn es mit Navicat auf dem Entwicklungscomputer aufgerufen wird. Es stellt sich heraus, dass Mysql eine Domänennamenauflösung für die angeforderte Adresse durchführt. Der Entwicklungscomputer hat keinen Domänennamen und ist daher sehr langsam. Verwenden Sie Folgendes, um das Problem zu lösen

[mysqld]
Namensauflösung überspringen
Skip-Grant-Tabellen

Offizielle Erklärung

Wie MySQL
Wenn ein neuer Thread sich mit mysqld verbindet, wird mysqld
Erzeugen Sie einen neuen Thread, um die Anfrage zu bearbeiten. Dieser Thread prüft zunächst
wenn der Hostname im Hostnamen-Cache ist. Wenn nicht, ruft der Thread auf
gethostbyaddr_r() und gethostbyname_r(), um den Hostnamen aufzulösen. Wenn
Das Betriebssystem unterstützt die oben genannten threadsicheren Aufrufe nicht.
Der Thread sperrt ein Mutex und ruft gethostbyaddr() und gethostbyname() auf
stattdessen. Beachten Sie, dass in diesem Fall kein anderer Thread andere
Hostnamen, die nicht im Hostnamen-Cache sind, bis der erste Thread
bereit. Sie können die DNS-Hostsuche deaktivieren, indem Sie mysqld mit
–skip-name-resolve. In diesem Fall können Sie jedoch nur IP-Namen in
die MySQL-Berechtigungstabellen. Wenn Sie einen sehr langsamen DNS und viele
Hosts können Sie die Leistung steigern, indem Sie entweder die DNS-Suche deaktivieren
mit –skip-name-resolve oder durch Erhöhen der HOST_CACHE_SIZE-Definition
(Standard: 128) und kompilieren Sie mysqld neu. Sie können den Hostnamen deaktivieren
Cache mit –skip-host-cache. Sie können den Hostnamen-Cache löschen mit
FLUSH HOSTS oder mysqladmin flush-hosts. Wenn Sie nicht zulassen möchten,
Verbindungen über TCP/IP können Sie herstellen, indem Sie mysqld starten mit
--skip-networking.

Laut Dokumentation ist die Verbindung sehr langsam, wenn Ihr MySQL-Host DNS sehr langsam abfragt oder viele Client-Hosts vorhanden sind. Da unsere Entwicklungsmaschine keine Verbindung zum externen Netzwerk herstellen kann, kann die DNS-Auflösung nicht abgeschlossen werden, was erklärt, warum die Verbindung so langsam ist. Beachten Sie gleichzeitig, dass nach dem Hinzufügen dieses Konfigurationsparameters das Hostfeld in der MySQL-Autorisierungstabelle nicht den Domänennamen, sondern nur die IP-Adresse verwenden kann, da dies dazu führt, dass die Domänennamenauflösung verboten wird.

Zusammenfassen

Oben habe ich Ihnen erklärt, wie MySql mithilfe von Skip-Name-Resolve das Problem langsamer externer Netzwerkverbindungen des Clients löst. Ich hoffe, es hilft Ihnen weiter. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und ich werde Ihnen rechtzeitig antworten. Ich möchte auch allen für ihre Unterstützung der Website 123WORDPRESS.COM danken!

Das könnte Sie auch interessieren:
  • Probleme und Lösungen bei Fehler 08001 bei der Verknüpfung mit MySQL in IDEA und keiner Tabellenanzeige nach erfolgreicher Verbindung
  • Nach der Installation von Navicat in MySQL wird 2059 angezeigt: Authentifizierungs-Plugin und Docker für lokale virtuelle Maschinen sowie Remote-Link-Server
  • Python pymysql Link Datenbankabfrageergebnisse in Dataframe-Instanz konvertiert
  • Detaillierte Erläuterung von MySQL-Abfragebeispielen für mehrere Tabellen [Linkabfrage, Unterabfrage usw.]
  • Beispieloperation MySQL Kurzlink
  • Zusammenfassung des Installationsprozesses von MySql 8.0.11 und der beim Verknüpfen mit Navicat aufgetretenen Probleme
  • Detaillierte Erklärung zur Verwendung von MySQL-Gruppenlinks
  • So verwenden Sie einen SSH-Tunnel, um eine Verbindung zum MySQL-Server herzustellen
  • So zeigen Sie MySQL-Links an und löschen abnormale Links

<<:  So zeigen Sie Docker-Containerprotokolle an und bereinigen sie (getestet und effektiv)

>>:  Der gesamte Prozess der Verwendung von node.js Express zum automatischen Erstellen des Projekts

Artikel empfehlen

Zen-Codierung für Editplus – Beispielcodebeschreibung

Er gibt beispielsweise ein: XML/HTML Code div#Seit...

So greifen Sie in Docker auf den lokalen Computer (Hostcomputer) zu

Frage Wie greife ich in Docker auf die lokale Dat...

Ausführliche Erläuterung der Vue-Komponente „Multi-Select-Liste“

Eine Mehrfachauswahl ist ein Benutzeroberflächene...

Analyse der Prinzipien und Verwendung von Linux-Hardlinks und Softlinks

Im Linux-System gibt es einen Dateityp namens Lin...

MySQL Router implementiert MySQL Lese-/Schreibtrennung

Inhaltsverzeichnis 1. Einleitung 2. MySQL-Router ...

Element Plus implementiert Affix

Inhaltsverzeichnis 1. Komponenteneinführung 2. Qu...

Implementierung der Docker-Container-Verbindung und -Kommunikation

Die Portzuordnung ist nicht die einzige Möglichke...

Analyse der Verschachtelungsregeln von XHTML-Tags

In der XHTML-Sprache wissen wir alle, dass das ul...

Implementierung des Element-UI-Layouts (Zeilen- und Spaltenkomponenten)

Inhaltsverzeichnis Grundlegende Anweisungen und V...

Verstehen Sie die anfängliche Verwendung von Redux in React in einem Artikel

Redux ist ein Plug-In zur Datenstatusverwaltung. ...

So speichern Sie Text und Bilder in MySQL

Große Textdatentypen in Oracle Clob-Langtexttyp (...

Verwendung der MySQL-Zeitdifferenzfunktionen TIMESTAMPDIFF und DATEDIFF

Verwendung der Zeitdifferenzfunktionen TIMESTAMPD...