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

jQuery-Plugin für ein nahtloses Karussell

Ein nahtloses Karussell ist ein sehr häufiger Eff...

Instanzmethode für MySQL-String-Verkettung und Festlegen von Nullwerten

#String-Verkettung concat(s1,s2); verkette die St...

Zabbix3.4-Methode zum Überwachen des MongoDB-Datenbankstatus

Mongodb verfügt über einen Befehl db.serverStatus...

Detaillierte Einführung und Verwendungsbeispiele für Map-Tag-Parameter

Karten-Tags müssen paarweise vorkommen, d. h. <...

HTML+CSS zum Erstellen von Herzschlag-Spezialeffekten

Heute werden wir einen einfachen Herzschlageffekt...

Warum Entwickler Datenbanksperren im Detail verstehen müssen

1.Sperren? 1.1 Was ist ein Schloss? Die eigentlic...

Welchen MySQL-Eindeutigen Index oder Normalen Index soll ich wählen?

Stellen Sie sich ein Szenario vor, in dem beim En...

Detaillierte Analyse des Event-Bubbling-Mechanismus in JavaScript

Was ist Blubbern? Es gibt drei Phasen im DOM-Erei...

Beispiel einer DOM-Operationstabelle (DOM erstellt Tabelle)

1. Erstellen Sie eine Tabelle mit HTML-Tags: Code...