Das Skript configure bietet Ihnen umfassende Kontrolle darüber, wie Sie Ihre MySQL-Quelldistribution konfigurieren. Normalerweise werden Sie dies mithilfe der Optionen von configure an der Befehlszeile tun. Sie können configure auch über bestimmte Umgebungsvariablen beeinflussen. Siehe auch Anhang F, Umgebungsvariablen. Eine Liste der Optionen, die von configure unterstützt werden, erhalten Sie nach Ausführen des folgenden Befehls:
shell> ./configure --help
In der Folge wollen wir einige der häufiger verwendeten Optionen von configure beschreiben:
Um nur die Clientbibliotheken und -programme von MySQL (und
nicht den Server) zu kompilieren, verwenden Sie die Option
--without-server
:
shell> ./configure --without-server
Wenn Sie keinen C++-Compiler haben, kann
mysql nicht kompiliert werden (dies ist
das einzige Clientprogramm, das C++ erfordert). In diesem
Fall können Sie den Code, der das Vorhandensein des
C++-Compilers prüft, aus configure
entfernen und dann ./configure mit der
Option --without-server
ausführen. In
diesem Fall wird bei der Kompilierung zwar versucht,
mysql zu erstellen, aber Sie können alle
Warnungen bezüglich mysql.cc
ignorieren. (Wenn make stehen bleibt,
geben Sie make -k ein, um das System
anzuweisen, die Erstellung auch bei Auftreten von Fehlern
abzuschließen.)
Wenn Sie die eingebettete MySQL-Bibliothek
(libmysqld.a
) erstellen wollen, verwenden
Sie die Option --with-embedded-server
.
Wenn Sie nicht wollen, dass Ihre Logdateien und die
Datenbankverzeichnisse in
/usr/local/var
abgelegt werden,
verwenden Sie configure in der Art wie
folgt:
shell>./configure --prefix=/usr/local/mysql
shell>./configure --prefix=/usr/local \
--localstatedir=/usr/local/mysql/data
Der erste Befehl ändert das Installationspräfix, sodass
alles in /usr/local/mysql
(statt wie
standardmäßig vorgesehen in
/usr/local
) installiert wird. Der
zweite Befehl belässt das Installationsstandardpräfix
zwar, ersetzt aber die Standardposition der
Datenbankverzeichnisse (normalerweise
/usr/local/var
) durch
/usr/local/mysql/data
.
Sie können die Positionen auch zum Zeitpunkt des Serverstarts angeben, indem Sie sie in die MySQL-Optionsdatei eintragen. Siehe auch Abschnitt 4.3.2, „my.cnf-Optionsdateien“.
Wenn Sie Unix verwenden und die MySQL-Socketdatei an einer
anderen Position als im Standardverzeichnis (normalerweise
/tmp
oder
/var/run
) ablegen wollen, verwenden Sie
den configure-Befehl wie folgt:
shell>./configure \
--with-unix-socket-path=/usr/local/mysql/tmp/mysql.sock
Der Socketdateiname muss ein absoluter Pfadname sein. Sie
können die Position von mysql.sock
mithilfe einer Optionsdatei auch zum Zeitpunkt des
Serverstarts einstellen. Siehe auch
Abschnitt A.4.5, „Wie Sie die MySQL-Socketdatei /tmp/mysql.sock
schützen oder ändern“.
Wenn Sie statisch verknüpfte Programme kompilieren wollen, um etwa eine Binärdistribution zu erstellen, die Leistung zu optimieren oder Probleme mit bestimmten Red Hat Linux-Distributionen zu umgehen, dann führen Sie configure wie folgt aus:
shell>./configure --with-client-ldflags=-all-static \
--with-mysqld-ldflags=-all-static
Wenn Sie gcc einsetzen und
libg++
oder libstdc++
nicht installiert haben, können Sie
configure anweisen,
gcc als C++-Compiler zu verwenden:
shell> CC=gcc CXX=gcc ./configure
Verwenden Sie gcc als C++-Compiler, dann
wird keine Verknüpfung mit libg++
oder
libstdc++
probiert. Dies kann auch dann
von Vorteil sein, wenn Sie die betreffenden Bibliotheken
installiert haben. In Verbindung mit einigen Versionen
dieser Bibliotheken sind bei MySQL-Benutzern in der
Vergangenheit nicht nachvollziehbare Probleme aufgetreten.
Die folgende Liste führt einige Compiler auf. Ferner aufgelistet sind die zugehörigen Einstellungen für Umgebungsvariablen.
gcc 2.7.2:
CC=gcc CXX=gcc CXXFLAGS="-O3 -felide-constructors"
egcs 1.0.3a:
CC=gcc CXX=gcc CXXFLAGS="-O3 -felide-constructors \ -fno-exceptions -fno-rtti"
gcc 2.95.2:
CFLAGS="-O3 -mpentiumpro" CXX=gcc CXXFLAGS="-O3 -mpentiumpro \ -felide-constructors -fno-exceptions -fno-rtti"
pgcc
2.90.29 oder höher:
CFLAGS="-O3 -mpentiumpro -mstack-align-double" CXX=gcc \ CXXFLAGS="-O3 -mpentiumpro -mstack-align-double \ -felide-constructors -fno-exceptions -fno-rtti"
In den meisten Fällen erhalten Sie eine vernünftig optimierte MySQL-Binärdatei, wenn Sie die Optionen der vorangegangenen Tabelle verwenden und die folgenden Optionen in der configure-Befehlszeile hinzufügen:
--prefix=/usr/local/mysql --enable-assembler \ --with-mysqld-ldflags=-all-static
Mit anderen Worten: Die vollständige configure-Zeile würde bei allen aktuellen gcc-Versionen ungefähr wie folgt aussehen:
CFLAGS="-O3 -mpentiumpro" CXX=gcc CXXFLAGS="-O3 -mpentiumpro \ -felide-constructors -fno-exceptions -fno-rtti" ./configure \ --prefix=/usr/local/mysql --enable-assembler \ --with-mysqld-ldflags=-all-static
Alle von uns auf der MySQL-Website unter http://dev.mysql.com/downloads/ bereitgestellten Binärdateien wurden mit optimalen Einstellungen kompiliert und sollten für die meisten Benutzer perfekt geeignet sein. Siehe auch Abschnitt 2.1.2.5, „MySQL-Binärdistributionen, die von MySQL AB kompiliert wurden“. Es gibt einige Konfigurationseinstellungen, durch deren Optimierung Sie eine noch schnellere Binärdatei erstellen können. Diese Einstellungen sind jedoch nur für fortgeschrittene Benutzer geeignet. Siehe auch Abschnitt 7.5.4, „Wie Kompilieren und Linken die Geschwindigkeit von MySQL beeinflusst“.
Schlägt die Erstellung fehl und werden Fehlermeldungen
erzeugt, weil Ihr Compiler oder Linker die gemeinsame
Bibliothek
libmysqlclient.so.
nicht erstellen konnte (wobei N
N
eine Versionsnummer ist), dann können Sie dieses Problem
umgehen, indem Sie die Option
--disable-shared
für
configure ergänzen. In diesem Fall
erstellt configure die gemeinsame
Bibliothek
libmysqlclient.so.
nicht.
N
Standardmäßig verwendet MySQL den Zeichensatz
latin1
(cp1252 West European). Um den
Standardzeichensatz zu ändern, verwenden Sie die Option
--with-charset
:
shell> ./configure --with-charset=CHARSET
CHARSET
kann einen der folgenden
Werte annehmen: big5
,
cp1251
, cp1257
,
czech
, danish
,
dec8
, dos
,
euc_kr
, gb2312
,
gbk
, german1
,
hebrew
, hp8
,
hungarian
, koi8_ru
,
koi8_ukr
, latin1
,
latin2
, sjis
,
swe7
, tis620
,
ujis
, usa7
oder
win1251ukr
. Siehe auch
Abschnitt 5.11.1, „Der für Daten und zum Sortieren benutzte Zeichensatz“.
Die Standardsortierung kann ebenfalls angegeben werden.
Standardmäßig verwendet MySQL die Sortierung
latin1_swedish_ci
. Um diese Sortierung zu
ändern, verwenden Sie die Option
--with-collation
:
shell> ./configure --with-collation=COLLATION
Wollen Sie Zeichensatz und Sortierung gleichzeitig ändern,
dann verwenden Sie einfach beide Optionen
--with-charset
und
--with-collation
. Die Sortierung muss für
den gewählten Zeichensatz zulässig sein. (Mit der
Anweisung SHOW COLLATION
können Sie die
für den jeweiligen Zeichensatz zulässige Sortierung
ermitteln.)
Wenn Sie Zeichen zwischen Server und Client konvertieren
wollen, dann sollten Sie einen Blick auf die Anweisung
SET NAMES
werfen. Siehe auch
Abschnitt 13.5.3, „SET
“, und
Abschnitt 10.4, „Verbindungszeichensatz und -sortierfolge“.
Warnung: Wenn Sie den
Zeichensatz ändern, nachdem Sie bereits Tabellen erstellt
haben, müssen Sie myisamchk -r -q
--set-collation=collation_name
für jede Tabelle ausführen.
Andernfalls werden Ihre Indizes unter Umständen falsch
sortiert. Dies kann passieren, wenn Sie MySQL installieren,
einige Tabellen erstellen und nachfolgend MySQL so
umkonfigurieren, dass ein anderer Zeichensatz verwendet
wird, und dann neu installieren.
Mit der configure-Option
--with-extra-charsets=
können Sie definieren, welche zusätzlichen Zeichensätze
in den Server einkompiliert werden sollen.
LIST
LIST
hat dabei einen der
folgenden Werte:
eine Liste von Zeichensatznamen, die durch Leerzeichen getrennt sind
complex
, wenn alle Zeichensätze
enthalten sein sollen, die sich nicht dynamisch laden
lassen
all
, wenn grundsätzlich alle
Zeichensätze in den Binärdateien enthalten sein sollen
Um MySQL mit Debugging-Code zu konfigurieren, verwenden Sie
die Option --with-debug
:
shell> ./configure --with-debug
Auf diese Weise wird eine sichere Speicherzuweisung in die Konfiguration integriert, die in der Lage ist, bestimmte Fehler zu finden und Informationen zu den Abläufen zu vermitteln. Siehe auch Abschnitt E.1, „Einen MySQL-Server debuggen“.
Wenn Ihre Clientprogramme Threads verwenden, müssen Sie
eine Thread-sichere Version der MySQL-Clientbibliothek mit
der Konfigurationsoption
--enable-thread-safe-client
erstellen. Auf
diese Weise wird eine Bibliothek
libmysqlclient_r
angelegt, mit der Sie
Ihre Thread-basierten Anwendungen verknüpfen sollten. Siehe
auch Abschnitt 24.2.15, „Wie man einen Thread-Client herstellt“.
Es ist möglich, MySQL mit Unterstützung für große
Tabellen zu erstellen. Hierzu verwenden Sie die Option
--with-big-tables
.
Diese Option sorgt dafür, dass die Variablen, die die
Ergebnisse der Datensatzzählungen enthalten, als
unsigned long long
statt als
unsigned long
gespeichert werden. Sie
erlaubt Tabellen die Aufnahme von ca. 1,844E+19
((232)2)
Datensätzen statt 232 (ca.
4,295E+09) Datensätzen. Zuvor war es notwendig gewesen,
-DBIG_TABLES
manuell an den Compiler zu
übergeben, um diese Funktion zu aktivieren.
Optionen, die spezifisch für bestimmte Betriebssysteme sind, finden Sie in den jeweiligen Abschnitten dieses Handbuchs. Siehe auch Abschnitt 2.12, „Betriebssystemspezifische Anmerkungen“.
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.