El script configure brinda un gran control sobre la configuración de una distribución de código fuente. Generalmente esto se hace por medio de las opciones que siguen a configure en la línea de comandos, aunque configure también se ve afectado por ciertas variables de entorno. Consulte Apéndice E, Variables de entorno. Para obtener una lista de las opciones aceptadas por configure, debe ejecutarse este comando:
shell> ./configure --help
A continuación se describen algunas de las opciones de configure más comunes:
            Para compilar solamente las bibliotecas cliente y los
            programas cliente de MySQL, sin el servidor, debe emplearse
            la opción --without-server.
          
shell> ./configure --without-server
            Si no se dispone de un compilador de C++, no se podrá
            compilar mysql (es el único programa
            cliente que necesita de C++). En este caso, se puede quitar
            de configure el código que comprueba la
            existencia del compilador C++ y luego ejecutar
            ./configure con la opción
            --without-server. El proceso de
            compilación igualmente intentará generar
            mysql, pero se puede ignorar cualquier
            advertencia acerca de mysql.cc. (Si
            make se detiene, debe intentarse con
            make -k, que continúa con el resto de la
            generación aún si ocurren errores).
          
            Si se deseara generar la biblioteca MySQL incrustada
            (libmysqld.a), debe utilizarse la opción
            --with-embedded-server.
          
            Si no se desea que los archivos de registro (logs) y los
            directorios de bases de datos se ubiquen dentro de
            /usr/local/var, se debe emplear un
            comando de configure similar a este:
          
shell> ./configure --prefix=/usr/local/mysql
shell> ./configure --prefix=/usr/local \
           --localstatedir=/usr/local/mysql/data
            El primer comando cambia el prefijo de instalación de modo
            que todo sea instalado en
            /usr/local/mysql en lugar de
            /usr/local. Els egundo comando conserva
            el prefijo de instalación por defecto, pero reemplaza la
            ubicación predeterminada de los directorios de datos
            (normalmente, /usr/local/var) y lo
            establece en /usr/local/mysql/data.
            Después de haber compilado MySQL, se pueden cambiar estas
            opciones con ficheros de opciones. consulte
            Sección 4.3.2, “Usar ficheros de opciones”.
          
            Si se está utilizando Unix y se desea que el socket MySQL
            se ubique en otro directorio que el preeterminado
            (normalmente en /tmp o
            /var/run), debe emplearse un comando
            configure similar a este:
          
shell> ./configure \
           --with-unix-socket-path=/usr/local/mysql/tmp/mysql.sock
            El nombre de fichero para el socket debe ser una ruta
            absoluta. También se puede modificar la ubicación de
            mysql.sock posteriormente, con un
            fichero de opciones MySQL. Consulte
            Sección A.4.5, “Cómo proteger o cambiar el fichero socket de MySQL
        /tmp/mysql.sock”.
          
Se se desea compilar programas con enlazado estático (por ejemplo, para hacer una distribución binaria, incrementar la velocidad, o solucionar problemas que ocurren con algunas distribuciones de Red Hat Linux) debe ejecutarse configure de esta manera:
shell> ./configure --with-client-ldflags=-all-static \
           --with-mysqld-ldflags=-all-static
            Si se está usando gcc y no se han
            instalado libg++ o
            libstdc++, se le puede indicar a
            configure que utilice
            gcc como compilador de C++:
          
shell> CC=gcc CXX=gcc ./configure
            Cuando se emplea gcc como compilador de
            C++, este no intenta enlazar con libg++ o
            libstdc++. Esta puede ser buena idea
            incluso si se dispone de estas bibliotecas, ya que algunas
            versiones de ellas causaron, en el pasado, problemas
            extraños a usuarios de MySQL.
          
La siguiente lista presenta algunos compiladores y la configuración de variables de entorno comúnmente utilizada con cada uno.
gcc 2.7.2:
CC=gcc CXX=gcc CXXFLAGS="-O3 -felide-constructors"
egcs 1.0.3a:
CC=gcc CXX=gcc CXXFLAGS="-O3 -felide-constructors \ -fno-exceptions -fno-rtti"
gcc 2.95.2:
CFLAGS="-O3 -mpentiumpro" CXX=gcc CXXFLAGS="-O3 -mpentiumpro \ -felide-constructors -fno-exceptions -fno-rtti"
                pgcc 2.90.29 o posterior:
              
CFLAGS="-O3 -mpentiumpro -mstack-align-double" CXX=gcc \ CXXFLAGS="-O3 -mpentiumpro -mstack-align-double \ -felide-constructors -fno-exceptions -fno-rtti"
En la mayoría de los casos, podrá obtenerse un binario MySQL razonablemente optimizado usando las opciones de la lista anterior, con el añadido de las siguientes opciones en la línea de configure:
--prefix=/usr/local/mysql --enable-assembler \ --with-mysqld-ldflags=-all-static
En otras palabras, la línea completa de configure tendría el siguiente aspecto para todas las versiones recientes de gcc:
CFLAGS="-O3 -mpentiumpro" CXX=gcc CXXFLAGS="-O3 -mpentiumpro \ -felide-constructors -fno-exceptions -fno-rtti" ./configure \ --prefix=/usr/local/mysql --enable-assembler \ --with-mysqld-ldflags=-all-static
Los binarios provistos en el sitio Web de MySQL en http://www.mysql.com/ están, en su totalidad, compilados con la máxima optimización y deberían ajustarse perfectamente a la mayoría de los usuarios. Consulte Sección 2.1.2.5, “Binarios de MySQL compilados por MySQL AB”. Existen algunas configuraciones que se pueden manipular para hacer un binario más rápido aún, pero se reservan para los usuarios avanzados. Consulte Sección 7.5.4, “Efectos de la compilación y del enlace en la velocidad de MySQL”.
            Si la generación falla y emite mensajes de error relativos
            a que el compilador o el enlazador no son capaces de crear
            la biblioteca compartida
            libmysqlclient.so.# (donde
            '#' es un número de versión), se puede
            resolver el problema pasándole la opción
            --disable-shared a
            configure. En este caso,
            configure no generará una biblioteca
            compartida libmysqlclient.so.#.
          
            Por defecto, MySQL emplea el conjunto de caracteres
            latin1 (ISO-8859-1). Para cambiar el
            conjunto de caracteres por defecto, se utiliza la opción
            --with-charset:
shell> ./configure --with-charset=CHARSET
            CHARSETpuede ser cualquiera entre
            los siguientes: big5,
            cp1251, cp1257,
            czech, danish,
            dec8, dos,
            euc_kr, gb2312,
            gbk, german1,
            hebrew, hp8,
            hungarian, koi8_ru,
            koi8_ukr, latin1,
            latin2, sjis,
            swe7, tis620,
            ujis, usa7, or
            win1251ukr. Consulte
            Sección 5.9.1, “El conjunto de caracteres utilizado para datos y ordenación”.
          
            En MySQL 5.0 también puede especificarse el tipo de
            comparación (collation) estándar. MySQL utiliza la
            comparación latin1_swedish_ci por
            defecto. Para cambiar esto se emplea la opción
            --with-collation:
          
shell> ./configure --with-collation=COLLATION
            Para cambiar tanto el conjunto de caracteres como la forma
            de comparación, se usan ambas opciones
            --with-charset y
            --with-collation. La forma de
            comparación debe ser apropiada para el conjunto de
            caracteres. (Para determinar qué tipos están disponibles
            para cada conjunto de carcateres se usa la sentencia
            SHOW COLLATION).
          
            Si se desean convertir caracteres entre el servidor y el
            cliente, se debería revisar la sentencia SET
            CHARACTER SET. Consulte
            Sección 13.5.3, “Sintaxis de SET”.
          
            Advertencia: si se cambia
            el conjunto de caracteres luego de haber creado tablas, se
            debe ejecutar myisamchk -r -q
            --set-character-set=charset
            en cada tabla. De otro modo, los
            índices podrían quedar incorrectamente ordenados. (Esto
            puede ocurrir si se instala MySQL, se crean algunas tablas,
            se reconfigura MySQL para usar un conjunto de caracteres
            diferente, y se lo reinstala).
          
            Con la opción de configure
            --with-extra-charsets=,
            pueden definirse conjuntos de caracteres adicionales para
            ser compilados dentro del servidor.
            LISTLIST debe ser uno de los
            siguientes:
            
una lista de nombres de conjuntos de caracteres separados por espacios
                  complex - para incluir todos los
                  conjuntos de caracteres que no pueden ser cargados
                  dinámicamente
                
                  all - para incluir en los binarios
                  todos los conjuntos de caracteres.
                
            Para configurar MySQL con código de depuración, debe
            usarse la opción --with-debug:
shell> ./configure --with-debug
Esto causa la inclusión de un asignador de memoria seguro que puede detectar algunos errores y brinda información de lo que está ocurriendo. Consulte Sección D.1, “Depurar un servidor MySQL”.
            Si los programas cliente utilizan subprocesos (threads),
            también se deberá compilar una versión a prueba de
            subprocesos (thread-safe) de la biblioteca cliente de MySQL,
            con la opción de configure
            --enable-thread-safe-client. Esto crea
            una biblioteca libmysqlclient_r con la
            cual se podrán enlazar las aplicaciones que emplean
            subprocesos. Consulte Sección 24.2.15, “Cómo hacer un cliente multihilo”.
          
            Ahora, a partir de MySQL 5.0.4, es posible generar a MySQL
            5.0 con soporte para tablas grandes, utilizando la opción
            --with-big-tables.
          
            Esta opción tiene por efecto que las variables utilizadas
            para llevar la cuenta de las filas de tablas se almacenen
            empleando un tipo unsigned long long en
            lugar de unsigned long. Esto permite
            mantener tablas con hasta aproximadamente 1.844E+19
            ((232)2)
            registros en vez de 232
            (~4.295E+09). Antes se hacía necesario pasar al compilador
            el argumento -DBIG_TABLES en forma manual
            con el fin de habilitar la misma característica.
          
Las opciones que pertenezcan a un sistema en particular se hallan en la sección de este manual dedicada específicamente a ese sistema. Consulte Sección 2.12, “Notas específicas sobre sistemas operativos”.
É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.

