Come posso determinare il metodo di connessione utilizzato da un client MySQL?


10

Quando si utilizza un client MySQL (ad es. mysql) Come posso determinare se è collegato al server usando un file socket Unix o usando TCP / IP?

Risposte:


13

Trovare il trasporto

Prova a usare netstat -ln | grep 'mysql'e puoi vedere come è collegato dall'output. se hai accesso alla shell

Su Unix, i programmi MySQL trattano il nome host localhost in modo speciale, in un modo che è probabilmente diverso da quello che ti aspetti rispetto ad altri programmi basati su rete. Per le connessioni a localhost, i programmi MySQL tentano di connettersi al server locale utilizzando un file socket Unix.

Ciò si verifica anche se viene fornita un'opzione --porto -Pper specificare un numero di porta.

Se Yould come per conoscere il tipo di connessione da dentro CLI mysql, utilizzare il comando '\' s (stato).

mysql> \s

L'output avrebbe una linea come una delle seguenti (su Unix).

Connection:             127.0.0.1 via TCP/IP

o

Connection:             Localhost via UNIX socket

Forzare un trasporto particolare

Per assicurarsi che il client stabilisca una connessione TCP / IP al server locale, utilizzare --hosto -hper specificare un valore del nome host di 127.0.0.1 o l'indirizzo IP o il nome del server locale. È inoltre possibile specificare esplicitamente il protocollo di connessione, anche per localhost, utilizzando l' --protocol=TCPopzione Per esempio:

shell> mysql --host=127.0.0.1
shell> mysql --protocol=TCP

L' --protocol={TCP|SOCKET|PIPE|MEMORY}opzione specifica esplicitamente un protocollo da utilizzare per la connessione al server. È utile quando gli altri parametri di connessione normalmente fanno sì che un protocollo venga utilizzato diverso da quello desiderato. Ad esempio, le connessioni su Unix a localhost vengono effettuate utilizzando un file socket Unix per impostazione predefinita:

shell> mysql --host=localhost

Per forzare invece una connessione TCP / IP, specificare --protocolun'opzione:

shell> mysql --host=localhost --protocol=TCP

Tipi di protocollo:

  • TCP: connessione TCP / IP al server locale o remoto. Disponibile su tutte le piattaforme.
  • PRESA: connessione file socket Unix al server locale. Disponibile solo su unix.
  • PIPE: connessione Named-pipe al server locale o remoto. Disponibile solo su Windows.
  • MEMORIA: connessione di memoria condivisa al server locale. Disponibile solo su Windows.

Una connessione al file socket Unix è più veloce di TCP / IP, ma può essere utilizzata solo quando ci si connette a un server sullo stesso computer.


@Anil: grazie, l'hai resa un'ottima risposta.
Eugene Yarmash,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.