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
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:
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.
socket=mysql
[mysqld]
enable-named-pipes
socket=mysql
Finalmente, para conectar desde cualquier cliente, en el nombre del localhost debes especificar un punto ‘.’.
o bien, desde el cliente de línea de comandos de MySQL:
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


Jose
noviembre 25, 2009
como dejo la configuracion en linux o en unix (mac) para activar la conexion por tcp/ip, ya q en estos sistema viene configurado simpre por socket, y nececito conectarte desde otros puntos de la red, desactive el skip-networkin pero aun no puedo conectar po tcp/ip, no hay firewall, ni nada de eso , se cual es el puerto de conexion, pero no logro conectarme desde fuera, solo localmente, gracias
Luciano
noviembre 25, 2009
Por default MySQL no suele venir configurado con el skip-networking en off, al contrario.
De todas formas, para descartar el tema de la red, primero haz un ping, luego intenta hacer un telnet al puerto 3306 del servidor de base de datos. Si todo esto anda bien entonces no tenemos problemas con la red. También puedes hacer un netstat en el servidor para verificar que el proceso tengo abierto un puerto 3306 a la escucha de conexiones.
Saludos.