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
CHARSET
puede 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.
LIST
LIST
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.