Un cliente MySQL en Unix puede conectarse al servidor
        mysqld de dos maneras diferentes: Utilizando
        un archivo socket de Unix para conectarse a través de un
        archivo en el sistema de ficheros (por defecto
        /tmp/mysql.sock), o utilizando TCP/IP, que
        se conecta a través de un número de puerto. Una conexión a
        través de archivo socket de Unix es más rápida que a través
        de TCP/IP, pero solo puede ser utilizada cuando se conecta a un
        servidor en la misma máquina. Se utiliza un archivo de socket
        Unix siempre que no se especifique un nombre de servidor o si se
        especifica el nombre de servidor especial
        localhost.
      
        Si el servidor MySQL está ejecutándose en Windows 9x o Me,
        puede conectarse únicamente a través de TCP/IP. Si el servidor
        se está ejecutando sobre Windows NT, 2000, XP, o 2003 y ha sido
        iniciado con la opción --enable-named-pipe,
        puede también conectarse a través de named pipes si el cliente
        se está ejecutando en la misma máquina que el servidor. El
        nombre de la named pipe es por defecto MySQL.
        Si no se especifica un nombre de servidor al conectar a
        mysqld, un cliente MySQL intenta primero
        conectarse a la named pipe. Si esto no funciona, se conecta al
        puerto TCP/IP. Usted puede forzar la utilizaciónde named pipes
        en windows utilizando . como el nombre de
        servidor. hostname.
      
        El error (2002) Can't connect to ...
        normalmente significa que no hay un servidor MySQL ejecutándose
        en el sistema o que usted está especificando un archivo de
        socket Unix o número de puerto TCP/IP al intentar conectarse al
        servidor.
      
Comience por comprobar si hay un proceso llamado mysqld ejecutándose en el servidor. (Utilice ps xa | grep mysqld en Unix o el Administrador de tareas en Windows). Si no existe ese proceso, debería iniciar el servidor. Consulte Sección 2.9.2.3, “Arrancar y resolver problemas del servidor MySQL”.
        Si hay un proceso mysqld ejecutándose, puede
        comprobarlo ejecutando los siguientes comandos. El número de
        puerto o nombre del archivo socket de Unix pueden ser diferentes
        en su configuración. host_ip representa el
        número de IP de la máquina donde se está ejecutando el
        servidor.represents the IP number of the machine where the
        server is running.
      
shell> mysqladmin version shell> mysqladmin variables shell> mysqladmin -h `hostname` version variables shell> mysqladmin -h `hostname` --port=3306 version shell> mysqladmin -h host_ip version shell> mysqladmin --protocol=socket --socket=/tmp/mysql.sock version
        Tenga en cuenta la utilización de acentos abiertos en vez de
        comillas en el comando hostname; esto provoca
        que la salida de hostname (es decir, el
        nombre de máquina actual) sea sustituida en el comando
        mysqladmin. Si no tiene ningún comando
        hostname o está ejecutando sobre Windows,
        puede escribir manualmente el nombre de su máquina (sin acentos
        abiertos) tra la opción -h. También puede
        intentarlo con -h 127.0.0.1 para conectarse
        con TCP/IP a la máquina local.
      
        Aquí hay algunas razones por las que el error Can't
        connect to local MySQL server podría ocurrir:
      
mysqld no se está ejecutando. Compruebe la lista de procesos de sus sistema operativo para asegurarse de que el proceso mysqld está presente.
Usted está ejecutando un sistema que utiliza hilos tipo MIT-pthreads. Si está ejecutando un sistema que no tiene hilos antivos, mysqld utiliza el paquete de MIT-pthreads package. Consulte Sección 2.1.1, “Sistemas operativos que MySQL soporta”. Aún así, no todas las versiones de MIT-pthreads soportan los archivos socket de Unix. En un sistema sin soporte para archivos socket, siempre debe especificar el nombre de máquina explícitamente cuando se conecte al servidor. Intente utilizar este comando para comprobar la conexión con el servidor:
shell> mysqladmin -h `hostname` version
            Alguien ha borrado el archivo socket de Unix que
            mysqld utiliza
            (/tmp/mysql.sock por defecto). Por
            ejemplo, usted podría tener un trabajo de
            cron que elimine los archivos antiguos
            del directorio /tmp. Siempre puede
            ejecutar mysqladmin version para
            comprobar si el archivo socket de Unix que to check whether
            the Unix socket file that mysqladmin
            está intentando utilizar existe realmente. La solución en
            este caso es cambiar el trabajo de cron
            para que no elimine mysql.sock o
            colocar el archivo socket en algún otro lugar. Consulte
            Sección A.4.5, “Cómo proteger o cambiar el fichero socket de MySQL
        /tmp/mysql.sock”.
          
            Usted ha iniciado el servidor mysqld con
            la opción --socket=/path/to/socket, pero
            ha olvidado decirle al programa cliente el nuevo nombre del
            archivo socket. Si cambia la ruta del socket en el servidor,
            también tiene que notificárselo a los programas cliente.
            Puede hacer esto proporcionándole al cliente la misma
            opción --socket al ejecutarlo. También
            debe asegurarse de que los programas cliente tienen permiso
            para acceder al archivo mysql.sock.
            Para averiguar donde está almacenado el archivo, puede
            hacer:
          
shell> netstat -ln | grep mysql
            Consulte Sección A.4.5, “Cómo proteger o cambiar el fichero socket de MySQL
        /tmp/mysql.sock”.
          
            Usted está ejecutando Linux y un hilo del servidor ha
            muerto (volcado de memoria). En este caso, usted debe matar
            el resto de hilos de mysqld (por ejemplo,
            con kill o con el script
            mysql_zap) antes de que pueda reiniciar
            el servidor MySQL. Consulte Sección A.4.2, “Qué hacer si MySQL sigue fallando (crashing)”.
          
            El servidor o el programa cliente podrían no tener los
            privilegios de acceso adecuados para el directorio que
            almacena el archivo socket de Unix, o para el archivo mismo.
            En este caso, usted debe cambiar los privilegios del
            directorio o los del archivo mismo para que el servidor y
            los clientes puedan acceder a ellos, o reiniciar
            mysqld con una opción
            --socket que especifique un nombre de
            archivo de socket en un directorio donde el servidor pueda
            crearlo y los programas cliente puedan acceder a él.
          
        Si usted obtiene el mensaje de error Can't connect to
        MySQL server on some_host, puede intentar los
        siguientes procedimientos para averiguar cual es el problema:
      
            Compruebe si el servidor se está ejecutando en esa máquina
            mediante la ejecución de telnet some_host
            3306 y presionando la tecla Enter unas cuantas
            veces. (3306 es el puerto por defecto de MySQL. Cambie el
            valor si su servidor está escuchando en un puerto
            diferente.) Si hay un servidor MySQL ejecutándose y
            escuchando al puerto, debería obtener una respuesta que
            incluyera el número de versión del servidor. Si obtiene un
            error como telnet: Unable to connect to remote
            host: Connection refused, entonces no hay ningún
            servidor ejecutándose en el puerto dado.
          
            Si el servidor está ejecutándose en la máquina local,
            intente utilizar mysqladmin -h localhost
            variables para conectar utilizando el archivo
            socket de Unix. Colmpruebe el número de puerto TCP/IP al
            que el servidor está configurado para escuchar (es el valor
            de la variable port.)
          
            Asegúrese de que su servidor mysqld no
            fue iniciado utilizando la opción
            --skip-networking. Si lo fue no puede
            conectarse a él utilizando TCP/IP.
          
Compruebe que no hay un cortafuegos bloqueando el acceso a MySQL. Aplicaciones como ZoneAlarm o el cortafuegos personal de Windows XP podría necesitar ser configurados para permitir el acceso externo a un servidor MySQL.
Ésta es una traducción del manual de referencia de MySQL, que puede encontrarse en dev.mysql.com. El manual de referencia original de MySQL está escrito en inglés, y esta traducción no necesariamente está tan actualizada como la versión original. Para cualquier sugerencia sobre la traducción y para señalar errores de cualquier tipo, no dude en dirigirse a mysql-es@vespito.com.

