Como posso determinar o método de conexão usado por um cliente MySQL?

9

Ao usar um cliente MySQL (por exemplo, mysql ), como posso determinar se ele está conectado ao servidor usando um arquivo de soquete Unix ou usando TCP / IP?

    
por Eugene Yarmash 19.02.2012 / 20:29

1 resposta

12

Encontrando o transporte

Tente usar netstat -ln | grep 'mysql' e você pode ver como ela é conectada pela saída. se você tiver acesso ao shell

No Unix, os programas MySQL tratam o nome do host localhost especialmente, de uma forma que é provavelmente diferente do que você espera comparado a outros programas baseados em rede. Para conexões com o localhost, os programas do MySQL tentam se conectar ao servidor local usando um arquivo de soquete do Unix.

Isso ocorre mesmo se uma opção --port ou -P for especificada para especificar um número de porta.

Se você gostaria de saber o tipo de conexão de dentro da CLI do mysql, use o comando '\ s' (status).

mysql> \s

A saída teria uma linha como uma das seguintes (no Unix).

Connection:             127.0.0.1 via TCP/IP

ou

Connection:             Localhost via UNIX socket

Forçando um transporte particular

Para garantir que o cliente estabeleça uma conexão TCP / IP com o servidor local, use --host ou -h para especificar um valor de nome de host 127.0.0.1 ou o endereço IP ou o nome do servidor local. Você também pode especificar o protocolo de conexão explicitamente, mesmo para localhost, usando a opção --protocol=TCP . Por exemplo:

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

A opção --protocol={TCP|SOCKET|PIPE|MEMORY} especifica explicitamente um protocolo a ser usado para se conectar ao servidor. É útil quando os outros parâmetros de conexão normalmente causam a utilização de um protocolo diferente daquele que você deseja. Por exemplo, conexões em Unix para localhost são feitas usando um arquivo de soquete Unix por padrão:

shell> mysql --host=localhost

Para forçar uma conexão TCP / IP a ser usada, especifique uma opção --protocol :

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

Tipos de protocolo:

  • TCP: conexão TCP / IP para servidor local ou remoto. Disponível em todas as plataformas.
  • SOCKET: conexão de arquivo de soquete do Unix ao servidor local. Disponível apenas no unix.
  • PIPE: Conexão de pipe nomeado para servidor local ou remoto. Disponível somente no Windows.
  • MEMORY: Conexão de memória compartilhada ao servidor local. Disponível somente no Windows.

Uma conexão de arquivo de soquete Unix é mais rápida que o TCP / IP, mas pode ser usada somente ao conectar-se a um servidor no mesmo computador.

    
por 19.02.2012 / 21:15

Tags