Cualquier cliente MySQL puede conectarse a MySQL de dos formas diferentes:

  • Utilizando TCP/IP, así, desde cualquier host de una red un cliente se podrá conectar al servidor (siempre y cuando tenga los permisos)
  • Utilizando sockets en cualquier sistema operativo basado en Unix o named-pipes en cualquier Windows basado en NT.

La conexión por socket, o por named-pipes, es más rápida que a través de TCP/IP, pero solo puede ser establecida localmente (desde el localhost).

En Unix, Linux o cualquiera de la familia, en el archivo my.cnf buscamos las secciones [client] y [mysqld] y verificamos, en ambas, la existencia de la entrada

socket = /tmp/mysqld.sock

Suele ser riesgoso guardar ese archivo en el /tmp, por lo que es más recomendable otro path. Por ejemplo, en la instalación de MySQL sobre Ubuntu, por default, especifica:

socket = /var/run/mysqld/mysqld.sock

De esta forma, en Unix, siempre que se realice una conexión a MySQL desde el localhost sin especificar el host, la misma se realiza a través del archivo de socket.

En Windows, para hacer lo mismo, deberemos utilizar named pipes en vez de sockets. En el archivo my.ini se debe agregar enable-named-pipes a la sección [mysqld], y opcionalmente, socket=nombre_del_pipe. El nombre del named-pipes por defecto es MySQL.

[client]
socket=mysql

[mysqld]
enable-named-pipes
socket=mysql

Finalmente, para conectar desde cualquier cliente, en el nombre del localhost debes especificar un punto '.'.

mysql -h . -u root -p

o bien, desde el cliente de línea de comandos de MySQL:

mysql --protocol=pipe -u root -p

Ahora, que puedes conectar a través de sockets, para aquellos casos en los cuales no se requiera conexión desde otros nodos de la red, únicamente desde el localhost, puedes configurar en la sección [mysql] skip-networking. De esta forma, se deshabilitarán todas las conexiones TCP/IP a la base de datos.

Vía: MySQL