Other Unix Notes
174
./configure --prefix=/usr/local \
--localstatedir=/var/mysql \
--sbindir='/usr/local/bin' \
--libexecdir='/usr/local/bin' \
--enable-thread-safe-client \
--enable-large-files
The preceding options are used to compile the MySQL distribution that can be found at
http://www-
frec.bull.com/
.
If you change the
-O3
to
-O2
in the preceding
configure
line, you must also remove the
-qstrict
option. This is a limitation in the IBM C compiler.
If you are using
gcc
to compile MySQL, you must use the
-fno-exceptions
flag, because the
exception handling in
gcc
is not thread-safe! There are also some known problems with IBM's
assembler that may cause it to generate bad code when used with
gcc
.
Use the following
configure
line with
gcc
2.95 on 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
The
-Wa,-many
option is necessary for the compile to be successful. IBM is aware of this problem
but is in no hurry to fix it because of the workaround that is available. We do not know if the
-fno-
exceptions
is required with
gcc
2.95, but because MySQL doesn't use exceptions and the option
generates faster code, you should always use it with
gcc
.
If you get a problem with assembler code, try changing the
-mcpu=xxx
option to match your CPU.
Typically
power2
,
power
, or
powerpc
may need to be used. Alternatively, you might need to use
604
or
604e
. We are not positive but suspect that
power
would likely be safe most of the time, even on a
power2 machine.
If you do not know what your CPU is, execute a
uname -m
command. It produces a string that looks
like
000514676700
, with a format of
xxyyyyyymmss
where
xx
and
ss
are always
00
,
yyyyyy
is a
unique system ID and
mm
is the ID of the CPU Planar. A chart of these values can be found at
http://
www16.boulder.ibm.com/pseries/en_US/cmds/aixcmds5/uname.htm
.
This gives you a machine type and a machine model you can use to determine what type of CPU you
have.
If you have problems with threads on AIX 5.3, you should upgrade AIX 5.3 to technology level 7
(5300-07).
If you have problems with signals (MySQL dies unexpectedly under high load), you may have found an
OS bug with threads and signals. In this case, you can tell MySQL not to use signals by configuring as
follows:
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
This doesn't affect the performance of MySQL, but has the side effect that you can't kill clients that are
“sleeping” on a connection with
mysqladmin kill
or
mysqladmin shutdown
. Instead, the client
dies when it issues its next command.
On some versions of AIX, linking with
libbind.a
makes
getservbyname()
dump core. This is an
AIX bug and should be reported to IBM.
For AIX 4.2.1 and
gcc
, you have to make the following changes.
Summary of Contents for 5.0
Page 1: ...MySQL 5 0 Reference Manual ...
Page 18: ...xviii ...
Page 60: ...40 ...
Page 396: ...376 ...
Page 578: ...558 ...
Page 636: ...616 ...
Page 844: ...824 ...
Page 1234: ...1214 ...
Page 1427: ...MySQL Proxy Scripting 1407 ...
Page 1734: ...1714 ...
Page 1752: ...1732 ...
Page 1783: ...Configuring Connector ODBC 1763 ...
Page 1793: ...Connector ODBC Examples 1773 ...
Page 1839: ...Connector Net Installation 1819 2 You must choose the type of installation to perform ...
Page 2850: ...2830 ...
Page 2854: ...2834 ...
Page 2928: ...2908 ...
Page 3000: ...2980 ...
Page 3122: ...3102 ...
Page 3126: ...3106 ...
Page 3174: ...3154 ...
Page 3232: ...3212 ...