Die aktuelle Portierung wird nur auf Systemen unter sco3.2v5.0.5, sco3.2v5.0.6 und sco3.2v5.0.7 getestet. Die Portierung auf sco3.2v4.2 ist ebenfalls weit fortgeschritten. Open Server 5.0.8 (Legend) bietet native Threads und unterstützt Dateien, die größer sind als 2 Gbyte. Das aktuelle Limit bei der Dateigröße liegt bei 2 Gbyte.
Wir konnten MySQL mit dem folgenden configure-Befehl unter OpenServer mit gcc 2.95.3 kompilieren.
CC=gcc CXX=gcc ./configure --prefix=/usr/local/mysql \
    --enable-thread-safe-client --with-innodb \
    --with-openssl --with-vio --with-extra-charsets=complex
gcc erhalten Sie unter ftp://ftp.sco.com/pub/openserver5/opensrc/gnutools-5.0.7Kj.
          Dieses Entwicklungssystem erfordert das OpenServer Execution
          Environment Supplement oss646B unter OpenServer 5.0.6 und
          oss656B und die in gwxlibs enthaltenen
          OpenSource-Bibliotheken. Alle OpenSource-Tools befinden sich
          im Verzeichnis opensrc. Sie finden sie
          unter
          ftp://ftp.sco.com/pub/openserver5/opensrc/.
        
Wir empfehlen die Verwendung des aktuellen Produktions-Releases von MySQL.
SCO stellt Betriebssystem-Patches unter ftp://ftp.sco.com/pub/openserver5 für OpenServer 5.0.[0-6] und unter ftp://ftp.sco.com/pub/openserverv5/507 für OpenServer 5.0.7 bereit.
Informationen zu behobenen Sicherheitslücken bietet SCO unter ftp://ftp.sco.com/pub/security/OpenServer für OpenServer 5.0.x an.
Die maximale Dateigröße auf einem OpenServer 5.0.x-System beträgt 2 Gbyte.
Die Gesamtmenge an Speicher, der für Stream-Puffer, CLISTs und Sperrdatensätze zugewiesen wird, darf unter OpenServer 5.0.x einen Wert von 60 Mbyte nicht überschreiten.
Stream-Puffer werden in Einheiten von 4096 Byte großen Seiten zugewiesen, CLISTs haben jeweils 70 Byte, und Sperrdatensätze sind je 64 Byte groß. Hieraus ergibt sich:
(NSTRPAGES * 4096) + (NCLIST * 70) + (MAX_FLCKREC * 64) <= 62914560
          Gehen Sie wie folgt vor, um die Option Database
          Services zu konfigurieren. Wenn Sie nicht genau
          wissen, ob eine Anwendung dies erfordert, schlagen Sie in der
          Dokumentation dieser Anwendung nach.
        
              Melden Sie sich als root an.
            
              Aktivieren Sie den SUDS-Treiber, indem Sie die Datei
              /etc/conf/sdevice.d/suds bearbeiten.
              Ändern Sie das N im zweiten Feld zu
              Y.
            
              Aktivieren Sie mithilfe von mkdev aio
              oder des Hardware/Kernel-Managers die Unterstützung für
              asynchrone Eingabe/Ausgabe und verknüpfen Sie den Kernel
              neu. Damit Benutzer Speicher für die Verwendung mit
              diesem E/A-Typ verriegeln können, aktualisieren Sie die
              Datei aiomemlock(F). Diese Datei
              sollte mit den Namen der Benutzer, die AIO verwenden
              dürfen, und der maximalen Speichermenge aktualisiert
              werden, die diese Benutzer sperren dürfen.
            
Viele Anwendungen verwenden setuid-Binärdateien, d. h., Sie müssen nur einen Benutzer angeben. Konsultieren Sie die Dokumentation zur fraglichen Anwendung, um zu ermitteln, ob dies bei dieser Anwendung der Fall ist.
Nachdem Sie den Vorgang abgeschlossen haben, starten Sie das System neu, um einen neuen Kernel zu erstellen, der diese Änderungen beinhaltet.
          Standardmäßig haben die Einträge in
          /etc/conf/cf.d/mtune folgende
          Einstellungen:
        
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
Wir empfehlen die Einstellung folgender Werte:
          NOFILES sollte 4096 oder 2048 sein.
        
          MAXUP sollte 2048 sein.
        
          Um Änderungen am Kernel vorzunehmen, wechseln Sie in das
          Verzeichnis /etc/conf/bin und nehmen die
          erforderlichen Änderungen mit ./idtune
          name parameter vor. Um
          beispielsweise SEMMS auf
          200 zu setzen, führen Sie folgende Befehle
          als root aus:
        
# cd /etc/conf/bin # ./idtune SEMMNS 200
          Wir empfehlen eine Optimierung des Systems. Welche
          Parameterwerte allerdings hierzu geeignet sind, hängt von der
          Anzahl der Benutzer, die auf die Anwendung oder Datenbank
          zugreifen, und von der Größe der Datenbank selbst (d. h.
          dem verwendeten Pufferpool) ab. Das Folgende betrifft die
          Kernel-Parameter, die in
          /etc/conf/cf.d/stune definiert sind:
        
          SHMMAX (Einstellempfehlung: 128 Mbyte) und
          SHMSEG (Einstellempfehlung: 15). Diese
          Parameter beeinflussen die MySQL-Datenbank-Engine bei der
          Erstellung der Benutzerpufferpools.
        
          NOFILES und MAXUP
          sollten auf mindestens 2048 gesetzt werden.
        
          MAXPROC sollte (abhängig von der Anzahl
          der Benutzer) auf mindestens 3000/4000 gesetzt werden.
        
          Ferner wird die Verwendung der folgenden Formel zur Berechnung
          der Werte für SEMMSL,
          SEMMNS und SEMMNU
          empfohlen:
        
SEMMSL = 13
13 hat sich als optimaler Wert sowohl für Progress als auch für MySQL erwiesen.
          SEMMNS = SEMMSL ×
          Anzahl der auf dem System ausgeführten Server
        
          Setzen Sie SEMMNS auf den Wert von
          SEMMSL multipliziert mit der maximalen
          Anzahl der Datenbankserver, die gleichzeitig auf Ihrem System
          ausgeführt werden.
        
SEMMNU = SEMMNS
          SEMMNU setzen Sie dann auf den gleichen
          Wert wie SEMMNS. Wahrscheinlich würde hier
          auch ein Wert von 75 Prozent von SEMMNS
          ausreichen, aber dies ist eine konservative Schätzung.
        
Sie müssen zumindest die "SCO OpenServer Linker and Application Development Libraries" oder das OpenServer Development System installieren, um gcc verwenden zu können. Das GCC Dev-System können Sie nicht nutzen, ohne mindestens eine dieser Komponenten zu installieren.
Zunächst sollten Sie sich jedoch das FSU-Pthreads-Paket beschaffen und es installieren. Sie finden es unter http://moss.csc.ncsu.edu/~mueller/ftp/pub/PART/pthreads.tar.gz. Eine vorkompilierte Fassung finden Sie unter ftp://ftp.zenez.com/pub/zenez/prgms/FSU-threads-3.14.tar.gz.
          FSU-Pthreads kann mit SCO Unix 4.2 mit tcpip oder aber
          mithilfe von OpenServer 3.0 oder Open Desktop 3.0 (OS 3.0 ODT
          3.0) mit installiertem SCO Development System kompiliert
          werden, wobei eine gute Portierung von GCC 2.5.x zum Einsatz
          kommen sollte. Für ODT oder OS 3.0 benötigen Sie eine gute
          Portierung von GCC 2.5.x. Ohne eine solche gute Portierung
          können eine Menge Probleme entstehen. Die Portierung für
          dieses Produkt erfordert das SCO Unix Development-System. Ohne
          dieses fehlen Ihnen die Bibliotheken und der erforderliche
          Linker. Ferner benötigen Sie
          SCO-3.2v4.2-includes.tar.gz. Diese Datei
          enthält die Änderungen an den Include-Dateien des SCO
          Development Systems, die für die Erstellung von MySQL
          benötigt werden. Sie müssen die vorhandenen
          System-Include-Dateien durch diese modifizierten
          Header-Dateien ersetzen. Sie erhalten sie unter
          ftp://ftp.zenez.com/pub/zenez/prgms/SCO-3.2v4.2-includes.tar.gz.
        
          Um FSU-Pthreads auf Ihrem System zu erstellen, sollten Sie
          nichts weiteres tun müssen, als GNU make
          auszuführen. Das Makefile in
          FSU-threads-3.14.tar.gz ist so konfiguriert, dass es
          FSU-threads erstellt.
        
          Sie können ./configure im Verzeichnis
          threads/src ausführen und die Option SCO
          OpenServer auswählen. Dieser Befehl kopiert
          Makefile.SCO5 nach
          Makefile. Danach führen Sie
          make aus.
        
          Zur Installation in das Standardverzeichnis
          /usr/include melden Sie sich als
          root und wechseln dann in das Verzeichnis
          thread/src. Dort führen Sie
          make install aus.
        
Denken Sie daran, GNU make zur Erstellung von MySQL zu verwenden.
          Hinweis: Wenn Sie
          mysqld_safe nicht als
          root starten, erhalten Sie nur die
          standardmäßig vorgesehenen 110 offenen Dateien pro Prozess.
          mysqld schreibt eine entsprechende
          Anmerkung in die Logdatei.
        
Bei SCO 3.2V4.2 sollten Sie FSU-Pthreads Version 3.14 oder höher verwenden. Der folgende configure-Befehl sollte funktionieren:
CFLAGS="-D_XOPEN_XPG4" CXX=gcc CXXFLAGS="-D_XOPEN_XPG4" \
./configure \
    --prefix=/usr/local/mysql \
    --with-named-thread-libs="-lgthreads -lsocket -lgen -lgthreads" \
    --with-named-curses-libs="-lcurses"
Unter Umständen treten Probleme mit einigen Include-Dateien auf. In diesem Fall finden Sie neue SCO-spezifische Include-Dateien unter ftp://ftp.zenez.com/pub/zenez/prgms/SCO-3.2v4.2-includes.tar.gz.
          Sie sollten diese Datei in das Verzeichnis
          include Ihres MySQL-Source-Trees
          entpacken.
        
Anmerkungen zur SCO-Entwicklung:
              MySQL sollte FSU-Pthreads automatisch erkennen und
              mysqld mit -lgthreads -lsocket
              -lgthreads verknüpfen.
            
Die SCO-Entwicklungsbibliotheken sind in FSU-Pthreads mehrfach aufrufbar. SCO behauptet, dass seine Bibliothek mehrfach aufrufbar ist, mithin muss sie also auch bei FSU-Pthreads mehrfach aufrufbar sein. FSU-Pthreads unter OpenServer versucht, mithilfe des SCO-Schemas mehrfach aufrufbare Bibliotheken zu erstellen.
              FSU-Pthreads wird mit GNU malloc
              verknüpft ausgeliefert (zumindest gilt dies für die
              Version unter ftp::/ftp.zenez.com). Wenn
              Probleme mit der Speichernutzung auftreten, vergewissern
              Sie sich, dass gmalloc.o in
              libgthreads.a und
              libgthreads.so enthalten ist.
            
              In FSU-Pthreads erkennen die folgenden Systemaufrufe das
              Vorhandensein von pthreads: read(),
              write(), getmsg(),
              connect(), accept(),
              select() und wait().
            
Der Patch CSSA-2001-SCO.35.2, der üblicherweise als Sicherheits-Patch erg711905-dscr_remap (version 2.0.0) gelistet ist, beschädigt FSU-Threads und macht mysqld instabil. Wenn Sie mysqld auf einem System unter OpenServer 5.0.6 verwenden wollen, müssen Sie diesen Patch entfernen.
              Setzen Sie SCO OpenServer 5 ein, dann müssen Sie unter
              Umständen FSU-Pthreads mit -DDRAFT7 in
              CFLAGS neu kompilieren. Andernfalls
              hängt sich InnoDB beim Start von
              mysqld auf.
            
SCO bietet Betriebssystem-Patches unter ftp://ftp.sco.com/pub/openserver5 für OpenServer 5.0.x.
              Fehlerbehebungen für Sicherheitslücken und
              libsocket.so.2 bietet SCO unter
              ftp://ftp.sco.com/pub/security/OpenServer
              und ftp://ftp.sco.com/pub/security/sse für
              OpenServer 5.0.x an.
            
              Sicherheitsrelevante Fehlerbehebungen für OpenServer vor
              OSR506 und den Bugfix für telnetd
              finden Sie unter
              ftp://stage.caldera.com/pub/security/openserver/
              oder
              ftp://stage.caldera.com/pub/security/openserver/CSSA-2001-SCO.10/
              als libsocket.so.2 und
              libresolv.so.1 mit Anweisungen zur
              Installation auf Systemen vor OSR506.
            
Es empfiehlt sich wohl, diese Patches vor der Kompilierung und Verwendung von MySQL zu installieren.
Ab Legend/OpenServer 6.0.0 gibt es native Threads, und die Beschränkung der Dateigröße auf 2 Gbyte entfällt.
Dies ist eine Übersetzung des MySQL-Referenzhandbuchs, das sich auf dev.mysql.com befindet. Das ursprüngliche Referenzhandbuch ist auf Englisch, und diese Übersetzung ist nicht notwendigerweise so aktuell wie die englische Ausgabe. Das vorliegende deutschsprachige Handbuch behandelt MySQL bis zur Version 5.1.

