MySQL-Referenzhandbuch für Version 4.1.1-alpha - 2 Vorbemerkungen zum deutschen Handbuch
Go to the first, previous, next, last section, table of contents.
Die Übersetzung einer so umfangreichen technischen Dokumentation wie des
MySQL-Referenzhandbuchs ist schon eine besondere Herausforderung.
Zumindest für jemanden, der seine Zielsprache ernst nimmt:
-
In diesem Handbuch wird nicht geupdated, sondern aktualisiert.
-
Eine MySQL-Distribution wird nicht gedownloaded, sondern herunter
geladen.
-
Und Transaktionen werden nicht gerollbackt, sondern zurückgerollt.
Womit wir auch schon bei der besonderen Herausforderung wären: Jeder,
der sich mit Transaktionen auskennt, weiß, dass beim Fehlschlagen einer
solchen ein Rollback-Befehl ausgeführt wird. Dieses Hauptwort ins
Deutsche zu übersetzen, würde zum Verständnis wenig beitragen - im
Gegenteil.
Damit bleiben alle technischen Fachbegriffe, die sich so und nicht
anders etabliert haben, englisch:
-
Ein SQL-Statement wird nicht als "Erklärung in der Strukturierten
AbfrageSprache (SAS)" übersetzt.
-
Abkürzungen wie TCP/IP werden nicht zu ÜSP/ZP
(ÜbertragungsSteuerungsProtokoll/ZwischennetzProtokoll).
-
Ein Client bleibt ein Client, und ein Server ein Server.
Die Fallstricke einer Übersetzung stecken allerdings in den Details:
-
Jeder SQL-Kenner weiß, was eine "query" ist. In diesem Handbuch ist
das eine Anfrage.
-
Gibt es Probleme bei der Übermittlung einer Anfrage, kann es sein,
dass eine Zeitüberschreitung eintritt. Der Profi hätte wahrscheinlich
nach "Timeout" gesucht.
-
Manche Dinge sind einfacher: Ein "string" ist eine Zeichenkette
(obwohl für Profis vielleicht ungewohnt), ein "hex value" ein
hexadezimaler Wert.
Richtig spannend wird die Übersetzung bei Wörtern, die in der deutschen
Fachsprache zumeist englisch verwendet werden, obwohl es passende
deutsche Entsprechungen gibt:
-
Im Hauptspeicher ("RAM") zwischengespeicherte Daten werden auf die
Festplatte zurückgeschrieben. Im Englischen heißt das "flushed to
disk", und im Deutschen werden die Daten häufig "geflushed".
-
Daten werden zwischengespeichert ("gecached").
-
Speicher wird zugewiesen. Man kann auch "alloziert" sagen, was dem
englischen "allocated" näher kommt.
Alle diese Entsprechungen, bei denen die deutsche Sprache eher in
Vergessenheit geraten ist, wurden zweisprachig aufgenommen. Beispiele:
-
Alle Daten werden zwischen Anfragen auf die Festplatte zurück
geschrieben (flush).
-
Aktualisieren Sie (Update), wenn alles in Ordnung ist.
-
Auf eine höhere Version von MySQL aktualisieren (Upgrade) ...
Gelegentlich wird auch in diesem Handbuch die "Performance getuned",
neue "Features" eines MySQL-"Release" werden beschrieben usw. Anregungen
für eine weiter gehende Eindeutschung nimmt der Übersetzer gern
entgegen. Insbesondere gilt das auch für Hinweise zur Verkürzung
deutscher Ausdrücke. Beispielsweise heißt "case sensitive" (14
Buchstaben) im Handbuch "abhängig von der verwendeten
Groß-/Kleinschreibung" (44 Buchstaben).
Letzter Punkt: Die Übersetzung erfolgte in äußerst enger Anlehnung an
das englischsprachige Original. Nichts wurde hinzugefügt (ausser diesem
Vorwort), geändert oder weggelassen (Ausnahme: die Geschichte der
Änderungen (ChangeLog) vor Version 3.23). Es liegt in der Natur der
Dinge, dass weder Original noch Übersetzung frei von Fehlern sind
(obwohl wir das anstreben). Berichten Sie bitte Übersetzungsfehler,
stilistische "Bugs", die das Verständnis beeinträchtigen und sonstige
Anmerkungen zur Übersetzung direkt an:
Stefan Hinz, handbuch@mysql.com
Berlin, im Februar 2002
Stefan Hinz, iConnect GmbH Berlin
Das ist ein Referenzhandbuch. Es enthält keine allgemeinen Anleitungen zu
SQL oder relationalen Datenbankkonzepten.
Da die MySQL Datenbank Software eine laufende Weiterentwicklung erfährt, wird
das Handbuch regelmäßig aktualisiert.
Die jeweils aktuellste Version dieses Handbuchs befindet sich unter
http://www.mysql.com/documentation/.
Dieses Handbuch ist gegenwärtig verfügbar in Texinfo, als Klartext
(plain text), Info, HTML, PostScript und PDF. Das Primärdokument ist die
Texinfo-Datei.
Die HTML-Version wird automatisch produziert, indem eine modifizierte
Version von texi2html benutzt wird. Die Klartext- und Info-
Versionen werden mit makeinfo hergestellt. Die PostScript-Version
wird mit texi2dvi und dvips produziert. Die PDF-Version
wird mit pdftex hergestellt.
Wenn Sie Schwierigkeiten haben, Informationen zu finden, beachten Sie bitte
auch die durchsuchbare PHP Version des Handbuchs unter
http://www.mysql.com/doc/.
Wenn Sie Vorschläge für Hinzufügungen oder Korrekturen dieses Handbuchs
haben, schicken Sie sie bitte an das Handbuch-Team:
docs@mysql.com.
Dieses Handbuch wurde geschrieben und wird gewartet von David Axmark,
Michael (Monty) Widenius, Jeremy Cole, und Paul DuBois. Andere
Kontributoren sind unter section C Danksagungen aufgelistet.
Die deutsche Übersetzung stammt von Stefan Hinz. Für die
Aktualität ist Jan Lehnardt zuständig.
Das Copyright (2002) für dieses liegt bei der schwedischen Firma
MySQL AB. See section 2.4.2 Copyrights und Lizenzen, die von MySQL verwendet werden..
Dieses Handbuch benutzt bestimmte typographische Konventionen:
constant
-
Schriftart gleicher Breite (nicht-proportionale Schrift) wird für
Befehle und Optionen benutzt, für SQL-Statements, Datenbank-, Tabellen-
und Spaltennamen, für C- und PERL-Code und für Umgebungsvariablen.
Beispiel: ``Um festzustellen, wie
mysqladmin funktioniert, rufen
Sie den Befehl mit der --help Option auf.''
- `filename'
-
Schriftart gleicher Breite, die von Anführungszeichen umgeben ist, wird
für Datei- und Pfadnamen benutzt. Beispiel: ``Die Distribution wird im
Verzeichnis `/usr/local/' installiert.''
- `c'
-
Schriftart gleicher Breite, die von Anführungszeichen umgeben ist, wird
auch benutzt um Zeichenfolgen anzuzeigen. Beispiel: ``Um ein
Platzhalterzeichen einzugeben, benutzen Sie das `%' Zeichen.''
- italic
-
Kursivschrift wird für Hervorhebungen verwendet, wie in diesem
Beispiel.
- boldface
-
Fettschrift wird für Namen von Zugriffsrechten verwendet (zum Beispiel:
``Gewähren Sie das process Zugriffsrecht nicht leichtfertig'')
und gelegentlich, um besonders starke Hervorhebungen zu kennzeichnen.
Wenn Befehle gezeigt werden, die durch ein bestimmtes Programm
ausgeführt werden sollen, wird dieses Programm durch einen Prompt
(Eingabeaufforderung) vor dem Befehl angezeigt. Der shell> Prompt
zum Beispiel zeigt an, dass Sie den Befehl von Ihrer Login-Shell aus
ausführen sollen. mysql> zeigt an, dass Sie den Befehl vom
mysql Client-Programm aus ausführen sollen:
shell> geben sie hier ein shell-kommando ein
mysql> geben sie hier ein mysql-kommando ein
Shell-Befehle werden mit der Bourne-Shell-Syntax dargestellt. Wenn Sie
eine csh-Shell benutzen, müssen die Befehle evtl. etwas anders
eingegeben werden. Das folgende Beispiel zeigt, wie mit der Bourne-Shell eine
Umgebungsvariable gesetzt wird und anschließend ein Befehl abgesetzt
wird:
shell> VARNAME=wert irgendein_befehl
Um csh auszuführen, würden Sie folgende Sequenz ausführen:
shell> setenv VARNAME wert
shell> irgendein_befehl
Oft müssen Datenbank-, Tabellen- und Spaltennamen in konkreten Befehlen
ersetzt werden. Um anzuzeigen, dass eine solche Ersetzung notwendig ist,
benutzt dieses Handbuch db_name, tbl_name und
col_name. Sie könnten zum Beispiel folgendes Statement sehen:
mysql> SELECT spalten_name FROM datenbank_name.tabellen_name;
Wenn Sie ein ähnliches Statement eingeben wollen, müssen Sie Ihre
eigenen Datenbank-, Tabellen- und Spaltennamen eingeben, zum Beispiel
wie folgt:
mysql> SELECT autor_name FROM bibliothek.autorenliste;
SQL-Statements können in Groß- und Kleinschreibung geschrieben werden.
Wenn dieses Handbuch SQL-Statements darstellt, wird Großschreibung
verwendet, um spezielle Schlüsselworte in diesem Kontext hervorzuheben.
Kleinschreibung wird für den Rest des Statements verwendet. Folgendes
könnten Sie im Kontext des SELECT Statements sehen:
mysql> SELECT count(*) FROM tabellen_name;
Im Kontext der COUNT() Funktion hingegen könnte dasselbe
Statement wie folgt geschrieben werden:
mysql> select COUNT(*) from tabellen_name;
Wenn keine besondere Hervorhebung beabsichtigt wird, werden alle
Schlüsselworte in Großschreibung dargestellt.
In Syntax-Beschreibungen werden eckige Klammern (`[' und `]')
benutzt, um wahlfrei (optionale) Wörter oder Klauseln anzuzeigen:
DROP TABLE [IF EXISTS] tabellen_name
Wenn ein Syntaxelement aus einer Anzahl von Alternativen besteht, werden
die Alternativen durch gerade Striche (`|') voneinander getrennt.
Wenn genau ein Element aus einer Anzahl von Möglichkeiten ausgewählt
werden (kann), werden die Alternativen mit eckigen Klammern
aufgelistet (`[' und `]'):
TRIM([[BOTH | LEADING | TRAILING] [remstr] FROM] str)
Wenn genau ein Element aus einer Anzahl von Möglichkeiten ausgewählt
werden muss, werden die Alternativen innerhalb geschweifter
Klammern aufgelistet (`{' und `}'):
{DESCRIBE | DESC} tbl_name {col_name | wild}
MySQL, die populärste Open Source SQL-Datenbank, wird von MySQL AB zur
Verfügung gestellt. MySQL AB ist ein kommerzielles Unternehmen, dessen
Geschäft darin besteht, Serviceleistungen rund um die MySQL-Datenbank
zur Verfügung zu stellen. See section 2.3 Was ist MySQL AB?.
- MySQL ist ein Datenbank-Managementsystem.
-
Eine Datenbank ist eine strukturierte Sammlung von Daten. Das kann alles
sein - von einer einfachen Einkaufsliste über eine Bildergalerie bis zu
riesigen Informationsmengen in einem Unternehmensnetzwerk. Um Daten zu
einer Computer-Datenbank hinzuzufügen, auf sie zuzugreifen und sie zu
verarbeiten, benötigen Sie ein Datenbank-Managementsystem wie MySQL. Weil
Computer sehr gut darin sind, große Datenmengen zu handhaben, spielt
Datenbank-Management eine zentrale Rolle im Computer-Bereich, sowohl bei
Anwendungen, die allein laufen (Stand-Alone-Utilities) als auch als Teil
anderer Anwendungen.
- MySQL ist ein relationales Datenbank-Managementsystem.
-
Eine relationale Datenbank speichert Daten in separaten Tabellen,
anstatt sie alle in einem einzigen großen Speicherraum unterzubringen.
Hierdurch werden hohe Geschwindigkeit und Flexibilität erreicht. Die
Tabellen werden durch definierte Beziehungen verbunden (Relationen), was
es möglich macht, Daten aus verschiedenen Tabellen auf Nachfrage zu
kombinieren. Der SQL-Teil von MySQL steht für "Structured Query
Language" (strukturierte Abfragesprache) - die verbreitetste
standardisierte Sprache für Datenbankzugriffe.
- MySQL ist Open-Source-Software.
-
Open Source bedeutet, dass es für jeden möglich ist, solche Software zu
benutzen und zu verändern. Jeder kann MySQL aus dem Internet herunter
laden und benutzen, ohne irgend etwas zu bezahlen. Jeder, der daran
interessiert ist, kann den Quelltext studieren und den eigenen
Bedürfnissen entsprechend verändern. MySQL benutzt die GPL (GNU
General Public License) http://www.gnu.org, um festzulegen, was
Sie mit der Software tun dürfen und was Sie nicht tun dürfen, abhängig
von unterschiedlichen Situationen. Wenn Ihnen die GPL Probleme bereitet
oder wenn Sie MySQL in eine kommerzielle Anwendung einbetten müssen,
können Sie eine kommerziell lizensierte Version von uns erwerben.
- Warum sollten Sie MySQL benutzen?
-
MySQL ist sehr schnell, zuverlässig und leicht zu benutzen. Wenn Sie
nach diesen Eigenschaften suchen, sollten Sie MySQL ausprobieren. MySQL
besitzt eine ganze Reihe praktischer Features, die in enger Kooperation
mit unseren Benutzern entwickelt wurden. Einen Performance-Vergleich
zwischen MySQL und einigen anderen Datenbank-Managementsystemen finden
Sie auf unserer Benchmark-Seite.
See section 6.1.4 Die MySQL-Benchmark-Suite.
MySQL wurde ursprünglich entwickelt, um sehr große Datenbanken
handhaben zu können, und zwar sehr viel schneller als existierende
Lösungen. Es wurde mehrere Jahre in höchst anspruchsvollen
Produktionsumgebungen eingesetzt. Heutzutage bietet MySQL eine
umfangreiche Reihe sehr nützlicher Funktionen. Connectivity,
Geschwindigkeit und Sicherheit machen MySQL äußerst geeignet, um auf
Datenbanken über das Internet zuzugreifen.
- Die technischen Features von MySQL
-
Weiter führende technische Informationen finden Sie unter
section 7 MySQL-Sprachreferenz. MySQL ist ein Client-Server-System, das aus einem
multi-thread SQL-Server besteht, der unterschiedliche Backends,
verschiedene Client-Programme und -Bibliotheken, Verwaltungswerkzeuge
und etliche Programmschnittstellen unterstützt.
Wir stellen MySQL auch als multi-thread Bibliothek zur Verfügung, die
Sie mit Ihren Anwendungen verknüpfen können, um ein kleineres,
schnelleres und leichter zu bedienendes Produkt zu erhalten.
- MySQL stellt beigesteuerte (contributed) Software in großer Menge
-
zur Verfügung.
Es ist sehr wahrscheinlich, dass Ihre Lieblingsanwendung oder -sprache
bereits MySQL unterstützt.
Offiziell wird MySQL 'Mai Ess Ku Ell' ausgesprochen (nicht 'Mai
Siekwel'). Wir vermeiden allerdings, Leute zu korrigieren, die
Mai-Siekwel sagen.
Wir fingen ursprünglich mit der Intention an, den mSQL-Code zu
benutzen, um unsere eigenen Tabellen anzusprechen, wobei wir unsere
eigenen schnellen Low-Level-Routinen (ISAM) benutzten. Nach einigem
Testen gelangten wir allerdings zur Überzeugung, dass mSQL weder
schnell noch flexibel genug wäre, um unsere Anforderungen abzudecken.
Dies resultierte in einer neuen SQL-Schnittstelle zu unserer Datenbank,
allerdings mit fast derselben API-Schnittstelle, wie sie mSQL
benutzt. Diese API wurde gewählt, weil sie es erlaubte, Code von
Drittanbietern einfach zu portieren. Die Entstehung des Namens MySQL ist
nicht völlig geklärt. Unser Basis-Verzeichnis und eine große Anzahl
unserer Bibliotheken und Werkzeuge hatten immer schon das Präfix ``my''
während mehr als 10 Jahren. Wie auch immer, auch Montys Tochter (einige
Jahre jünger) heißt My. Welcher der beiden Umstände MySQL den Namen
gab, ist immer noch ein Rätsel, sogar für uns.
Die folgende Liste beschreibt einige wichtige Charakteristika von MySQL:
-
Voll multi-thread unter Benutzung von Kernel-Threads. Das bedeutet, dass
Sie sehr einfach mehrere Prozessoren benutzen können, falls verfügbar.
-
C-, C++-, Eiffel-, Java-, Perl-, PHP-, Python- und Tcl-APIs. See section 9 MySQL-APIs.
-
Läuft auf vielen verschiedenen Plattformen. See section 3.2.2 Betriebssysteme, die von MySQL unterstützt werden.
-
Viele Spaltentypen: vorzeichenbehaftete / vorzeichenlose Ganzzahlen
(Integer), die 1, 2, 3, 4 und 8 Byte lang sind,
FLOAT,
DOUBLE, CHAR, VARCHAR, TEXT, BLOB,
DATE, TIME, DATETIME, TIMESTAMP,
YEAR, SET, und ENUM Typen.
See section 7.2 Spaltentypen.
-
Sehr schnelle Joins durch Benutzung eines optimierten Multi-Joins in
einem Durchgang (one-sweep multi-join).
-
Volle Operator- und Funktionsunterstützung in
SELECT- und
WHERE-Teilen von Anfragen. Beispiel:
mysql> SELECT CONCAT(vorname, " ", nachname) FROM tabellen_name
WHERE einkommen/dependents > 10000 AND age > 30;
-
SQL-Funktionen sind durch eine hoch optimierte Klassenbibliothek
implementiert und sollten so schnell sein, wie es geht! Üblicherweise
gibt es überhaupt keine Speicherzuordnung (memory allocation) nach der
Initialisierung von Anfragen.
-
Volle Unterstützung für SQL-
GROUP BY und ORDER BY-
Klauseln. Unterstützung für Gruppierungsfunktionen (COUNT(),
COUNT(DISTINCT ...), AVG(), STD(), SUM(),
MAX() und MIN()).
-
Unterstützung für
LEFT OUTER JOIN und RIGHT OUTER JOIN mit
ANSI-SQL und ODBC-Syntax.
-
Sie können Tabellen aus unterschiedlichen Datenbanken in ein und
derselben SQL-Anfrage benutzen (ab Version 3.22).
-
Ein System von Zugriffsberechtigungen und Passwörtern, das sehr flexibel
und sicher ist, und das Host-basierende Verifizierung erlaubt.
Passwörter sind sicher, weil jeder Passwort-Verkehr verschlüsselt wird,
wenn Sie sich mit einem Server verbinden.
-
ODBC (Open-DataBase-Connectivity) Unterstützung für Win32 (mit
Quelltext). Alle ODBC 2.5 Funktionen und viele weitere. Sie können zum
Beispiel MS Access benutzen, um sich mit Ihrem MySQL-Server zu
verbinden. See section 9.3 MySQL-ODBC-Unterstützung.
-
Sehr schnelle B-tree disk Tabellen mit Index-Kompression.
-
Bis zu 32 Indexe pro Tabelle erlaubt. Jeder Index kann aus 1 bis 16
Spalten oder Teilen von Spalten bestehen. Die maximale Indexlänge
beträgt 500 Bytes (das ändert sich evtl., wenn MySQL kompiliert wird).
Ein Index kann das Präfix eines
CHAR- oder VARCHAR-Felds
benutzen.
-
Datensätze fester und variabler Länge.
-
Im Arbeitsspeicher gehaltene Hash-Tabellen, die als temporäre Tabellen
benutzt werden.
-
Kann große Datenbanken handhaben. Wir selbst benutzen MySQL bei einigen
Datenbanken, die 50 Mio. Datensätze haben und wir kennen Benutzer, die
MySQL mit 60.000 Tabellen und etwa 5 Milliarden Zeilen benutzen.
-
Alle Spalten können Vorgabewerte (Defaults) haben. Sie können
INSERT
benutzen, um eine Untermenge der Tabellenspalten mit Werten zu
bestücken. Diejenigen Spalten, die nicht explizit angesprochen werden,
werden auf ihre Vorgabewerte gesetzt.
-
Benutzt GNU Automake, Autoconf und Libtool aus Portabilitätsgründen.
-
Geschrieben in C und C++. Getestet mit großen Anzahl verschiedener
Compiler.
-
Ein sehr schnelles Thread-basierendes Speicherzuordnungs-System (memory
allocation system).
-
Keine Speicherlecks (memory leaks). MySQL wurde mit Purify getestet,
einem kommerziellen Werkzeug zur Entdeckung von Speicherlecks.
-
Beinhaltet
myisamchk, ein sehr schnelles Dienstprogramm zur Überprüfung,
Optimierung und Reparatur von Tabellen. Die gesamte Funktionalität von
myisamchk steht auch über die SQL-Schnittstelle zur Verfügung.
See section 5 MySQL-Datenbankadministration.
-
Volle Unterstützung für mehrere unterschiedliche Zeichensätze, incl. ISO-
8859-1 (Latin1), big5, ujis und weitere. So sind zum Beispiel die
skandinavischen Zeichen `@ringaccent', `ä' und `ö' in Tabellen-
und Spaltennamen erlaubt.
-
Alle Daten werden mit dem ausgewählten Zeichensatz gespeichert. Alle
Vergleiche für normale Zeichenkettenvergleiche sind unabhängig von
Groß- und Kleinschreibung.
-
Die Sortierung ist abhängig vom gewählten Zeichensatz (schwedisch als
Vorgabe). Das kann beim Start des MySQL-Servers geändert werden. Um
beispielsweise eine sehr fortgeschrittene Sortierung zu sehen, sehen Sie
sich den tschechischen Sortier-Code an. MySQL unterstützt viele
unterschiedliche Zeichensätze, die bei der Kompilierung und während der
Laufzeit festgelegt werden können. Der neue Zeichensatz 'latin_de' sorgt
für eine korrekte deutsche Sortierreihenfolge.
-
Aliase auf Tabellen und Spalten sind erlaubt, wie im SQL92-Standard
festgelegt.
-
DELETE, INSERT, REPLACE und UPDATE geben die
Anzahl der Zeilen zurück, die geändert wurden (bzw. betroffen sind). Es
ist statt dessen auch möglich, die Anzahl der übereinstimmenden Zeilen
zurückzugeben, indem beim Verbindungsstart zum Server ein entsprechendes
Flag gesetzt wird.
-
Funktionsnamen kollidieren nicht mit Tabellen- oder Spaltennamen.
ABS zum Beispiel ist ein gültiger Spaltenname. Die einzige
Einschränkung besteht drin, dass in einem Funktionsaufruf keine
Leerzeichen zwischen Funktionsname und der öffnenden runden Klammer, die
diesem folgt `(', erlaubt ist. See section 7.1.6 Ist MySQL pingelig hinsichtlich reservierter Wörter?.
-
Alle MySQL-Programme können mit der
--help oder -? Option
aufgerufen werden, um Online-Hilfe zu erhalten.
-
Der Server kann Clients Fehlermeldungen in verschiedenen Sprachen zur
Verfügung stellen.
See section 5.6.2 Nicht englische Fehlermeldungen.
-
Clients können sich mit dem MySQL-Server über TCP/IP Sockets,
Unix Sockets (Unix) oder Named Pipes (NT) verbinden.
-
Der MySQL-spezifische
SHOW-Befehl kann benutzt werden, um
Informationen über Datenbanken, Tabellen und Indexe zu erhalten. Der
EXPLAIN-Code kann benutzt werden um festzustellen, wie der
Optimierer eine Anfrage auflöst.
Dieser Abschnitt beschäftigt sich mit den Fragen ``Wie stabil ist
MySQL?'' und ``Kann ich mich auf MySQL bei diesem Projekt verlassen?''
Wir werden versuchen, einige Dinge klar zu stellen und einige der
wichtigeren Fragen zu beantworten, die offensichtlich viele Leute
beschäftigen. Dieser Abschnitt wurde aus Informationen zusammen
gestellt, die aus der Mailing-Liste gesammelt wurden (die sehr aktiv
beim Berichten von Bugs ist).
Bei TcX funktioniert MySQL ohne jegliche Probleme in unseren Projekten
seit Mitte 1996. Als MySQL einer breiteren Öffentlichkeit zugänglich
gemacht wurde, fiel uns auf, dass es einige Teile von ``ungetestetem
Code'' gab, die schnell von neuen Benutzern gefunden wurden, die
Anfragen machten, die von unseren eigenen abwichen. Seitdem hat jedes
neue Release weniger Portabilitätsprobleme als das vorhergehende (obwohl
jedes viele neue Features hat).
Jedes Release von MySQL war benutzbar. Probleme gab es nur, wenn
Benutzer anfingen, Code aus den ``Grauzonen'' zu benutzen. Natürlich
wissen Benutzer von ausserhalb nicht, was diese Grauzonen sind, daher
versucht dieser Abschnitt, die momentan bekannten aufzuzeigen. Die
Beschreibungen hier beziehen sich auf Version 3.23 von MySQL. Alle
bekannten und berichteten Bugs werden in der letzten Version behoben,
mit Ausnahme der Bugs, die im Bugs-Abschnitt aufgelistet sind, was Dinge
sind, die auf das Design zurückzuführen sind. See section 2.7.5 Bekannte Fehler und Design-Unzulänglichkeiten in MySQL.
MySQL ist in mehrfachen Ebenen (Layers) und verschiedenen unabhängigen
Modulen geschrieben. Diese Module sind im Folgenden aufgeführt, wobei
angezeigt wird, wie gut getestet jedes von ihnen ist:
- Der ISAM Tabellen-Handler -- stabil
-
Dieser verwaltet Speicherung und Abfrage aller Daten in MySQL Version
3.22 und früher. In allen Releases von MySQL gab es nicht einen einzigen
(berichteten) Bug in diesem Code. Die einzige Möglichkeit, eine
zerstörte (korrumpierte) Tabelle zu erhalten, besteht darin, den Server
mitten während eines Updates zu killen. Selbst dadurch ist es
unwahrscheinlich, dass Daten unwiederbringlich zerstört werden, denn
alle Daten werden zwischen Anfragen auf die Festplatte zurück
geschrieben (flush). Es hat nicht einen einzigen Bug-Bericht gegeben, in
dem von verlorenen Daten aufgrund von MySQL-Bugs berichtet wurde.
- Der MyISAM Tabellen-Handler -- stabil
-
Dieser wurde in MySQL Version 3.23 hinzu gefügt. Er basiert zum großen
Teil auf dem ISAM Tabellen-Code, hat aber eine Menge neuer und sehr
nützlicher Features.
- Der Parser und lexikalische Analysator -- stabil
-
Es hat seit sehr langer Zeit keinen einzigen berichteten Bug in diesem
System gegeben.
- Der C Client-Code -- stabil
-
Keine bekannten Probleme. Im frühen 3.20 Release gab es einige
Einschränkungen hinsichtlich der Größe des Sende- / Empfangs-Puffers
(buffer size). Ab Version 3.21 ist die Puffergröße jetzt dynamisch, bis
zu einem Vorgabewert von 16 M.
- Standard-Client-Programme -- stabil
-
Dies beinhaltet
mysql, mysqladmin, mysqlshow,
mysqldump und mysqlimport.
- Basis-SQL -- stabil
-
Die grundlegenden SQL-Funktionen, Zeichenketten-Klassen und dynamisches
Speicher-Handling. Nicht ein einziger berichteter Bug in diesem System.
- Anfragen-Optimierer (Query optimizer) -- stabil
-
- Bereichs-Optimierer (Range optimizer) -- stabil
-
- Join-Optimierer (Join optimizer) -- stabil
-
- Sperren (Locking) -- Gamma
-
Dies ist sehr system-abhängig. Auf einigen Systemen gibt es große
Probleme, wenn Standard-Betriebssystem-Sperren verwendet wird
(
fcntl()). In solchen Fällen sollten Sie den MySQL-Daemon mit dem
Flag --skip-locking laufen lassen. Bekannt ist, dass solche
Probleme auf manchen Linux-Systemen vorkommen sowie auf SunOS, wenn NFS-
gemountete Dateisysteme verwendet werden.
- Linux-Threads -- stabil
-
Das hauptsächliche Problem fand sich im
fcntl()-Aufruf, der durch
Benutzung der --skip-locking-Option bei mysqld behoben
werden kann. Einige Leute haben Lockup-Probleme mit Version 0.5
berichtet. Linux-Threads müssen rekompiliert werden, wenn Sie mehr als
1000 gleichzeitige Verbindungen benutzen wollen. Obwohl es möglich ist,
so viele Verbindungen mit den vorgabemäßigen Linux-Threads laufen zu
lassen (obwohl man nie über 1021 kommen wird), macht das vorgabemäßige
Stack-Spacing von 2 MB die Applikation unstabil, und wir konnten einen
Coredump reproduzieren, nachdem 1021 Verbindungen im Leerlauf (idle
connections) hergestellt wurden. See section 3.6.1 Linux (alle Linux-Versionen).
- Solaris 2.5+ pthreads -- stabil
-
Wir benutzen dies für unsere gesamte Produktionsarbeit.
- MIT-pthreads (andere Systeme) -- stabil
-
Seit Version 3.20.15 gab es keine berichteten Bugs mehr, und keine
bekannten Bugs seit Version 3.20.16. Auf einigen Systemen gibt es ein
``Misfeature'', das heißt einige Operationen sind recht langsam (1/20
Sekunde Schlafzyklus zwischen jeder Anfrage). Natürlich können MIT-
Threads alles ein bisschen verlangsamen, aber Index-basierende
SELECT-Statements werden üblicherweise in einem Zeit-Frame
ausgeführt, also sollte es kein mutex locking/thread juggling geben.
- Andere Thread-Implementierungen -- Beta - Gamma
-
Die Ports zu anderen Systemen sind noch sehr neu und können Bugs haben,
möglicherweise auch in MySQL, aber in den meisten Fällen in der Thread-
Implementierung selbst.
LOAD DATA ..., INSERT ... SELECT -- stabil
-
Einige Leute dachten, hier Bugs gefunden zu haben, aber üblicherweise
haben sich diese als Missverständnisse heraus gestellt. Bitte sehen Sie
zuerst im Handbuch nach, bevor Sie Bugs berichten!
ALTER TABLE -- stabil
-
Einige Änderungen in Version 3.22.12.
- DBD -- stabil
-
Wird jetzt von Jochen Wiedmann gewartet
(wiedmann@neckar-alb.de). Danke!
mysqlaccess -- stabil
-
Geschrieben und gewartet von Yves Carlier
(Yves.Carlier@rug.ac.be). Danke!
GRANT -- stabil
-
große Änderungen in MySQL Version 3.22.12.
- MyODBC (benutzt ODBC SDK 2.5) -- Gamma
-
Scheint mit einigen Programmen gut zu laufen.
- Replikation -- Beta / Gamma
-
Wir arbeiten noch an der Replikation, also erwarten Sie nicht, dass
diese schon felsenfest steht. Auf der anderen Seite benutzen MySQL-
Benutzer diese bereits mit guten Resultaten.
- BDB-Tabellen -- Beta
-
Der Berkeley-Datenbank-Code ist sehr stabil, aber wir verbessern immer
noch die Schnittstelle zwischen MySQL und BDB-Tabellen, also wird es
einige Zeit dauern, bevor dies so gut wie andere Tabellentypen getestet
ist.
- InnoDB-Tabellen -- stabil
-
Der transaktionale Tabellen-Handler
InnoDB wurde im
MySQL 3.23-Baum stabil erklärt, ab Version 3.23.49.
InnoDB wird in großen hochbelasteten Produktionssystemen
eingesetzt.
- Automatische Wiederherstellung von MyISAM-Tabellen - Beta
-
Dies betrifft nur den neuen Code, der beim Öffnen einer Tabelle
nachsieht, ob diese korrekt geschlossen wurde und ein automatisches
Überprüfen / Reparieren der Tabelle ausführt, falls das nicht der Fall
war.
- MERGE-Tabellen -- Beta / Gamma
-
Die Benutzung von Schlüsseln bei
MERGE-Tabellen ist noch nicht
sehr ausgetestet. Der restliche Teile des MERGE-Codes ist recht
gut getestet.
- FULLTEXT -- Beta
-
Textsuche scheint zu funktionieren, wird aber noch nicht viel
eingesetzt.
MySQL AB stellt E-Mail-Support für zahlende Kunden bereit, aber die
MySQL-Mailingliste bietet üblicher Weise Antworten für die meisten
Fragen. Bugs werden meist direkt mit einem Patch behoben; für
schwerwiegende Bugs gibt es fast immer ein neues Release.
MySQL Version 3.22 hat eine Begrenzung auf 4G bei der Tabellengröße.
Mit dem neuen MyISAM in MySQL Version 3.23 wurde die maximale
Tabellengröße auf 8 Millionen Terabytes (2 ^ 63 bytes) hochgeschraubt.
Beachten Sie allerdings, dass Betriebssysteme ihre eigenen Dateigrößen-
Beschränkungen haben. Hier sind einige Beispiele:
| Betriebssystem | Dateigrößen-Beschränkung
|
| Linux-Intel 32 bit | 2G, 4G oder mehr, abhängig von der Linux-Version
|
| Linux-Alpha | 8T (?)
|
| Solaris 2.5.1 | 2G (möglich sind 4G mit Patch)
|
| Solaris 2.6 | 4G
|
| Solaris 2.7 Intel | 4G
|
| Solaris 2.7 ULTRA-SPARC | 8T (?)
|
Auf Linux 2.2 kann man größere Tabellen als 2G benutzen, wenn man den
LFS-Patch für das ext2 Dateisystem benutzt. Auf Linux 2.4 existiert
zusätzlich ein Patch für das ReiserFS, um Unterstützung für große
Dateien zu erhalten.
Letztlich wird die Tabellengröße für MySQL normalerweise durch das
Betriebssystem begrenzt.
Vorgabemäßig haben MySQL-Tabellen eine maximale Größe von etwa 4G. Sie
können die maximale Tabellengröße für eine Tabelle mit dem SHOW
TABLE STATUS-Befehl überprüfen oder mit myisamchk -dv
tabellen_name. See section 5.5.5 SHOW-Syntax.
Wenn Sie größere Tabellen als 4G benötigen (und Ihr Betriebssystem dies
unterstützt), sollten Sie die AVG_ROW_LENGTH- und
MAX_ROWS-Parameter benutzen, wenn Sie Ihre Tabelle anlegen.
See section 7.5.3 CREATE TABLE-Syntax. Sie können diese auch später setzen, mit
ALTER TABLE. See section 7.5.4 ALTER TABLE-Syntax.
Falls auf Ihre große Tabelle nur mit Lesezugriff zugegriffen wird
(read-only), können Sie auch myisampack benutzen, um mehrere
Tabellen zu vereinen (merge) und sie zu einer zu komprimieren.
myisampack komprimiert eine Tabelle üblicherweise mindestens um
50%, also können Sie effektiv viel größere Tabellen benutzen.
See section 5.7.4 myisampack, MySQL-Programm zum Erzeugen komprimierter Nur-Lese-Tabellen.
Sie können die Dateibegrenzung des Betriebssystems für MyISAM
Daten-Dateien umgehen, indem Sie die RAID-Option benutzen.
See section 7.5.3 CREATE TABLE-Syntax.
Eine weitere Lösung kann die MERGE-Bibliothek darstellen, die Ihnen
erlaubt, eine Sammlung identischer Tabellen zugleich zu benutzen.
See section 8.2 MERGE-Tabellen.
MySQL selbst hat keine Probleme mit der Jahr-2000-Konformität:
-
MySQL benutzt Unix-Zeitfunktionen und hat keine Probleme mit
Datumsangaben bis
2069. Alle zweistelligen Jahresangaben werden
als Angaben zwischen 1970 und 2069, betrachtet, was
bedeutet, dass, wenn Sie 01 in einer Spalte speichern, MySQL dies
als 2001 behandelt.
-
Alle MySQL Datumsfunktionen sind in einer Datei `sql/time.cc'
gespeichert und sehr sorgfältig kodiert, um Jahr-2000-sicher zu sein.
-
In MySQL Version 3.22 und später kann der neue Spaltentyp
YEAR
Jahre 0 und von 1901 bis 2155 in 1 Byte speichern
und sie mit 2 oder 4 Ziffern anzeigen.
Probleme können Sie bekommen, wenn Sie MySQL mit Applikationen benutzen,
die MySQL auf eine Art benutzen, die nicht Jahr-2000-sicher ist. Zum
Beispiel speichern oder ändern viele alte Applikationen Jahresangaben,
indem sie zweistellige Werte benutzen (was mehrdeutig ist), anstatt
vierstellige Werte zu nehmen. Dieses Problem kann durch Applikationen
verschlimmert werden, die Werte wie 00 oder 99 als Anzeiger
``fehlender'' Werte benutzen.
Leider sind diese Probleme möglicherweise schwer zu beheben, weil
verschiedene Applikationen von unterschiedlichen Programmierern
geschrieben sein können, von denen jeder einen anderen Satz von
Konventionen und Funktionen benutzt haben kann, was die Handhabung von
Datumsangaben betrifft.
Hier ist eine einfache Demonstration, die zeigt, dass MySQL keine
Probleme mit Datumsangaben bis zum Jahr 2030 hat:
mysql> DROP TABLE IF EXISTS y2k;
Query OK, 0 rows affected (0.01 sec)
mysql> CREATE TABLE y2k (date date, date_time datetime, time_stamp timestamp);
Query OK, 0 rows affected (0.00 sec)
mysql> INSERT INTO y2k VALUES
-> ("1998-12-31","1998-12-31 23:59:59",19981231235959),
-> ("1999-01-01","1999-01-01 00:00:00",19990101000000),
-> ("1999-09-09","1999-09-09 23:59:59",19990909235959),
-> ("2000-01-01","2000-01-01 00:00:00",20000101000000),
-> ("2000-02-28","2000-02-28 00:00:00",20000228000000),
-> ("2000-02-29","2000-02-29 00:00:00",20000229000000),
-> ("2000-03-01","2000-03-01 00:00:00",20000301000000),
-> ("2000-12-31","2000-12-31 23:59:59",20001231235959),
-> ("2001-01-01","2001-01-01 00:00:00",20010101000000),
-> ("2004-12-31","2004-12-31 23:59:59",20041231235959),
-> ("2005-01-01","2005-01-01 00:00:00",20050101000000),
-> ("2030-01-01","2030-01-01 00:00:00",20300101000000),
-> ("2050-01-01","2050-01-01 00:00:00",20500101000000);
Query OK, 13 rows affected (0.01 sec)
Records: 13 Duplicates: 0 Warnings: 0
mysql> SELECT * FROM y2k;
+------------+---------------------+----------------+
| date | date_time | time_stamp |
+------------+---------------------+----------------+
| 1998-12-31 | 1998-12-31 23:59:59 | 19981231235959 |
| 1999-01-01 | 1999-01-01 00:00:00 | 19990101000000 |
| 1999-09-09 | 1999-09-09 23:59:59 | 19990909235959 |
| 2000-01-01 | 2000-01-01 00:00:00 | 20000101000000 |
| 2000-02-28 | 2000-02-28 00:00:00 | 20000228000000 |
| 2000-02-29 | 2000-02-29 00:00:00 | 20000229000000 |
| 2000-03-01 | 2000-03-01 00:00:00 | 20000301000000 |
| 2000-12-31 | 2000-12-31 23:59:59 | 20001231235959 |
| 2001-01-01 | 2001-01-01 00:00:00 | 20010101000000 |
| 2004-12-31 | 2004-12-31 23:59:59 | 20041231235959 |
| 2005-01-01 | 2005-01-01 00:00:00 | 20050101000000 |
| 2030-01-01 | 2030-01-01 00:00:00 | 20300101000000 |
| 2050-01-01 | 2050-01-01 00:00:00 | 00000000000000 |
+------------+---------------------+----------------+
13 rows in set (0.00 sec)
Das zeigt, dass die DATE- und DATETIME-Typen für zukünftige
Datumsangaben keine Probleme bereiten werden (sie handhaben Datumsangaben
bis zum Jahr 9999).
Der TIMESTAMP-Typ, der zur Speicherung der aktuellen Zeit benutzt
wird, hat nur einen Bereich bis zu 2030-01-01. TIMESTAMP hat
einen Bereich von 1970 bis 2030 auf 32-Bit-Maschinen
(vorzeichenbehafteter Wert). Auf 64-Bit-Maschinen handhabt dieser
Spaltentyp bis zu 2106 (vorzeichenloser Wert).
Obwohl MySQL Jahr-2000-kompatibel ist, sind Sie dafür verantwortlich,
mehrdeutige Eingaben zu vermeiden. Siehe section 2.2.4 Jahr-2000-Konformität wegen
der Regeln, die MySQL anwendet, wenn mehrdeutige Datumsangaben gemacht
werden (Datumsangaben, die zweistellige Jahreswerte verwenden).
MySQL AB ist das Unternehmen der MySQL Gründer und Hauptentwickler.
MySQL AB wurde ursprünglich in Schweden von David Axmark, Allan Larsson
und Michael Monty Widenius gegründet.
Alle Entwickler des MySQL Servers sind Angestellte dieses Unternehmens.
Wir sind eine virtuelle Firma mit Mitarbeitern, die über die ganze Welt
verstreut in aller Herren Länder sitzen. Der Hauptteil unserer Kommunikation
untereinander, mit unseren Anwendern, Unterstützern und Partnern wird über
das Internet abgewickelt
Wir haben uns der Entwicklung und Verbreitung des MySQL Datenbankservers
verschrieben. MySQL hält das Copyright der MySQL Quelltexte, des MySQL Logos
und dieses Handbuchs.. See section 2.2 Was ist MySQL?.
Die MySQL-Kernwerte zeigen unsere Verpflichtung gegenüber MySQL und Open
Source.
Wir wollen, dass MySQL folgendes ist:
-
Die beste und meist benutzte Datenbank der Welt.
-
Verfügbar für alle. Alle sollen sich MySQL leisten können.
-
Leicht zu benutzen.
-
Kontinuierlich verbessert, trotzdem immer schnell und sicher bleibend.
-
Es soll Spass machen, MySQL zu benutzen und zu verbessern.
-
Frei von Bugs.
MySQL AB und die Leute von MySQL AB:
-
Verbreiten die Open-Source-Philosophie und unterstützen die
Open-Source-Community.
-
Bemühen sich, gute Bürger zu sein.
-
Bevorzugen Partner, die unsere Werte und unsere Geisteshaltung teilen.
-
Beantworten Mail und geben Support.
-
Sind ein virtuelles Unternehmen, das mit anderen im Netzwerk
zusammenarbeitet (networking).
-
Arbeiten gegen Software-Patente.
Eine der uns häufig gestellten Fragen ist: Wie kann man von etwas leben,
das man kostenlos abgibt? Hier ist die Antwort:
MySQL AB verdient Geld mit Support, Dienstleistungen, kommerziellen
Lizenzen und Lizenzgebühren, das wir dazu verwenden, die
Produktentwicklung zu finanzieren und die MySQL-Geschäftsfelder
auszubauen.
Unser Unternehmen läuft seit der Gründung profitabel. Im Oktober 2001
akzeptierten wir eine Risikokapitalfinanzierung durch führende
skandinavische Investoren und eine Handvoll Business-Angels. Die
Investitionen werden genutzt, um unser Geschäftsmodell auf solide Füße
zu stellen und eine Grundlage für nachhaltiges Wachstum zu schaffen.
MySQL AB gehört den Gründern und Haupt-Entwicklern der MySQL-Datenbank
und wird von ihnen betrieben. Die Entwickler fühlen sich verpflichtet,
Kunden und anderen Benutzern Support zu bieten, um mit deren
Bedürfnissen und Problemen in Kontakt zu bleiben. Unser gesamter Support
wird durch qualifizierte Entwickler geleistet. Wirklich schwierige
Fragen werden von Michael Monty Widenius beantwortet, der der
erste Entwickler des MySQL-Servers ist. See section 2.4.1 Support den MySQL AB anbietet.
Um Support unterschiedlicher Grade zu bestellen, besuchen Sie bitte die
Bestellseite unter https://order.mysql.com/. Wenn Sie nur
beschränkten Zugriff auf das Internet haben, setzen Sie sich bitte mit
unserem Vertrieb unter sales@mysql.com in Verbindung.
MySQL AB führt Schulungen zu MySQL und verwandten Themen weltweit durch.
Wir bieten sowohl offene Kurse als auch In-house-Trainings an, die auf
die speziellen Bedürfnisse Ihres Unternehmens zugeschnitten sind.
MySQL-Schulungen werden auch durch unsere Partner durchgeführt, die
Authorised MySQL Training Center.
Unsere Schulungsmaterialien benutzen dieselben Beispiel-Datenbanken wie
unsere Dokumentation und unsere Beispiel-Applikationen und werden
ständig aktualisiert, um den Entwicklungsstand der neusten MySQL-Version
widerzuspiegeln. Unsere Trainer erhalten Rückhalt vom Entwicklungsteam,
um die Trainingsqualität und die kontinuierliche Entwicklung des
Schulungsmaterials sicherzustellen. Das stellt auch sicher, dass keine
während der Kurse aufgetretenen Fragen unbeantwortet bleiben.
Wenn Sie an unseren Schulungen teilnehmen, können Sie sicher sein, die
Ziele zu erreichen, die Sie mit Ihren MySQL-bezogenen Applikationen
anstreben. Ausserdem haben Sie folgende Vorteile:
-
Sie sparen Zeit.
-
Sie verbessern die Performance Ihrer Applikation(en).
-
Sie verringern die Notwendigkeit zusätzlicher Hardware, was Kosten
spart.
-
Sie verbessern Ihre Sicherheit.
-
Sie erhöhen die Zufriedenheit Ihrer Kunden und Mitarbeiter.
-
Sie bereiten sich auf die MySQL-Zertifizierung vor.
Wenn Sie an unseren Schulungen Interesse als möglicher Teilnehmer oder
Trainingspartner haben, besuchen Sie bitte die Seite unter
http://www.mysql.com/training/. Wenn Sie nur beschränkten Zugriff
auf das Internet haben, setzen Sie sich bitte mit unserem
Trainingspersonal unter training@mysql.com in Verbindung.
Die Veröffentlichung des MySQL-Zertifizierungsprogramms ist für 2002
geplant. Details finden Sie unter
http://www.mysql.com/training/certification.html. Wenn Sie stets
die neusten Informationen über das MySQL-Zertifizierungsprogramm haben
wollen, schicken Sie bitte eine E-Mail an
certification@mysql.com.
MySQL AB und seine authorisierten Partner bieten Benutzern des
MySQL-Servers und denen, die ihn in ihre Software einbetten wollen,
Beratungsleistungen, weltweit.
Unsere Berater können Ihnen helfen, Ihre Datenbanken zu entwerfen und zu
optimieren, effiziente Anfragen zu konstruieren, Ihre Plattform auf
optimale Performance zu tunen, Migrationsprobleme zu lösen, Replikation
aufzusetzen, robuste transaktionale Applikationen zu bauen und vieles
mehr. Wir helfen auch Kunden dabei, den MySQL-Server für den
Großflächigen Einsatz in ihre Produkte und Applikationen einzubauen.
Unsere Berater arbeiten in enger Kooperation mit unserem
Entwicklungsteam, was die technische Qualität unserer Dienstleistungen
sicherstellt. Beratungsaufgaben erstrecken sich von zweitägigen
Power-Start-Sessions bis zu Projekten, die Wochen und Monate dauern.
Unsere Kompetenz deckt nicht nur den MySQL-Server ab, sondern auch
Programmier- und Skripting-Sprachen wie PHP, Perl und andere.
Wenn Sie an unseren Beratungsleistungen interessiert sind oder ein
Consulting-Partner werden wollen, besuchen Sie bitte unsere Seite unter
http://www.mysql.com/consulting/. Wenn Sie nur beschränkten
Zugriff auf das Internet haben, setzen Sie sich bitte mit unserem
Beratungspersonal unter consulting@mysql.com in Verbindung.
Die MySQL-Datenbank wird unter der GNU General Public License
veröffentlicht (GPL). Das bedeutet, dass die MySQL-Software
kostenlos unter der GPL benutzt werden darf. Wenn Sie nicht an die
GPL-Bedingungen gebunden sein wollen (was in der Folge bedeutet, dass
auch Ihre eigenen Applikationen GPL werden), können Sie eine
kommerzielle Lizenz für dasselbe Produkt unter
https://order.mysql.com/ erwerben.
Weil MySQL AB das Copyright am MySQL-Server besitzt, können wir eine
duale Lizensierung einsetzen, was heißt, dass dasselbe Produkt
sowohl unter der GPL als auch unter einer kommerziellen Lizenz
erhältlich ist. Das berührt in keiner Weise die Verpflichtung von MySQL
AB gegenüber Open Source. Wegen Details, wann eine kommerzielle
Lizenz erforderlich ist, sehen Sie bitte unter
section 2.4.4 MySQL-Lizenzpolitik nach.
Wir verkaufen auch kommerzielle Lizenzen von Open-Source-GPL-Software
Dritter. Ein gutes Beispiel hierfür ist der
InnoDB-Tabellen-Handler, der ACID-Unterstützung, Sperren auf
Zeilenebene, Wiederherstellung nach Abstürzen, Multiversionierung,
Fremdschlüsselunterstützung und vieles mehr bietet.
MySQL AB hat ein weltweites Partnerprogramm, dass Schulungskurse,
Support, Beratung, Lösungen, Publikationen plus Weiterverkauf und
Vertrieb von MySQL und verwandten Produkten beinhaltet. Partner
erscheinen unter http://www.mysql.com/ auf der Website und
erhalten das Recht, spezielle Versionen der MySQL-Schutzmarken zu
benutzen, um ihre Produkte zu identifizieren und ihr Geschäft
voranzutreiben. Wenn Sie interessiert sind, ein MySQL-AB-Partner zu
werden, schicken Sie bitte eine E-Mail an partner@mysql.com.
Das Wort MySQL und das MySQL-Delphin-Logo sind Schutzmarken von
MySQL AB. See section 2.4.3 MySQL-AB-Logos und -Schutzmarken.
Die MySQL-Website (http://www.mysql.com/) ist bei Entwicklern und
Benutzern beliebt. Im Oktober 2001 bedienten wir 10 Millionen
Seitenanfragen (PageViews). Unsere Besucher repräsentieren eine Gruppe,
die Kaufentscheidungen und Empfehlungen sowohl für Software als auch für
Hardware trifft. 12% unserer Besucher genehmigen Kaufentscheidungen,
lediglich 9% sind überhaupt nicht an Kaufentscheidungen beteiligt. Mehr
als 65% haben innerhalb des letzten halben Jahres online eingekauft, 70%
planen, in den nächsten Monaten einzukaufen. Wenn Sie Interesse haben,
Werbebanner auf unserer Website http://www.mysql.com/ zu
schalten, setzen Sie sich bitte mit advertising@mysql.com in
Kontakt.
Die MySQL Website (http://www.mysql.com/)
enthält die neusten Informationen über MySQL und MySQL AB.
Für Presseservice und Anfragen aller Art, die in unseren
Veröffentlichungen (http://www.mysql.com/news/) nicht
behandelt werden, wenden Sie sich bitte an
press@mysql.com.
Zeitnahe, präzise Antworten auf technische Fragen erhalten Sie, wenn Sie
unter order einen unserer
Support-Verträge abschließen.
MySQL-Support wird von den MySQL-Entwicklern geleistet, weshalb der
Standard extrem hoch ist.
Informationen über MySQL Trainig erhalten Sie unter
http://www.mysql.com/training/. Wenn Sie einen
eingeschränkten Internetzugang haben, kontaktieren Sie
bitte unser Trainingspersonal unter training@mysql.com.
See section 2.3.1.2 Training und Zertifizierung.
Für Informationen über das MySQL Zertifizierungsprogramm
erhalten Sie unter http://www.mysql.com/training/certification.html.
Wenn Sie weiterhin über das MySQL Zertifizierungsprogramm informiert
werden wollen, schreiben Sie eine E-Mail an certification@mysql.com.
See section 2.3.1.3 Beratung.
Kommerzielle Lizenzen können online unter https://order.mysql.com/
abgewickelt werden. Dort finden Sie ausserdem Informationen darüber,
wie Sie ihre Bestellung per Fax erledigen können. Wenn Sie Fragen bezüglich
der Lizensierung haben, oder Sie ein Angebot über eine größere Lizenzerteilung
erhalten wollen, füllen Sie bitte Das Kontaktformular auf unserer Website
(http://www.mysql.com/) aus, oder schicken Sie eine E-Mail
an licensing@mysql.com (für Lizenzfragen) oder an
sales@mysql.com (für Verkaufsinformationen).
See section 2.4.4 MySQL-Lizenzpolitik.
Wenn Sie daran interessiert sind, ein Werbebanner auf unserer Website
(http://www.mysql.com/) zu schalten, schicken Sie bitte
eine E-Mail an advertising@mysql.com.
See section 2.3.1.6 Werbung.
Wenn Sie ein Unternehmen vertreten, dass an einer Partnerschaft mit MySQL
interessiert ist, schicken Sie bitte eine E-Mail an
partner@mysql.com.
Für weitere Informationen über die MySQL Schutzmarkenbestimmungen, beachten
Sie bitte http://www.mysql.com/company/trademark.html oder kontaktieren
Sie trademark@mysql.com.
See section 2.4.3 MySQL-AB-Logos und -Schutzmarken.
Wenn Sie an einem der Jobs interessiert sind, die im
jobs-Abschnitt aufgeführt
sind, schicken Sie bitte eine E-Mail an jobs@mysql.com. Bitte
senden Sie ihre CV nicht als Anhang an dieser mail mit, sondern
fügen Sie sie lieber am Ende ihrer mail als Klartext (plain text) ein.
Allgemeine Diskussionen mit vielen unserer Benutzer können Sie auf den
entsprechenden
Mailing-Listen führen.
Fehlerberichte (Auch Bugreporte genannt), sowie Fragen und Kommentare, sollten
an die Mailingliste mysql@lists.mysql.com gehen. Wenn Sie
ein empfindliches Sicherheitsloch im MySQL Server gefunden haben, sollten
Sie eine E-Mail an security@mysql.com schreiben.
See section 2.6.2.3 Wie man Bugs oder Probleme berichtet.
Wenn Sie Benchmarkergebnis haben, die wir veröffentlichen können, kontaktieren
Sie uns unter benchmarks@mysql.com.
Wenn Sie Vorschläge für Hinzufügungen oder Korrekturen dieses Handbuchs
haben, schicken Sie sie bitte an das Handbuch-Team:
docs@mysql.com.
Fragen zur Arbeitsweise oder zu Inhalten unserer Website(http://www.mysql.com/)
stellen Sie bitte an webmaster@mysql.com.
Fragen über das MySQL Portal (http://www.mysql.com/portal/)
können an portals@mysql.com geschickt werden.
Die Datenschutzbestimmungen von MySQL AB können Sie unter
http://www.mysql.com/company/privacy.html einsehen.
Für irgendwelche Fragen darüber, wenden Sie sich bitte an
privacy@mysql.com.
Allgemeine Informationsanfragen schicken Sie bitte an info@mysql.com.
Dieser Abschnitt beschreibt die MySQL Support und Lizensierungsvereinbarungen
Wir versuchen, technischen Support in einem breiten und umfassenden
Blickwinkel zu sehen. Fast jedes Problem im Zusammenhang mit
MySQL-Software ist für uns wichtig, wenn es für Sie wichtig ist.
Typischerweise suchen Kunden Hilfe dabei, wie man unterschiedliche
Befehle und Dienstprogramme zum Funktionieren bringt, wie
Performance-Flaschenhälse beseitigt werden können, wie man beschädigte
Systeme repariert, wie sich Betriebssysteme oder Netzwerkkonfigurationen
auf MySQL auswirken, wie man Datensicherung und Wiederherstellung
optimal konfiguriert, wie man APIs benutzt usw.
Unser Support deckt nur den MySQL-Server und unsere eigenen
Dienstprogramme ab, nicht Produkte Dritter, die auf den MySQL-Server
zugreifen, obwohl wir auch hierbei versuchen, zu helfen wo wir können.
Detaillierte Informationen über unsere unterschiedlichen
Support-Optionen finden Sie auf https://order.mysql.com/, wo auch
Support-Verträge online bestellt werden können. Wenn Sie nur
beschränkten Zugriff auf das Internet haben, setzen Sie sich mit unserem
Vertrieb unter sales@mysql.com in Verbindung.
Technischer Support ist wie eine Lebensversicherung. Sie können
jahrelang ohne solches glücklich sein, doch wenn die Stunde schlägt,
kann es zu spät sein, diese(n) zu kaufen!
Wenn Sie den MySQL-Server für wichtige Applikationen nutzen und
plötzlich Problemen begegnen, kann es möglicherweise zu lange dauern,
alle Antworten selbst herauszufinden. Es kann daher sein, dass Sie
unmittelbaren Zugriff auf die erfahrensten MySQL-Problemlöser benötigen,
und da
MySQL AB besitzt das Copyright des MySQL Quellcodes,
der MySQL Logos and Schutzmarken und dieses Handbuch
See section 2.3 Was ist MySQL AB?.
Es gibt einige verschiedene Lizenzen, die für die MySQL Distribution
relevant sind:
-
Der MySQL-spezifische Quelltext, der benötigt wird, um die
mysqlclient-Bibliothek zu kompilieren, ist unter der LGPL
lizensiert. Programme im `client'-Verzeichnis sind GPL. Jede Datei hat
einen Header, aus dem ersichtlich ist, welches Copyright für diese Datei
gilt.
- Die Client-Bibliothek und die (GNU
getopt)-Bibliothek werden
von der ``GNU LIBRARY GENERAL PUBLIC LICENSE'' abgedeckt. See section I GNU LESSER GENERAL PUBLIC LICENSE.
-
Der gesamte Quelltext des Servers und der (GNU
readline)-Bibliothek
werden von der ``GNU GENERAL PUBLIC LICENSE'' abgedeckt. See section H GNU GENERAL PUBLIC LICENSE.
Diese findet sich unter anderem als Datei `COPYING' in den
Distributionen.
- Einige Teile des Quelltextes (die
regexp-Bibliothek) werden
von einem Copyright in Berkeley-Art abgedeckt.
-
Ältere Versionen von (3.22 und früher) stehen unter einer
strikteren Lizenz
(http://www.mysql.com/products/mypl.html).
Bitte beachten sie die Dokumentation der speziellen Version für
weitere Informationen.
-
Das Handbuch steht nicht unter einer GPL-artigen Lizenz.
Die Benutzung des Handbuchs unterliegt den folgenden Bestimmungen.
-
Die Konvertierung in andere Formate ist erlaubt, der Inhalt jedoch
darf auf keinen Fall geändert oder bearbeitet werden.
-
Sie können eine gedruckte Version für den Privaten Gebrauch erstellen
-
Für alle anderen Zwecke, wie den Verkauf von gedruckten Kopien
oder die Verwendung (auch in Teilen) des Handbuchs in anderen
Veröffentlichungen, ist eine vorherige Vereinbarung mit MySQL AB
erforderlich.
Bitte senden Sie eine E-Mail an docs@mysql.com für weitere Informationen
oder wenn Sie daran interessiert sind, eine Übersetzung zu erstellen.
Für Informationen darüber, wie die MySQL Lizenzen in der Praxis arbeiten
beachten Sie bitte section 2.4.4 MySQL-Lizenzpolitik.
Siehe auch section 2.4.3 MySQL-AB-Logos und -Schutzmarken.
Internet Service Provider (ISP) hosten oft MySQL-Server für ihre Kunden.
Aufgrund der GPL-Lizenz ist hierfür keine Lizensierung erforderlich.
Auf der anderen Seite ermutigen wir Leute, ISPs zu benutzen, die
MySQL-Support haben, und das wird ihnen Vertrauen geben, dass ihr ISP im
Falle von Problemen mit ihrer MySQL-Installation helfen wird, das Problem
zu lösen (in manchen Fällen mit der Hilfe des MySQL-Entwicklungsteams).
Alle ISPs, die auf dem neuesten Stand der Dinge bleiben wollen, sollten sich
in die announce-Mailing-Liste eintragen, um auf der Hut zu sein vor
schwerwiegenden Problemen, die für ihre MySQL-Installationen relevant sein
könnten.
Beachten Sie bitte, dass ein ISP ohne MySQL-Lizenz seinen Kunden zumindest
Lesezugriff auf den Quelltext der MySQL-Installation geben sollte, damit
die Kunden feststellen können, dass diese korrekt gepatcht ist.
Wenn Sie MySQL in Verbindung mit einem Webserver unter Unix betreiben,
brauchen Sie nicht für eine Lizenz zu bezahlen.
Das gilt selbst dann, wenn Sie einen kommerziellen Webserver betreiben, der
MySQL benutzt, weil Sie nicht selbst eine eingebettete MySQL-Version
verkaufen. Dennoch bitten wir Sie, in einem solchen Fall MySQL-Support zu
kaufen, weil MySQL Ihrem Unternehmen hilft.
Viele MySQL-Datenbankbenutzer wollen auf Ihren Websites, ihren Büchern
und Packungsprodukten das MySQL-AB-Delphin-Logo zeigen. Wir begrüßen
das und ermuntern dazu, weisen aber darauf hin, dass das Wort
MySQL und das MySQL-Delphin-Logo Schutzmarken von MySQL AB sind
und nur so benutzt werden dürfen, wie in unserer Schutzmarken-Richtlinie
unter http://www.mysql.com/company/trademark.html festgelegt.
Das MySQL-Delphin-Logo wurde von der finnischen Werbeagentur Priority im
Jahr 2001 entworfen. Der Delphin wurde als passendes Symbol für die
MySQL-Datenbank gewählt, weil er schlau, schnell und schlank ist und
mühelos durch die Daten-Ozeane navigiert. Ausserdem mögen wir Delphine.
Das Original-MySQL-Logo darf nur von Repräsentanten von MySQL AB und von
Personen benutzt werden, die eine schriftliche Erlaubnis hierfür haben.
Wir haben einen Satz spezieller Logos für vorbehaltliche
Benutzung angelegt, die von unserer Website unter
http://www.mysql.com/press/logos.html herunter geladen werden
können und von Dritten auf ihren Websites ohne schriftliche Erlaubnis
von MySQL AB benutzt werden dürfen. Der Gebrauch dieser Logos ist - wie
der Name anzeigt - nicht völlig uneingeschränkt, sondern unterliegt
unseren Schutzmarken-Richtlinien, die Sie auf unserer Website finden.
Sie sollten diese Richtlinien lesen, wenn Sie planen, die Logos zu
benutzen. Die Anforderungen sind im Wesentlichen:
-
Benutzen Sie das gewünschte Logo von der http://www.mysql.com/-
Site. Sie dürfen die Größe nach Ihren Bedürfnissen anpassen, aber keine
Farben oder das Design ändern noch die Grafik in sonstiger Form
verändern.
-
Heben Sie hervor, dass Sie - und nicht MySQL AB - der Betreiber und
Eigner der Site ist, auf der die MySQL-Schutzmarke gezeigt wird.
-
Sie dürfen die Schutzmarke nicht auf eine Weise benutzen, die MySQL AB
oder dem Wert der MySQL-AB-Schutzmarken schadet. Wir behalten uns das
Recht vor, das Recht zur Benutzung der MySQL-AB-Schutzmarke zu
widerrufen.
-
Wenn Sie die Schutzmarke auf einer Website benutzen, machen Sie sie
anklickbar, wobei direkt nach http://www.mysql.com/ verlinkt
wird.
-
Wenn Sie die MySQL-Datenbank unter GPL in einer Applikation benutzen,
muss Ihre Applikation (i) Open Source sein, (ii) in der Lage sein, sich
mit einem MySQL-Server zu verbinden.
Setzen Sie sich unter trademark@mysql.com mit uns in
Verbindung, um wegen spezieller Arrangements anzufragen, die Ihren
Bedürfnissen entsprechen.
In folgenden Fällen benötigen Sie eine schriftliche Erlaubnis von MySQL
AB, bevor Sie die MySQL-Logos benutzen:
-
Wenn Sie irgend ein MySQL-AB-Logo irgendwo ausser auf Ihrer Website
zeigen.
-
Wenn Sie irgend ein MySQL-AB-Logo ausser den oben erwähnten Logos zur
vorbehaltlichen Benutzung auf Websites oder anderswo anzeigen.
Aus rechtlichen und kommerziellen Gründen müssen wir die Benutzung der
MySQL-Schutzmarken auf Produkten, Büchern usw. beobachten. Üblicherweise
verlangen wir eine Gebühr für das Anzeigen von MySQL-AB-Logos auf
kommerziellen Produkten, weil wir der Meinung sind, das es vertretbar
ist, dass einige der Erlöse für die Weiterentwicklung der MySQL-
Datenbank zurückfließen.
MySQL-Partnerschafts-Logos dürfen nur von Unternehmen und Personen
benutzt werden, die eine schriftliche Partnerschaftsvereinbarung mit
MySQL AB haben. Partnerschaften beinhalten eine Zertifizierung als
MySQL-Trainer oder -Berater. Sehen Sie bitte unter
section 2.3.1.5 Partnerprogramme nach.
Die formalen Bedingungen der GPL-Lizenz stehen unter section H GNU GENERAL PUBLIC LICENSE.
Im Wesentlichen ist unsere Lizenzpolitik und die Interpretation der
GPL wie folgt:
Beachten Sie bitte, dass ältere Versionen von MySQL immer noch einer
strengeren
Lizenz unterliegen. Sehen Sie in der Dokumentation der betreffenden
Version wegen entsprechender Informationen nach. Wenn Sie eine kommerzielle
Lizenz benötigen, weil die GPL-Lizenz nicht zu den Anforderungen Ihrer
Applikation passt, können Sie eine Lizenz unter
https://order.mysql.com/ kaufen.
Für normalen internen Gebrauch kostet MySQL nichts. Sie brauchen uns nichts
zu bezahlen, wenn Sie nicht wollen.
Eine Lizenz wird benötigt:
-
Wenn Sie ein Programm, das nicht freie Software ist, mit Code des
MySQL-Servers oder der Client-Programme verbinden, die den GPL-Copyrights
unterliegen. Das ist zum Beispiel der Fall, wenn Sie MySQL als
eingebetteten Server (Embedded Server) in Ihren Applikationen benutzen,
oder wenn Sie dem MySQL-Server Erweiterungen hinzufügen, die nicht freie
Software sind. In diesen Fällen würden Ihre Applikation bzw. Ihr Code
ebenfalls GPL werden, weil die GPL in solchen Fällen wie ein Virus wirkt.
Sie können dieses Problem vermeiden, wenn Sie den MySQL-Server mit einer
kommerziellen Lizenz von MySQL AB erwerben.
Siehe http://www.gnu.org/copyleft/gpl-faq.html.
-
Wenn Sie eine kommerzielle Applikation haben, die NUR mit MySQL
funktioniert, und wenn Sie die Applikation zusammen mit dem MySQL-Server
ausliefern. Wir betrachten so etwas als Einbindung, selbst wenn es über das
Netzwerk geschieht.
-
Wenn Sie eine Distribution von MySQL besitzen und nicht den Quelltext für
Ihre Kopie des MySQL-Servers zur Verfügung stellen, so wie es in der
GPL-Lizenz festgelegt ist.
Eine Lizenz wird NICHT benötigt:
-
Sie benötigen keine Lizenz, wenn Sie den Client-Code in kommerzielle
Programme einschliessen. Der Client-Teil von MySQL unterliegt der
LGPL
GNU Library General Public License-Lizenz. Der
mysql-Kommandozeilen-Client beinhaltet Code der
readline-Bibliothek, die unter GPL steht.
-
Wenn Sie für Ihre Art der Benutzung von MySQL keine Lizenz benötigen, aber
MySQL mögen und die weitere Entwicklung fördern wollen, sind Sie herzlich
eingeladen, in jedem Fall eine Lizenz zu erwerben.
-
Wenn Sie MySQL in einem kommerziellen Zusammenhang benutzen und davon
profitieren, bitten wir Sie, dass Sie die Weiterentwicklung von MySQL
fördern, indem Sie einen bestimmten Grad von Support kaufen. Wir meinen,
dass es vernünftig ist, wenn wir Sie bitten, MySQL zu unterstützen, wenn
MySQL Ihren Geschäften hilft. (Ansonsten würde es bei Support-Anfragen
bedeuten, dass Sie nicht nur etwas für umsonst benutzen, in das wir eine
Menge Arbeit gesteckt haben, sondern dass Sie uns auch noch auffordern,
kostenlosen Support zu liefern.)
In Situationen, wo eine MySQL-Lizenz benötigt wird, brauchen Sie eine
Lizenz pro Maschine, auf der der MySQL-Server läuft. Eine
Mehrprozessor-Maschine zählt jedoch als eine einzelne Maschine, und es gibt
keine Beschränkung hinsichtlich der Anzahl von MySQL-Servern, die auf einer
Maschine laufen, oder hinsichtlich der Anzahl von Clients, die zur gleichen
Zeit mit einem Server verbunden sind, der auf dieser Maschine läuft!
Falls Sie nicht sicher sind, ob für Ihre spezielle Benutzung von MySQL eine
Lizenz erforderlich ist, lesen Sie diesen Abschnitt bitte nochmals, bevor
Sie uns kontaktieren. See section 2.3.1.7 Kontaktinformationen.
Wenn Sie eine MySQL-Lizenz benötigen, ist die Bezahlung am einfachsten,
wenn Sie das Lizenzformular auf dem Secure-Server von MySQL unter
https://order.mysql.com/ benutzen.
Präsentationen
MySQL AB begrüßt Verweise auf die MySQL-Datenbank, aber das Wort
MySQL ist eine Schutzmarke von MySQL AB. Deshalb müssen Sie der
ersten oder deutlichsten Erwähnung des Worts MySQL das
Schutzmarken-Symbol TM hinzufügen, und wo angebracht deutlich
machen, dass MySQL eine Schutzmarke von MySQL AB ist. Details
entnehmen Sie bitte unserer Schutzmarken-Richtlinie unter
http://www.mysql.com/company/trademark.html.
Produktnamen
Die Benutzung des Worts MySQL in Produkt- und Unternehmensnamen
oder in Internet-Domänen-Namen ist nur mit vorheriger schriftlicher
Erlaubnis durch MySQL AB gestattet.
Dateline: 16. Oktober 2001, Uppsala, Schweden
Lange durch MySQL AB angekündigt und lange von unseren Benutzern
erwartet: Der MySQL-Server 4.0 ist jetzt in der Alpha-Version zum
Herunterladen von http://www.mysql.com/ und unseren Mirrors
verfügbar.
Die neuen Haupt-Features des MySQL-Servers 4.0 sind eng mit unserem
bestehenden Geschäft und den Community-Nutzern verzahnt. Durch ihn wird
die MySQL-Datenbank-Software als Lösung für geschäftskritische
Schwerlast-Datenbanksysteme verbessert. Weitere neue Features zielen auf
die Benutzer eingebetteter Datenbanken.
Das Erscheinen des MySQL-Servers 4.0 wird in mehreren Schritten
erfolgen, wobei die erste Version 4.0.0 genannt wird und bereits die
meisten neuen Features enthält. Zusätzliche Features werden in die
Versionen 4.0.1, 4.0.2 usw. eingebaut, höchstwahrscheinlich innerhalb
weniger Monate. MySQL 4.0 wird als Beta gekennzeichnet. In MySQL 4.1
werden dann weitere neue Features hinzugefügt. Es wird angestrebt, das
Alpha-Release Anfang 2002 herauszubringen.
Es wird nicht empfohlen, Produktionssysteme auf den MySQL-Server 4.0
umzustellen, bis dieser in der Beta-Version veröffentlicht wird. Selbst
das anfängliche Release hat unsere ausgiebigen Tests ohne jegliche
Fehler durchlaufen, auf allen Plattformen, auf denen wir testen. Wegen
der großen Zahl neuer Features empfehlen wir daher den MySQL-Server
selbst in der Alpha-Version für Entwicklungsarbeiten, wobei in Betracht
gezogen werden kann, dass der MySQL-Server 4.0 das Stadium "stabil"
erreichen wird, bevor Applikationen hiermit veröffentlicht werden, die
jetzt im Entwicklungsstadium sind.
libmysqld macht den MySQL-Server für einen erheblich ausgedehnten
Bereich von Applikationen geeignet. Wenn man die eingebettete MySQL-
Server-Bibliothek benutzt, kann man den MySQL-Server in
unterschiedlichste Applikationen und elektronische Geräte einbetten, bei
denen der Endbenutzer keinerlei Ahnung davon hat, dass ihnen eine
Datenbank unterlegt ist. Der eingebettete MySQL-Server ist ideal für
Benutzung hinter den Kulissen in Internet-Geräten, öffentlichen Kiosken,
schlüsselfertigen Hardware-/Software-Einheiten, Hochlast-Internet-
Servern oder Datenbanken, die auf CD-ROM vertrieben werden.
Viele Benutzer von eingebettetem MySQL können von der dualen
Lizensierung der MySQL-Software profitieren. Neben der GPL-Lizenz sind
auch kommerzielle Lizenzen für diejenigen verfügbar, die nicht an die
GPL gebunden sein wollen. Die eingebettete MySQL-Bibliothek benutzt
dieselbe Schnittstelle wie die normale Client-Bibliothek und ist daher
angenehm und leicht zu benutzen. See section 9.4.9 libmysqld, die eingebettete MySQL-Server-Bibliothek.
-
Version 4.0 erhöht die Geschwindigkeit des MySQL-Servers in
einigen Bereichen noch weiter, zum Beispiel bei Massen-
INSERTs,
beim Suchen auf komprimierten Indexen, der Erzeugung von
FULLTEXT-Indexen oder auch bei COUNT(DISTINCT).
-
Der Tabellen-Handler
InnoDB wird jetzt als Feature des
standardmäßigen MySQL-Servers angeboten und enthält vollständige
Unterstützung für Transaktionen und Sperren auf
Zeilenebene.
-
Der MySQL-Server 4.0 unterstützt sichere Kommunikation zwischen Client
und Server, wodurch die Sicherheit gegen böswilliges Eindringen und
unbefugten Zugriff erheblich erhöht wird. Bei Web-Applikationen, die ein
Grundpfeiler der MySQL-Benutzung sind, konnten Web-Entwickler immer
schon SSL verwenden, um den Verkehr zwischen Endbenutzer-Browser und der
Web-Applikation zu sichern, sei sie nun in PHP, Perl, ASP oder mit
irgend einem anderen Web-Entwicklungswerkzeug geschrieben. Der Verkehr
zwischen dem Entwicklungswerkzeug und dem mysqld-Serverprozess konnte
bislang aber nur dadurch gesichert werden, dass die Prozesse auf
Computern innerhalb derselben Firewall residierten. Ab MySQL-Server 4.0
kann der mysqld-Server-Daemon-Prozess selbst
Secure Sockets
Layer (SSL) benutzen, was ihn in die Lage versetzt, eine sichere
Datenübertragung zwischen einer MySQL-Datenbank und beispielsweise einer
Windows-Applikation ausserhalb der Firewall aufzubauen.
-
Unsere deutschen, österreichischen und schweizerischen Benutzer werden
bemerken, dass es einen neuen Zeichensatz latin_de gibt, der die
deutsche Sortierreihenfolge beinhaltet, indem deutsche Umlaute in
derselben Sortierung erscheinen wie bei deutschen Telefonbüchern üblich.
-
Zu den Features, die die
Migration von anderen Datenbanksystemen
zum MySQL-Server erleichtern, gehören TRUNCATE TABLE (wie in
Oracle) und IDENTITY a1s Synonym für automatisch hochgezählte
Schlüssel (wie in Sybase). viele Benutzer werden sich auch darüber
freuen, dass der MySQL-Server jetzt das UNION-Statement
unterstützt, ein lang erwartetes Standard-SQL-Feature.
-
Bei der Erstellung neuer Features für neue Benutzer haben wir die
Gemeinschaft treuer Benutzer nicht vergessen. Es gibt jetzt Multi-
Tabellen-
DELETE-Statements. Durch das Hinzufügen von
Unterstützung für symbolisches Verknüpfen von MyISAM auf
Tabellenebene (und nicht nicht - wie bisher - auf Datenbankebene), sowie
durch das vorgabemäßige Anschalten der Verknüpfungen unter Windows
hoffen wir zeigen zu können, dass wir Verbesserungsvorschläge ernst
nehmen. Funktionen wie SQL_CALC_FOUND_ROWS und
FOUND_ROWS() ermöglichen herauszufinden, wie viele Zeilen eine
Anfrage ohne eine LIMIT-Klausel zurückgegeben hätte.
Für die kommenden Releases des MySQL-Servers 4.0 (4.0.1, 4.0.2 usw.)
können Sie folgende Features erwarten, die noch in der Entwicklung sind:
-
Benutzer des MySQL-Servers für geschäftskritische Hochlast-Anwendungen
werden die Ergänzungen unseres Replikationssystems und unsere Online-
"Hot"-Datensicherung begrüßen. Spätere Versionen von 4.0 werden
absturzsichere Replikation beinhalten, die es bereits in Version
4.0.0 gibt, sowie den LOAD DATA FROM MASTER-Befehl, der bald das
Aufsetzen von Slaves automatisieren wird. online backup wird das
Hinzufügen eines neuen Replikations-Slaves erleichtern, ohne dass man
den Master herunterfahren muss, und es gibt auf Systemen mit vielen
Aktualisierungen nur geringe Geschwindigkeitseinbussen.
-
Als Bequemlichkeits-Feature für Datenbank-Administratoren wird
hinzugefügt, dass mysqld-Parameter (Startoptionen) bald ohne das
Herunterfahren des Servers gesetzt werden können.
-
Die neuen Eigenschaften des MySQL-Servers 4.0 für die Volltext-
(
FULLTEXT)-Suche ermöglichen die FULLTEXT-Indexierung
großer Texte sowohl mit binärer wie auch mit natürlichsprachiger
Suchlogik. Benutzer können minimale Wortlängen anpassen und ihre
eigenen Stopp-Wort-Listen in jeder menschlichen Sprache festlegen,
wodurch gänzlich neue Applikationen ermöglicht werden, die auf dem
MySQL-Server aufbauen.
-
Viele Applikationen mit starkem Lesezugriff werden durch die noch weiter
erhöhte Geschwindigkeit des neu geschriebenen
Schlüssel-Caches
profitieren.
-
Viele Entwickler wird auch die
MySQL-Befehlshilfe im Client
freuen.
Intern wird durch das neue .frm-Dateiformat für Tabellendefinitionen in
MySQL-Server 4.0 die Grundlage für neue Features in MySQL-Server 4.1
gelegt, beispielsweise verschachtelte Unterabfragen,
gespeicherte Prozeduren und Fremdschlüssel-
Integritätsregeln, die ganz oben auf der Wunschliste vieler unserer
Kunden stehen. Daneben werden auch einfachere Erweiterungen wie Multi-
Tabellen-UPDATE-Statements hinzugefügt.
Nach diesen Ergänzungen werden Kritiker des MySQL-Datenbankservers es
noch schwerer haben, auf Schwächen des MySQL-Datenbank-Managementsystems
hinzuweisen. MySQL, das seit langem für seine Stabilität,
Geschwindigkeit und Einfachheit der Benutzung bekannt ist, wird dann den
Anforderungen sehr anspruchsvoller Käufer genügen.
Die MySQL-Portale (http://www.mysql.com/portal/) auf unserer
Website bieten ein breites Spektrum MySQL-bezogener Informationen und
Links. Sie sind so aufgebaut, dass Sie leicht die Dinge finden, die Sie
interessieren.
Sie können sich als Benutzer registrieren. In diesem Fall können Sie
alle Dinge in den Portalen kommentieren und bewerten und auch selbst
Dinge beisteuern. Bei der Registrierung können Sie auch angeben, ob und
- wenn ja - welche Newsletter aus welchen Kategorien Sie beziehen
wollen.
Einige der momentanen MySQL-Portal-Kategorien:
- Bücher
Hier finden Sie alle möglichen MySQL- oder Computer-bezogenen Bücher, die
Sie kommentieren, bewerten oder kaufen können. Während dieses Handbuch
(insbesondere die Online-Version) immer noch der richtige Platz für
aktuellste technische Informationen ist, ist sein vorrangiges Ziel,
alles zu enthalten, was man über das MySQL-Datenbanksystem wissen kann.
Manchmal ist es nett, ein gebundenes Buch zu haben, dass man im Bett
oder auf Reisen lesen kann. Wenn Sie ein Buch über die angegebenen
Hyperlinks kaufen, tragen Sie zur Entwicklung der MySQL-Software bei.
- Entwicklung
Dieses Portal hat Links auf Seiten, die den MySQL-Server für
unterschiedliche Zwecke benutzen, mit einer Beschreibung jeder Site.
Diese Informationen können Ihnen eine gute Vorstellung davon geben, wer
MySQL-Datenbank-Software benutzt und wie der MySQL-Server ihre
Anforderungen erfüllt.
Teile Sie uns auch Ihre Site oder Erfolgsgeschichte mit!
- Software
Hier finden Sie eine Vielzahl von Applikationen und Wrappern, die den
MySQL-Server benutzen, die Sie auch herunter laden können.
- Distributionen
Hier finden Sie die verschiedenen Linux-Distributionen und weitere
Software-Pakete, die die MySQL-Software enthalten.
- Berater
Hier finden Sie Informationen über MySQL-Berater.
- Partner
Hier finden Sie alle MySQL-Partner.
Dieser Abschnitt führt Sie in die MySQL-Mailing-Listen ein und zeigt einige
Richtlinien und ihre Benutzung auf.
Um die MySQL-Haupt-Mailing-Liste zu abonnieren, schicken Sie eine Nachricht
an die E-Mail-Adresse mysql-subscribe@lists.mysql.com.
Um sich aus der MySQL-Haupt-Mailing-Liste auszutragen, schicken Sie eine
Nachricht an die E-Mail-Adresse mysql-unsubscribe@lists.mysql.com.
Von Bedeutung ist nur die Adresse, unter der Sie Ihre Nachrichten
abschicken. Betreffzeile und Text der Nachricht werden ignoriert.
Wenn Ihre Antwortadresse nicht gültig ist, können Sie Ihre Adresse explizit
angeben. Fügen Sie einen Bindestrich zum Abonnement- oder
Abmelde-Kommando hinzu, gefolgt von Ihrer Adresse, wobei das
`@'-Zeichen in Ihrer Adresse durch `=' ersetzt wird. Um sich zum
Beispiel mit your_name@host.domain einzutragen, schicken Sie eine
Nachricht an mysql-subscribe-your_name=host.domain@lists.mysql.com.
Mails an mysql-subscribe@lists.mysql.com oder
mysql-unsubscribe@lists.mysql.com werden automatisch vom ezmlm
Mailing-Listen-Prozessor bearbeitet. Informationen über ezmlm sind
auf The ezmlm Website verfügbar.
Um eine Nachricht an die Liste selbst zu schicken, schicken Sie eine Mail
an mysql@lists.mysql.com. Schicken aber bitte keine Mail an
mysql@lists.mysql.com, die das Abonnieren oder Austragen betrifft,
denn Mails an diese Adresse werden automatisch an tausende anderer Benutzer
verteilt.
Wenn Ihre lokale Site viele Abonnenten für mysql@lists.mysql.com
hat, sollten Sie evtl. eine lokale Mailing-Liste einrichten, so dass
Nachrichten, die von lists.mysql.com an Ihre Site gesandt werden, an
die lokale Liste verteilt werden. In solchen Fällen wenden Sie sich bitte
an Ihre Systemadministrator, um zur lokalen Mailing-Liste hinzugefügt oder
aus ihr gelöscht zu werden.
Wenn Sie wollen, dass der Traffic einer Mailing-Liste in eine separate
Mailbox Ihres E-Mail-Programms geleitet wird, setzen Sie einen Filter,
der auf die E-Mail-Header (Kopfdaten) reagiert. Sie können dazu entweder
den List-ID:- oder den Delivered-To:-Header benutzen, um die
Listennachrichten zu erkennen.
Die folgenden MySQL-Mailing-Listen existieren:
announce-subscribe@lists.mysql.com announce
-
Diese Liste kündigt neue Versionen von MySQL und verwandter Programme an.
Sie hat geringen Traffic; alle MySQL-Benutzer sollten sie abonnieren.
mysql-subscribe@lists.mysql.com mysql
-
Die Hauptliste für allgemeine MySQL-Diskussionen. Bitte beachten Sie, dass
bestimmte Themen besser in spezialisierteren Listen diskutiert werden. Wenn
Sie an die falsche Liste posten, erhalten Sie vielleicht keine Antwort!
mysql-digest-subscribe@lists.mysql.com mysql-digest
-
Die
mysql-Liste in Digest-Form (zusammengefasst). Anstelle
individueller Nachrichten wird einmal pro Tag eine große Mail mit allen
Nachrichten dieses Tages geschickt.
bugs-subscribe@lists.mysql.com bugs
-
An diese Liste sollte Sie ausschließlich komplette, wiederholbare
Bug-Berichte schicken, indem Sie das
mysqlbug-Skript benutzen. (Wenn
Sie unter Windows arbeiten, sollten Sie eine Beschreibung des
Betriebssystems und der MySQL-Version hinzufügen.)
Vorzugsweise sollten Sie den Problemfall mit der letzten stabilen oder
Entwicklungs-Version von MySQL testen, bevor Sie den Bericht posten! Jeder
sollte in der Lage sein, den Bug zu wiederholen, indem einfach mysql
test < Skript auf den beigefügten Testfall angewandt wird. Alle Bugs, die
auf dieser Liste gepostet werden, werden im nächsten MySQL-Release behoben
oder dokumentiert! Wenn nur kleinere Code-Änderungen betroffen sind, werden
wir zusätzlich ein Patch bereitstellen, das das Problem behebt.
bugs-digest-subscribe@lists.mysql.com bugs-digest
-
Die Digest-Version (zusammengefasst) der
bugs-Liste.
internals-subscribe@lists.mysql.com internals
-
Eine Liste für Leute, die am MySQL-Code arbeiten. Auf dieser Liste kann man
auch die MySQL-Entwicklung diskutieren und Patches posten.
internals-digest-subscribe@lists.mysql.com internals-digest
-
Die Digest-Version (zusammengefasst) der
internals-Liste.
java-subscribe@lists.mysql.com java
-
Diskussionen über MySQL und Java, hauptsächlich über JDBC-Treiber.
java-digest-subscribe@lists.mysql.com java-digest
-
Eine
java-Liste.
win32-subscribe@lists.mysql.com win32
-
Alles betreffend MySQL auf Microsoft-Betriebssystemen wie Win95, Win98, NT, XP,
und Win2000.
win32-digest-subscribe@lists.mysql.com win32-digest
-
Die Digest-Version (zusammengefasst) der
win32-Liste.
myodbc-subscribe@lists.mysql.com myodbc
-
Alles betreffend ODBC-Verbindungen zu MySQL.
myodbc-digest-subscribe@lists.mysql.com myodbc-digest
-
Die Digest-Version (zusammengefasst) der
myodbc-Liste.
plusplus-subscribe@lists.mysql.com plusplus
-
Alles, was das Programmieren mit der C++-API von MySQL betrifft.
plusplus-digest-subscribe@lists.mysql.com plusplus-digest
-
Die Digest-Version (zusammengefasst) der
plusplus-Liste.
msql-mysql-modules-subscribe@lists.mysql.com msql-mysql-modules
-
Eine Liste zur Perl-Unterstützung in MySQL. msql-mysql-modules
msql-mysql-modules-digest-subscribe@lists.mysql.com msql-mysql-modules-digest
-
Die Digest-Version (zusammengefasst) der
msql-mysql-modules-Liste.
Alle Listen abonnieren Sie - und tragen sich wieder aus - auf dieselbe Art
wie oben beschrieben. Tragen Sie in Ihre Mail zum Abonnieren oder Austragen
die entsprechende Mailing-Liste ein anstelle von mysql. Um sich zum
Beispiel für die myodbc-Liste einzutragen, schicken Sie eine
Nachricht an myodbc-subscribe@lists.mysql.com oder
myodbc-unsubscribe@lists.mysql.com.
Wenn Sie keine Antwort auf Ihre Fragen von der Mailing-Liste erhalten, ist
eine Option, für den Support von MySQL AB zu bezahlen, was Sie in direkten
Kontakt mit den MySQL-Entwicklern bringt. See section 2.4.1 Support den MySQL AB anbietet.
Die folgende Tabelle listet einige Mailing-Listen in anderen Sprachen als
englisch auf. Beachten Sie, dass diese nicht von MySQL AB unterhalten
werden. Daher können wir nicht für die Qualität dieser Listen garantieren.
mysql-france-subscribe@yahoogroups.com Eine französische Mailing-Liste
-
list@tinc.net Eine koreanische Mailing-Liste
-
Schicken Sie eine E-Mail mit dem Betreff
subscribe mysql
your@email.address an diese Liste.
mysql-de-request@lists.4t2.com Eine deutsche Mailing-Liste
-
Schicken Sie eine E-Mail mit dem Betreff
subscribe mysql-de
your@email.address an diese Liste.
Informationen über diese Liste finden Sie unter
http://www.4t2.com/mysql.
mysql-br-request@listas.linkway.com.br Eine portugiesische Mailing-Liste.
-
Schicken Sie eine E-Mail mit dem Betreff
subscribe mysql-br
your@email.address an diese Liste.
mysql-alta@elistas.net Eine spanische Mailing-Liste.
-
Schicken Sie eine E-Mail mit dem Betreff
subscribe mysql
your@email.address an diese Liste.
Bevor Sie einen Bug berichten oder eine Frage stellen, tun Sie bitte
folgendes:
Wenn Sie weder im Handbuch noch in den Archiven eine Antwort finden können,
versuchen Sie es mit Ihrem lokalen MySQL-Experten. Wenn Sie immer noch
keine Antwort auf Ihre Frage finden, lesen Sie den nächsten Abschnitt über
die Mailing-Listen unter mysql@lists.mysql.com.
Einen guten Bug-Bericht zu schreiben braucht Geduld, aber es gleich beim
ersten Mal richtig zu machen spart Ihnen und uns Zeit. Ein guter
Bug-Bericht enthält einen kompletten Testfall für den Bug, der es sehr
wahrscheinlich macht, dass wir ihn im nächsten Release beheben. Dieser
Abschnitt hilft Ihnen, Ihren Bericht korrekt zu schreiben, damit Sie Ihre
Zeit nicht damit verschwenden, etwas zu schreiben, was uns wenig oder gar
nicht weiterhilft.
Wir ermutigen jeden, das mysqlbug-Skript zu benutzen, um einen
Bug-Bericht anzufertigen (oder einen Bericht über irgendein anderes
Problem), falls das möglich ist. Der mysqlbug findet sich im
`Skripts'-Verzeichnis der Quelldistribution, bzw. im
`bin'-Verzeichnis der Binärdistribution, im Verzeichnis unterhalb
Ihres MySQL-Installationsverzeichnisses. Falls es Ihnen nicht möglich ist,
mysqlbug zu benutzen, sollten Sie trotzdem alle notwendigen
Informationen mitliefern, die in diesem Abschnitt aufgeführt sind.
Das mysqlbug-Skript hilft Ihnen, einen Bericht zu erstellen, der
viele der folgenden Informationen automatisch einschließt, aber falls
etwas Wichtiges fehlt, fügen Sie es bitte Ihrer Nachricht hinzu! Bitte
lesen Sie diesen Abschnitt sorgfältig und stellen Sie sicher, dass alle
hier beschriebenen Informationen in Ihrem Bericht enthalten sind.
Für gewöhnlich sollten Sie Ihren Bug-Bericht und Probleme an
mysql@lists.mysql.com schicken. Wenn Sie einen Testfall erzeugen
können, der den Bug klar demonstriert, sollten Sie ihn an die
bugs@lists.mysql.com-Liste schicken. Beachten Sie, dass Sie nur
einen kompletten, nachvollziehbaren Bug-Bericht an diese Liste schicken
sollten, indem Sie das mysqlbug-Skript benutzen. Falls Sie unter
Windows arbeiten, sollten Sie eine Beschreibung des Betriebssystems und der
MySQL-Version hinzufügen. Vorzugsweise sollten Sie den Problemfall mit der
letzten stabilen oder Entwicklungs-Version von MySQL testen, bevor Sie den
Bericht posten! Jeder sollte in der Lage sein, den Bug zu wiederholen,
indem einfach mysqltest < Skript auf den beigefügten Testfall
angewandt wird. Alle Bugs, die auf dieser Liste gepostet werden, werden im
nächsten MySQL-Release behoben oder dokumentiert! Wenn nur kleinere
Code-Änderungen betroffen sind, werden wir zusätzlich ein Patch
bereitstellen, das das Problem behebt.
Denken Sie daran, dass es immer möglich ist, auf eine Nachricht zu
antworten, die zu viele Informationen enthält, aber nicht immer auf eine,
die zu wenige Informationen enthält. Oft lassen Leute Fakten aus, weil sie
denken, die Ursache eines Probleme zu ke |