W przypadku korzystania z klienta MySQL (np. mysql
) W jaki sposób mogę ustalić, czy jest on połączony z serwerem przy użyciu pliku gniazda Unix, czy przy użyciu protokołu TCP / IP?
W przypadku korzystania z klienta MySQL (np. mysql
) W jaki sposób mogę ustalić, czy jest on połączony z serwerem przy użyciu pliku gniazda Unix, czy przy użyciu protokołu TCP / IP?
Odpowiedzi:
Spróbuj użyć, netstat -ln | grep 'mysql'
a zobaczysz, jak jest połączony z wyjściem. jeśli masz dostęp do powłoki
W Uniksie programy MySQL traktują nazwę hosta localhost specjalnie w sposób, który prawdopodobnie różni się od oczekiwanego w porównaniu z innymi programami sieciowymi. W przypadku połączeń z hostem lokalnym programy MySQL próbują połączyć się z serwerem lokalnym przy użyciu pliku gniazda Unix.
Dzieje się tak, nawet jeśli podano opcję --port
lub, -P
aby określić numer portu.
Jeśli chcesz poznać typ połączenia z poziomu interfejsu mysql CLI, użyj polecenia „\ s” (status).
mysql> \s
Dane wyjściowe miałyby linię podobną do jednej z poniższych (w systemie Unix).
Connection: 127.0.0.1 via TCP/IP
lub
Connection: Localhost via UNIX socket
Aby upewnić się, że klient nawiązuje połączenie TCP / IP z serwerem lokalnym, użyj --host
lub, -h
aby określić wartość nazwy hosta 127.0.0.1 lub adres IP lub nazwę serwera lokalnego. Możesz także jawnie określić protokół połączenia, nawet dla localhost, używając --protocol=TCP
opcji. Na przykład:
shell> mysql --host=127.0.0.1
shell> mysql --protocol=TCP
Ta --protocol={TCP|SOCKET|PIPE|MEMORY}
opcja wyraźnie określa protokół używany do łączenia się z serwerem. Jest to przydatne, gdy inne parametry połączenia normalnie spowodowałyby użycie protokołu innego niż ten, który chcesz. Na przykład połączenia Unixa z hostem lokalnym są domyślnie wykonywane przy użyciu pliku gniazda Unix:
shell> mysql --host=localhost
Aby zamiast tego wymusić użycie połączenia TCP / IP, określ --protocol
opcję:
shell> mysql --host=localhost --protocol=TCP
Połączenie plików gniazda UNIX jest szybsze niż TCP / IP, ale można go używać tylko podczas łączenia z serwerem na tym samym komputerze.