Esta sección describe alguno de los probleas que pueden ocurrir al utilizar MIT-pthreads.
En Linux, no se deberían utilizar MIT-pthreads. En su lugar, utilizar la implementación de LinuxThreads instalada. Consulte Sección 2.12.1, “Notas sobre Linux”.
Si el sistema no provee soporte nativo para subprocesos, se necesita compilar MySQL utilizando el paquete MIT-pthreads. Esto incluye a antiguos sistemas FreeBSD, SunOS 4.x, Solaris 2.4 y anteriores, y algunos otros. Consulte Sección 2.1.1, “Sistemas operativos que MySQL soporta”.
El paquete MIT-pthreads no es parte de la distribución de código fuente de MySQL 5.0. Si se lo necesita, habrá que descargarlo desde http://www.mysql.com/Downloads/Contrib/pthreads-1_60_beta6-mysql.tar.gz.
        Luego de la descarga, debe expandirse dentro del más alto nivel
        del directorio de código fuente de MySQL. Creará un nuevo
        subdirectorio llamado mit-pthreads.
      
            En la mayoría de los sistemas, para forzar el uso de
            MIT-pthreads se debe ejecutar configure
            con la opción --with-mit-threads.
          
shell> ./configure --with-mit-threads
La generación (building) en un directorio que no sea de código fuente no está soportada cuando se usan MIT-pthreads porque se desea minimizar los cambios al código.
            La comprobación que determina si se utilizará MIT-pthreads
            sucede únicamente durante la parte del proceso de
            configuración que tiene que ver con el código del
            servidor. Si se ha configurado la distribución empleando
            --without-server para generar solamente
            el código del cliente, los clientes no saben si se está
            utilizando MIT-pthreads y emplean conexiones socket Unix por
            defecto. Dado que los ficheros socket de Unix no funcionan
            bajo MIT-pthreads en algunas plataformas, esto significa que
            se deberá utilizar -h o
            --host cuando se ejecuten programas
            cliente.
          
            Cuando se compila MySQL empleado MIT-pthreads, el bloqueo de
            sistema se deshabilita por defecto por razones de
            rendimiento. Se le puede indicar al servidor que emplee
            bloqueo de sistema con la opción
            --external-locking. Esto es necesario
            solamente si se desea poder ejecutar dos servidores MySQL
            sobre los mismos ficheros de datos, lo cual no es
            recomendable.
          
            Algunas veces, el comando bind() de
            pthread falla al adosarse a un socket sin emitir mensajes de
            error (al menos en Solaris). El resultado es que todas las
            conexiones al servidor fallan. Por ejemplo:
          
shell> mysqladmin version mysqladmin: connect to server at '' failed; error: 'Can't connect to mysql server on localhost (146)'
La solución a esto es finalizar el servidor mysqld y reiniciarlo. Esto ha ocurrido solamente cuando se ha detenido el servidor por la fuerza y se lo ha reiniciado inmediatamente.
            Con MIT-pthreads, la llamada de sistema
            sleep() no es interrumpida con
            SIGINT (interrupción). Esto solamente es
            perceptible cuando se ejecuta mysqladmin
            --sleep. Se debe esperar a que la llamada
            sleep() termine antes de que el pedido de
            interrupción sea atendido y el proceso se detenga.
          
Durante el enlazado, se pueden recibir mensajes de advertencia como los siguientes (al menos en Solaris); deben ser ignorados.
ld: warning: symbol `_iob' has differing sizes:
    (file /my/local/pthreads/lib/libpthread.a(findfp.o) value=0x4;
file /usr/lib/libc.so value=0x140);
    /my/local/pthreads/lib/libpthread.a(findfp.o) definition taken
ld: warning: symbol `__iob' has differing sizes:
    (file /my/local/pthreads/lib/libpthread.a(findfp.o) value=0x4;
file /usr/lib/libc.so value=0x140);
    /my/local/pthreads/lib/libpthread.a(findfp.o) definition taken
Algunas otras advertencias también deben ignorarse:
implicit declaration of function `int strtoll(...)' implicit declaration of function `int strtoul(...)'
            No se ha podido hacer funcionar readline
            con MIT-pthreads. (Esto no es necesario, pero podría ser de
            interés para alguien).
          
É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.

