mysql
Wie kann ich bei Verwendung eines MySQL-Clients (z. B. ) feststellen, ob eine Verbindung zum Server mithilfe einer Unix-Socket-Datei oder mithilfe von TCP / IP hergestellt wurde?
Versuchen Sie es mit netstat -ln | grep 'mysql'
und Sie können sehen, wie es durch den Ausgang verbunden ist. wenn Sie Zugriff auf Shell haben
Unter Unix behandeln MySQL-Programme den Hostnamen localhost speziell auf eine Weise, die sich wahrscheinlich von den Erwartungen unterscheidet, die Sie im Vergleich zu anderen netzwerkbasierten Programmen erwarten. Bei Verbindungen zu localhost versuchen MySQL-Programme, mithilfe einer Unix-Socket-Datei eine Verbindung zum lokalen Server herzustellen.
Dies tritt auch dann auf, wenn eine --port
oder -P
-Option angegeben wird, um eine Portnummer anzugeben.
Wenn Sie den Verbindungstyp in der MySQL-CLI kennen möchten , verwenden Sie den Befehl '\ s' (Status).
mysql> \s
Die Ausgabe hätte eine Zeile wie eine der folgenden (unter Unix).
Connection: 127.0.0.1 via TCP/IP
oder
Connection: Localhost via UNIX socket
Verwenden Sie --host
oder -h
geben Sie einen Hostnamenwert von 127.0.0.1 oder die IP-Adresse oder den Namen des lokalen Servers an, um sicherzustellen, dass der Client eine TCP / IP-Verbindung zum lokalen Server herstellt. Mit der --protocol=TCP
Option können Sie das Verbindungsprotokoll auch für localhost explizit angeben . Zum Beispiel:
shell> mysql --host=127.0.0.1
shell> mysql --protocol=TCP
Die --protocol={TCP|SOCKET|PIPE|MEMORY}
Option gibt explizit ein Protokoll an, das für die Verbindung zum Server verwendet werden soll. Dies ist nützlich, wenn die anderen Verbindungsparameter normalerweise dazu führen, dass ein anderes als das gewünschte Protokoll verwendet wird. Beispielsweise werden Verbindungen unter Unix zu localhost standardmäßig mithilfe einer Unix-Socket-Datei hergestellt:
shell> mysql --host=localhost
Geben Sie eine --protocol
Option an, um die Verwendung einer TCP / IP-Verbindung zu erzwingen :
shell> mysql --host=localhost --protocol=TCP
Eine Unix-Socket-Dateiverbindung ist schneller als TCP / IP, kann jedoch nur verwendet werden, wenn eine Verbindung zu einem Server auf demselben Computer hergestellt wird.