Si ocurren problemas al compilar y se tienen instalados DEC CC y gcc, se debe intentar ejecutar configure de este modo:
CC=cc CFLAGS=-O CXX=gcc CXXFLAGS=-O3 \ ./configure --prefix=/usr/local/mysql
Si ocurren problemas con el fichero
c_asm.h
, se puede crear y utilizar un
fichero c_asm.h
"silencioso" con:
touch include/c_asm.h CC=gcc CFLAGS=-I./include \ CXX=gcc CXXFLAGS=-O3 \ ./configure --prefix=/usr/local/mysql
Tener en cuenta que los siguientes problemas con el programa ld pueden ser corregidos descargando el último conjunto de parches para DEC (Compaq) desde: http://ftp.support.compaq.com/public/unix/.
En OSF/1 V4.0D y el compilador "DEC C V5.6-071 on Digital Unix
V4.0 (Rev. 878)", el compilador tiene algún comportamiento
extraño (símbolos asm
indefinidos)
/bin/ld
también parece estar defectuoso
(durante el enlazado de mysqld ocurren
errores del tipo _exit undefined
). En estos
sistemas se optó por compilar MySQL con la siguiente línea
de configure, reemplazando
/bin/ld
con la versión para OSF 4.OC.
CC=gcc CXX=gcc CXXFLAGS=-O3 ./configure --prefix=/usr/local/mysql
Con el compilador Digital "C++ V6.1-029", se debería hacer lo siguiente:
CC=cc -pthread CFLAGS=-O4 -ansi_alias -ansi_args -fast -inline speed \ -speculate all -arch host CXX=cxx -pthread CXXFLAGS=-O4 -ansi_alias -ansi_args -fast -inline speed \ -speculate all -arch host -noexceptions -nortti export CC CFLAGS CXX CXXFLAGS ./configure --prefix=/usr/mysql/mysql \ --with-mysqld-ldflags=-all-static --disable-shared \ --with-named-thread-libs="-lmach -lexc -lc"
En algunas versiones OSF/1, la función
alloca()
está defectuosa. Esto se
soluciona quitando la línea de config.h
que define 'HAVE_ALLOCA'
.
La función alloca()
puede tener también
un prototipo incorrecto en
/usr/include/alloca.h
. Esta advertencia
resultante de esa situación puede ignorarse.
configure utiliza automáticamente la
siguiente libreria de subprocesos:
--with-named-thread-libs="-lpthread -lmach -lexc
-lc"
.
Al utilizar gcc, se debería ejecutar configure de este modo:
CFLAGS=-D_PTHREAD_USE_D4 CXX=gcc CXXFLAGS=-O3 ./configure ...
Si se tienen problemas con señales (MySQL termina abruptamente al someterlo a carga intensiva), puede tratarse de un error del SO relacionado con subprocesos y señales. En este caso, hay que indicarle a MySQL que no utilice señales, configurándolo como sigue:
CFLAGS=-DDONT_USE_THR_ALARM \ CXXFLAGS=-DDONT_USE_THR_ALARM \ ./configure ...
Esto no afecta el rendimiento de MySQL, pero tiene el efecto secundario de que no se pueden terminar procesos de clientes que están “durmiendo” (“sleeping”) en una conexión usando mysqladmin kill o mysqladmin shutdown. El cliente terminará cuando emita su siguiente comando.
Con gcc 2.95.2, se puede encontrar el siguiente error de compilación:
sql_acl.cc:1456: Internal compiler error in `scan_region', at except.c:2566 Please submit a full bug report.
Para solucionar esto, habría que posicionarse en el
directorio sql
, y cortar y pegar la última
línea de gcc, pero cambiando
-O3
por -O0
(o agregando
-O0
inmediatamente después de
gcc si no se tiene ninguna opción
-O
en la línea de compilación). Luego de
hacer esto, se puede volver al directorio principal
(top-level) y ejecutar nuevamente make.
É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.