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?
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:
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 --port
o -P
per 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
Per assicurarsi che il client stabilisca una connessione TCP / IP al server locale, utilizzare --host
o -h
per 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=TCP
opzione 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 --protocol
un'opzione:
shell> mysql --host=localhost --protocol=TCP
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.