(mysql.info.gz) Other Unix Notes
(mysql.info.gz) SCO UnixWare
188.8.131.52 SCO Notes
The current port is tested only on "sco3.2v5.0.5," "sco3.2v5.0.6," and
"sco3.2v5.0.7" systems. There has also been a lot of progress on a port
to "sco 3.2v4.2." Open Server 5.0.8(Legend) will have native threads
and allow files greater than 2GB. The current maximum file size is 2GB.
We have been able to compile MySQL with the following `configure'
command on OpenServer with `gcc' 2.95.3.
CC=gcc CXX=gcc ./configure --prefix=/usr/local/mysql \
--enable-thread-safe-client --with-innodb \
--with-openssl --with-vio --with-extra-charsets=complex
`gcc' is available at
This development system requires the OpenServer Execution Environment
Supplement oss646B on OpenServer 5.0.6 and oss656B and The OpenSource
libraries found in gwxlibs. All OpenSource tools are in the `opensrc'
directory. They are available at
We recommend using the latest production release of MySQL.
SCO provides operating system patches at
`ftp://ftp.sco.com/pub/openserver5' for OpenServer 5.0.[0-6] and
`ftp://ftp.sco.com/pub/openserverv5/507' for OpenServer 5.0.7.
SCO provides information about security fixes at
`ftp://ftp.sco.com/pub/security/OpenServer' for OpenServer 5.0.x.
The maximum file size on an OpenSever 5.0.x system is 2GB.
The total memory which could be allocated for streams buffers, clists
and lock records cannot exceed 60MB on OpenServer 5.0.x.
Streams buffers are allocated in units of 4096 byte pages, clists are 70
bytes each, and lock records are 64 bytes each, so:
(NSTRPAGES * 4096) + (NCLIST * 70) + (MAX_FLCKREC * 64) <= 62914560
Follow this procedure to configure the Database Services option. If you
are unsure whether an application requires this, see the documentation
provided with the application.
1. Log in as `root'.
2. Enable the SUDS driver by editing the `/etc/conf/sdevice.d/suds'
file. Change the `N' in the second field to a `Y'.
3. Use `mkdev aio' or the Hardware/Kernel Manager to enable support
for asynchronous I/O and relink the kernel. To allow users to lock
down memory for use with this type of I/O, update the
aiomemlock(F) file. This file should be updated to include the
names of users that can use AIO and the maximum amounts of memory
they can lock down.
4. Many applications use setuid binaries so that you need to specify
only a single user. See the documentation provided with the
application to see if this is the case for your application.
After you complete this process, reboot the system to create a new
kernel incorporating these changes.
By default, the entries in `/etc/conf/cf.d/mtune' are set as follows:
Value Default Min Max
----- ------- --- ---
NBUF 0 24 450000
NHBUF 0 32 524288
NMPBUF 0 12 512
MAX_INODE 0 100 64000
MAX_FILE 0 100 64000
CTBUFSIZE 128 0 256
MAX_PROC 0 50 16000
MAX_REGION 0 500 160000
NCLIST 170 120 16640
MAXUP 100 15 16000
NOFILES 110 60 11000
NHINODE 128 64 8192
NAUTOUP 10 0 60
NGROUPS 8 0 128
BDFLUSHR 30 1 300
MAX_FLCKREC 0 50 16000
PUTBUFSZ 8000 2000 20000
MAXSLICE 100 25 100
ULIMIT 4194303 2048 4194303
* Streams Parameters
NSTREAM 64 1 32768
NSTRPUSH 9 9 9
NMUXLINK 192 1 4096
STRMSGSZ 16384 4096 524288
STRCTLSZ 1024 1024 1024
STRMAXBLK 524288 4096 524288
NSTRPAGES 500 0 8000
STRSPLITFRAC 80 50 100
NLOG 3 3 3
NUMSP 64 1 256
NUMTIM 16 1 8192
NUMTRW 16 1 8192
* Semaphore Parameters
SEMMAP 10 10 8192
SEMMNI 10 10 8192
SEMMNS 60 60 8192
SEMMNU 30 10 8192
SEMMSL 25 25 150
SEMOPM 10 10 1024
SEMUME 10 10 25
SEMVMX 32767 32767 32767
SEMAEM 16384 16384 16384
* Shared Memory Parameters
SHMMAX 524288 131072 2147483647
SHMMIN 1 1 1
SHMMNI 100 100 2000
FILE 0 100 64000
NMOUNT 0 4 256
NPROC 0 50 16000
NREGION 0 500 160000
We recommend setting these values as follows:
`NOFILES' should be 4096 or 2048.
`MAXUP' should be 2048.
To make changes to the kernel, `cd' to `/etc/conf/bin' and use
`./idtune' NAME PARAMETER to make the changes. For example, to change
`SEMMS' to `200', execute these commands as `root':
# cd /etc/conf/bin
# ./idtune SEMMNS 200
We recommend tuning the system, but the proper parameter values to use
depend on the number of users accessing the application or database and
size the of the database (that is, the used buffer pool). The following
will affect the following kernel parameters defined in
`SHMMAX' (recommended setting: 128MB) and `SHMSEG' (recommended
setting: 15). These parameters have influence on the MySQL database
engine to create user buffer pools.
`NOFILES' and `MAXUP' should be at to at least 2048.
`MAXPROC' should be set to at least 3000/4000 (depends on number of
users) or more.
Also is recommended to use following formula to count value for
`SEMMSL', `SEMMNS' and `SEMMNU':
SEMMSL = 13
The 13 is what has been found to be the best for both Progress and
`SEMMNS' = `SEMMSL' * number of db servers to be run on the system.
Set `SEMMNS' to the value of `SEMMSL' multiplied by the number of db
servers (maximum) that you will be running on the system at one time.
SEMMNU = SEMMNS
Set the value of `SEMMNU' to equal the value of `SEMMNS'. You could
probably set this to 75% of `SEMMNS', but this is a conservative
You need to at least install the "SCO OpenServer Linker and Application
Development Libraries" or the OpenServer Development System to use
`gcc'. You cannot just use the GCC Dev system without installing one
You should get the FSU Pthreads package and install it first. This can
be found at
can also get a precompiled package from
FSU Pthreads can be compiled with SCO Unix 4.2 with tcpip, or using
OpenServer 3.0 or Open Desktop 3.0 (OS 3.0 ODT 3.0) with the SCO
Development System installed using a good port of GCC 2.5.x. For ODT or
OS 3.0, you will need a good port of GCC 2.5.x. There are a lot of
problems without a good port. The port for this product requires the
SCO Unix Development system. Without it, you are missing the libraries
and the linker that is needed. You will also need
`SCO-3.2v4.2-includes.tar.gz'. This file contains the changes to the
SCO Development include files that are needed to get MySQL to build.
You need to replace the existing system include files with these
modified header files. They can be obtained from
To build FSU Pthreads on your system, all you should need to do is run
GNU `make'. The `Makefile' in FSU-threads-3.14.tar.gz is set up to
You can run `./configure' in the `threads/src' directory and select the
SCO OpenServer option. This command copies `Makefile.SCO5' to
`Makefile'. Then run `make'.
To install in the default `/usr/include' directory, log in as `root',
then `cd' to the `thread/src' directory and run `make install'.
Remember that you must use GNU `make' when making MySQL.
* If you don't start `mysqld_safe' as `root', you probably will
get only the default 110 open files per process. `mysqld' will write a
note about this in the log file.
With SCO 3.2V4.2, you should use FSU Pthreads version 3.14 or newer.
The following `configure' command should work:
CFLAGS="-D_XOPEN_XPG4" CXX=gcc CXXFLAGS="-D_XOPEN_XPG4" \
--with-named-thread-libs="-lgthreads -lsocket -lgen -lgthreads" \
You may get some problems with some include files. In this case, you can
find new SCO-specific include files at
You should unpack this file in the `include' directory of your MySQL
SCO development notes:
bullet MySQL should automatically detect FSU Pthreads and link
`mysqld' with `-lgthreads -lsocket -lgthreads'.
bullet The SCO development libraries are re-entrant in FSU Pthreads.
SCO claims that its library functions are re-entrant, so they must
be re-entrant with FSU Pthreads. FSU Pthreads on OpenServer tries
to use the SCO scheme to make re-entrant libraries.
bullet FSU Pthreads (at least the version at `ftp::/ftp.zenez.com')
comes linked with GNU `malloc'. If you encounter problems with
memory usage, make sure that `gmalloc.o' is included in
`libgthreads.a' and `libgthreads.so'.
bullet In FSU Pthreads, the following system calls are
pthreads-aware: `read()', `write()', `getmsg()', `connect()',
`accept(),' `select()', and `wait()'.
bullet The CSSA-2001-SCO.35.2 (the patch is listed in custom as
erg711905-dscr_remap security patch (version 2.0.0)) breaks FSU
threads and makes `mysqld' unstable. You have to remove this one
if you want to run `mysqld' on an OpenServer 5.0.6 machine.
bullet SCO provides operating system patches at
`ftp://ftp.sco.com/pub/openserver5' for OpenServer 5.0.x.
bullet SCO provides security fixes and `libsocket.so.2' at
`ftp://ftp.sco.com/pub/security/sse' for OpenServer 5.0.x.
bullet Pre-OSR506 security fixes. Also, the `telnetd' fix at
as both `libsocket.so.2' and `libresolv.so.1' with instructions for
installing on pre-OSR506 systems.
It's probably a good idea to install these patches before trying
to compile/use MySQL.
Beginning with Legend, OpenServer will have native threads and no 2GB
file size limit.
(mysql.info.gz) Other Unix Notes
(mysql.info.gz) SCO UnixWare
automatically generated byinfo2html