La detección automática de xlC no se
          encuentra presente en Autoconf, de modo que habrá que
          inicializar una cantidad de variables antes de ejecutar
          configure. El siguiente ejemplo utiliza el
          compilador de IBM:
        
export CC="xlc_r -ma -O3 -qstrict -qoptimize=3 -qmaxmem=8192 "
export CXX="xlC_r -ma -O3 -qstrict -qoptimize=3 -qmaxmem=8192"
export CFLAGS="-I /usr/local/include"
export LDFLAGS="-L /usr/local/lib"
export CPPFLAGS=$CFLAGS
export CXXFLAGS=$CFLAGS
./configure --prefix=/usr/local \
                --localstatedir=/var/mysql \
                --sbindir='/usr/local/bin' \
                --libexecdir='/usr/local/bin' \
                --enable-thread-safe-client \
                --enable-large-files
Estas opciones se emplean para compilar la distribución MySQL que se encuentra en http://www-frec.bull.com/.
          Si se cambia el -O3 por
          -O2 en la linea de
          configure anterior, también habrá que
          quitar la opción -qstrict. Esto es una
          limitación en el compilador de C de IBM.
        
          Si se está empleando gcc o
          egcs para compilar MySQL, se
          debe utilizar el flag
          -fno-exceptions, porque la gestión de
          excepciones en gcc/egcs
          no es apta para subprocesos. (Esto se probó con
          egcs 1.1.) También hay algunos problemas
          conocidos con el ensamblador de IBM, el cual puede generar
          código defectuoso cuando se lo usa con
          gcc.
        
Se recomienda usar la siguiente línea de configure con egcs y gcc 2.95 en AIX:
CC="gcc -pipe -mcpu=power -Wa,-many" \ CXX="gcc -pipe -mcpu=power -Wa,-many" \ CXXFLAGS="-felide-constructors -fno-exceptions -fno-rtti" \ ./configure --prefix=/usr/local/mysql --with-low-memory
          La opción -Wa,-many se necesita para que
          el proceso de compilación tenga éxito. IBM está al tanto de
          este problema pero no tiene urgencia por resolverlo porque hay
          disponible una solución alternativa. No se sabe si
          -fno-exceptions se requiere con
          gcc 2.95, pero como MySQL no utiliza
          excepciones y la opción genera código más rápido, se
          recomienda usarlo siempre con egcs /
          gcc.
        
          Si se obtiene un problema con el código ensamblador, hay que
          cambiar la opción
          -mcpu= para
          que concuerde con la CPU del usuario. Generalmente puede
          necesitarse xxxpower2,
          power, o powerpc. O bien
          podría necesitarse 604 o
          604e. No está confirmado, pero se sospecha
          que power puede muy bien ser seguro la
          mayoría de las veces, incluso en un ordenador de 2
          procesadores.
        
          Si se desconoce el tipo de CPU que se posee, ejecutar un
          comando uname -m. Este produce una cadena
          con un aspecto similar a 000514676700, con
          el formato xxyyyyyymmss, donde
          xx y ss son siempre
          00, yyyyyy es un
          identificador único de sistema, y mm es el
          identificar de la arquitectura de la CPU. La tabla con estos
          valores se encuentra en
          http://www16.boulder.ibm.com/pseries/en_US/cmds/aixcmds5/uname.htm.
        
Esto proporciona el tipo y modelo del ordenador que se está usando.
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 CXX=gcc \
CXXFLAGS="-felide-constructors -fno-exceptions -fno-rtti \
-DDONT_USE_THR_ALARM" \
./configure --prefix=/usr/local/mysql --with-debug \
    --with-low-memory
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.
          En algunas versiones de AIX, el enlazado con
          libbind.a provoca que
          getservbyname() haga un volcado de núcleo.
          Este es un error en AIX y debería informarse a IBM.
        
Para AIX 4.2.1 y gcc, se deben hacer los siguientes cambios.
          Después de configurar, editar config.h y
          include/my_config.h y cambiar la línea
          que dice:
        
#define HAVE_SNPRINTF 1
a esto:
#undef HAVE_SNPRINTF
          Y, finalmente, en mysqld.cc, se
          necesitará agregar un prototipo para
          initgroups().
        
#ifdef _AIX41 extern "C" int initgroups(const char *,int); #endif
Si se necesita asginar mucha memoria para el proceso mysqld, no basta con utilizar ulimit -d unlimited. También habrá que modificar mysqld_safe agregando una línea como la siguiente:
export LDR_CNTRL='MAXDATA=0x80000000'
Se puede encontrar más información acerca de usar grandes cantidades de memoria en http://publib16.boulder.ibm.com/pseries/en_US/aixprggd/genprogc/lrg_prg_support.htm.
É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.

