summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorunknown <arjen@co3064164-a.bitbike.com>2002-03-13 15:39:51 +1000
committerunknown <arjen@co3064164-a.bitbike.com>2002-03-13 15:39:51 +1000
commit7f4f728ef42fbff01863f4114aeef3ccfad3616e (patch)
tree9689fe103942c157642ca01193f8da0b65d5caa6
parent0116d95dc534c432408e74300ffb3b216f99e944 (diff)
downloadmariadb-git-7f4f728ef42fbff01863f4114aeef3ccfad3616e.tar.gz
Changes for German manual in mysql.de website.
Docs/manual.de.texi: Fixed up German manual for mysql.de website (with English @node lines). @menu blocks are not filled so .info won't look nice.
-rwxr-xr-xDocs/Support/test-make-manual-de137
-rw-r--r--Docs/manual.de.texi12396
2 files changed, 6493 insertions, 6040 deletions
diff --git a/Docs/Support/test-make-manual-de b/Docs/Support/test-make-manual-de
new file mode 100755
index 00000000000..a5c03001bda
--- /dev/null
+++ b/Docs/Support/test-make-manual-de
@@ -0,0 +1,137 @@
+#!/bin/sh
+
+needed_flags=0
+needed_texi2html=0
+needed_texinfo_tex=0
+needed_include_texi=0
+
+if [ -z $BROWSER ]; then
+ BROWSER=netscape
+ echo "BROWSER not set, using $BROWSER"
+fi
+
+die ()
+{
+ echo
+ echo $1
+ cleanup
+ exit 1
+}
+
+cleanup ()
+{
+ echo "Cleaning up..."
+ if [ $needed_flags ]; then
+ bk clean Flags
+ fi
+
+ if [ $needed_texi2html ]; then
+ bk clean Support/texi2html
+ fi
+
+ if [ $needed_texinfo_tex ]; then
+ bk clean Support/texinfo.tex
+ fi
+
+ if [ $needed_include_texi ]; then
+ rm -f include.texi
+ fi
+
+ for file in \
+ manual.de.aux manual.de.cp manual.de.cps manual.de.dvi \
+ manual.de.fn manual.de.fns manual.de.ky manual.de.html \
+ manual.de.pg manual.de.toc manual.de.tp manual.de.vr \
+ mysql.de.info manual.de_toc.html ;
+ do
+ rm -f $file
+ done
+
+}
+
+
+if [ -e Flags/usa.txt ]; then
+ echo "Good, Flags are there."
+else
+ echo -n "Checking out Flags..."
+ bk edit Flags >/dev/null 2>&1
+ echo " Done."
+ needed_flags=1
+fi
+
+if [ -e Support/texi2html ]; then
+ echo "Good, texi2html is there."
+else
+ echo -n "Checking out texi2html..."
+ bk edit Support/texi2html >/dev/null 2>&1
+ echo " Done."
+ needed_texi2html=1
+fi
+
+if [ -e Support/texinfo.tex ]; then
+ echo "Good, texinfo.tex is there."
+else
+ echo -n "Checking out texinfo.tex..."
+ bk edit Support/texinfo.tex >/dev/null 2>&1
+ echo " Done."
+ needed_texinfo_tex=1
+fi
+
+if [ -e include.texi ]; then
+ echo "Good, include.texi is there."
+else
+ echo -n "Creating include.texi..."
+ bk edit ../configure.in >/dev/null 2>&1
+ echo "@c This file was generated by test-make-manual" > include.texi
+ echo -n "@set mysql_version " >> include.texi
+ grep "AM_INIT_AUTOMAKE(mysql, " ../configure.in | \
+ sed -e 's;AM_INIT_AUTOMAKE(mysql, ;;' -e 's;);;' >> include.texi
+ echo -n "@set default_port " >> include.texi
+ grep "MYSQL_TCP_PORT_DEFAULT=" ../configure.in | \
+ sed -e 's;MYSQL_TCP_PORT_DEFAULT=;;' >> include.texi
+ echo " Done."
+ needed_include_texi=1
+fi
+
+echo -n "Running makeinfo..."
+makeinfo --no-split -I . manual.de.texi
+
+if [ $? != 0 ]; then
+ die "Manual has errors - fix before you commit"
+else
+ echo " Looks good."
+fi
+
+
+echo -n "Running texi2html..."
+/usr/bin/perl ./Support/texi2html -iso -number manual.de.texi
+
+if [ $? != 0 ]; then
+ die "Manual has errors - fix before you commit"
+else
+ echo " Looks good."
+fi
+
+
+echo -n "Running texi2dvi..."
+texi2dvi --batch manual.de.texi > texi2dvi.out
+
+if [ $? != 0 ]; then
+ die "Manual has errors - fix before you commit (saved in texi2dvi.out)"
+else
+ rm texi2dvi.out
+ echo " Looks good."
+fi
+
+echo
+echo
+echo "Please examine your modifications in \`manual.de.html'."
+echo
+echo "If you would like to use a different browser, set the 'BROWSER' environment"
+echo "variable."
+echo
+
+$BROWSER file:`pwd`/manual.de_toc.html
+
+echo "-- Press Enter to Continue --"
+read junk
+cleanup
diff --git a/Docs/manual.de.texi b/Docs/manual.de.texi
index f3f651d2a0b..8a0c0e19a54 100644
--- a/Docs/manual.de.texi
+++ b/Docs/manual.de.texi
@@ -19,7 +19,7 @@
@syncodeindex tp fn
@c Get version information. This file is generated by the Makefile!!
-@include include.de.texi
+@include include.texi
@ifclear tex-debug
@c This removes the black squares in the right margin
@@ -93,7 +93,8 @@ END-INFO-DIR-ENTRY
@end iftex
-@node Top, Einführung, (dir), (dir)
+@node Top, Introduction, (dir), (dir)
+@c German node Top
@c @ifhtml
@c <IMG SRC="Images/mysql-logo.gif">
@@ -107,75 +108,73 @@ zur MySQL-Version @value{mysql_version}. Sie finden ein Handbuch zu jeder
entsprechenden Version.
@end ifinfo
-@menu
-* Einführung:: Allgemeine Informationen über MySQL
-* Deutsch:: Vorbemerkungen zum deutschen Handbuch
-* Installation:: Installation von MySQL
-* Tutorial:: Einführung in MySQL: Ein MySQL-Tutorial
-* MySQL-Datenbankadministration:: MySQL-Datenbankadministration
-* MySQL-Optimierung:: MySQL-Optimierung
-* Referenz:: MySQL-Sprachreferenz
-* Tabellentypen:: MySQL-Tabellentypen
-* MySQL-APIs:: MySQL-Client-Werkzeuge und -APIs
-* MySQL erweitern:: MySQL erweitern
-* Probleme:: Probleme und häufige Fehler
-* Benutzer:: Einige MySQL-Benutzer
-* MySQL-Benutzung durch Kunden:: MySQL-Benutzung durch Kunden
-* Contrib:: Von anderen beigesteuerte Programme
-* Danksagungen:: Kontributoren zu MySQL
-* Neuigkeiten:: MySQL-Geschichte der Änderungen (ChangeLog)
-* Portierung:: Anmerkungen zur Portierungen auf andere Systeme
-* Umgebungsvariablen:: MySQL-Umgebungsvariablen
-* Reguläre Ausdrücke:: Beschreibung der MySQL-Syntax für reguläre Ausdrücke
-* GPL-Lizenz:: GNU GENERAL PUBLIC LICENSE
-* LGPL-Lizenz:: GNU LESSER GENERAL PUBLIC LICENSE
-@end menu
-
+@menu
+* Introduction::
+* Deutsch::
+* Installing::
+* Tutorial::
+* MySQL Database Administration::
+* MySQL Optimisation::
+* Reference::
+* Table types::
+* Clients::
+* Extending MySQL::
+* Problems::
+* Benutzer::
+* MySQL-Benutzung durch Kunden::
+* Contrib::
+* Credits::
+* News::
+* Porting::
+* Environment variables::
+* Regexp::
+* GPL license::
+* LGPL license::
+* Function Index::
+* Concept Index::
+@end menu
-@node Einführung, Deutsch, Installation, Top, Top
+@node Introduction, Deutsch, Top, Top
+@c German node Einführung
@chapter Allgemeine Informationen über MySQL
@cindex Überblick
@cindex Allgemeine Informationen
-@cindex Speicherort des Online-Handbuchs
-@cindex Handbuch, Online-Speicherort
-
-Das ist das MySQL Referenzhandbuch. Es dokumentiert die MySQL-Version
-@value{mysql_version}. Weil MySQL ständig weiter entwickelt wird, wird das
-Handbuch regelmässig aktualisiert. Es besteht die Möglichkeit, dass diese
-Version veraltet ist, wenn Sie sie nicht online bezogen haben. Die
-aktuellste Version dieses Handbuchs ist in vielen verschiedenen Formaten
-verfügbar auf @uref{http://www.mysql.com/documentation/index.html}. Wenn
-Sie es für schwierig halten, Informationen in diesem Handbuch zu finden,
-können Sie die durchsuchbare PHP-Version unter
-@uref{http://www.mysql.com/doc} ausprobieren.
MySQL ist ein sehr schneller und robuster, Multi-Thread und Multi-User
SQL-Datenbank-Server (SQL = Structured Query Language, strukturierte
Abfrage-Sprache).
+Die Einsatzgebiete des MySQL Server liegen in Hochleistungsapplikationen
+und in der Einbindung in weit verbreitete Massen-Software.
+@code{MySQL} ist eine Schutzmarke von @code{MySQL AB}.
-MySQL ist freie Software. Sie ist lizensiert nach @strong{GNU
-GENERAL PUBLIC LICENSE} @uref{http://www.gnu.org/}.
-@xref{Lizensierung und Support}.
+Die MySQL Software steht unter einer @code{Doppellizenz}. Sie
+können sie entweder frei im Sinne der @code{GNU GENERAL PUBLIC LICENSE}
+(@uref{http://www.gnu.org/licenses/}) verwenden, oder Sie erwerben eine
+komerzielle Lizenz, wenn Sie nicht durch die Restriktionen der GPL
+gebunden sein wollen.
+@xref{Lizenzpolitik}.
@uref{http://www.mysql.com/, die MySQL Homepage}
enthält die letzten Informationen über MySQL.
+Die folgende Liste beschreibt nützliche Teile des Handbuchs.
+
@itemize @bullet
@item
-Informationen zu dem Unternehmen hinter MySQL: @ref{Was ist MySQL AB?}.
+Informationen zu dem Unternehmen hinter MySQL: @ref\{What is MySQL AB}.
@item
Eine Diskussion der Fähigkeiten von MySQL: @ref{Features}.
@item
-Installationsanweisungen: @ref{Installation}.
+Installationsanweisungen: @ref\{Installing}.
@item
Tipps zur Portierung von MySQL auf neue Architekturen oder Betriebssysteme:
-@ref{Portierung}.
+@ref\{Porting}.
@item
Informationen zum Upgrade von einem Release der Version 3.23:
@@ -193,7 +192,7 @@ SQL-Beispiele und Informationen zu Benchmarks befinden sich im
Benchmark-Verzeichnis (@file{sql-bench} in der Distribution).
@item
-Die Geschichte neuer Features und Bugfixes: @ref{Neuigkeiten}.
+Die Geschichte neuer Features und Bugfixes: @ref\{News}.
@item
Eine Liste bekannter Bugs und @nqs(Feature-Probleme): @ref{Bugs}.
@@ -202,14 +201,14 @@ Eine Liste bekannter Bugs und @nqs(Feature-Probleme): @ref{Bugs}.
Zukunftspläne: @ref{TODO}.
@item
-Eine Liste aller Beteiligten, die zu diesem Projekt beitrugen: @ref{Danksagungen}.
+Eine Liste aller Beteiligten, die zu diesem Projekt beitrugen: @ref\{Credits}.
@end itemize
@strong{WICHTIG:}
Berichte zu Fehlern (oft Bugs genannt) sowie Fragen und Bemerkungen sollten
an die Mailingliste geschickt werden: @email{mysql@@lists.mysql.com}.
-@xref{Bug-Berichte}.
+@xref\{Bug reports}.
Das @code{mysqlbug} Skript sollte benutzt werden, um Fehlerberichte zu
erzeugen.
@c FIX! RPMs are also binary
@@ -224,16 +223,11 @@ MySQL gefunden haben, sollten Sie eine E-Mail an
@cindex Mailing-Listen-Adresse
@cindex @code{mysqlbug}-Skript, Speicherort
-Wenn Sie Vorschläge für Hinzufügungen oder Korrekturen dieses Handbuchs
-haben, schicken Sie sie bitte an das Handbuch-Team:
-@email{docs@@mysql.com}.
-Das ist ein Referenzhandbuch. Es enthält keine allgemeinen Anleitungen zu
-SQL oder relationalen Datenbankkonzepten. Wenn Sie allgemeine Informationen
-über SQL suchen, finden Sie diese hier: @ref{SQL allgemein}. Bücher, die sich
-speziell mit MySQL beschäftigen, finden Sie hier: @ref{MySQL-Bücher}.
-@node Deutsch, Top, Top
+
+@node Deutsch, Installing, Introduction, Top
+@c German node <no English equivalent>
@chapter Vorbemerkungen zum deutschen Handbuch
Die Übersetzung einer so umfangreichen technischen Dokumentation wie des
@@ -251,7 +245,7 @@ Und Transaktionen werden nicht gerollbackt, sondern zurückgerollt.
@end itemize
Womit wir auch schon bei der besonderen Herausforderung wären: Jeder,
-der sich mit Transaktionen auskennt, weiss, dass beim Fehlschlagen einer
+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.
@@ -274,7 +268,7 @@ Die Fallstricke einer Übersetzung stecken allerdings in den Details:
@itemize @bullet
@item
-Jeder SQL-Kenner weiss, was eine "query" ist. In diesem Handbuch ist
+Jeder SQL-Kenner weiß, was eine "query" ist. In diesem Handbuch ist
das eine Anfrage.
@item
Gibt es Probleme bei der Übermittlung einer Anfrage, kann es sein,
@@ -293,7 +287,7 @@ deutsche Entsprechungen gibt:
@itemize @bullet
@item
Im Hauptspeicher ("RAM") zwischengespeicherte Daten werden auf die
-Festplatte zurückgeschrieben. Im Englischen heisst das "flushed to
+Festplatte zurückgeschrieben. Im Englischen heißt das "flushed to
disk", und im Deutschen werden die Daten häufig "geflushed".
@item
Daten werden zwischengespeichert ("gecached").
@@ -319,11 +313,11 @@ 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 heisst "case sensitive" (14
+deutscher Ausdrücke. Beispielsweise heißt "case sensitive" (14
Buchstaben) im Handbuch "abhängig von der verwendeten
-Gross-/Kleinschreibung" (44 Buchstaben).
+Groß-/Kleinschreibung" (44 Buchstaben).
-Letzter Punkt: Die Übersetzung erfolgte in äussert enger Anlehnung an
+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
@@ -340,256 +334,35 @@ Stefan Hinz, @uref{http://iConnect.de,iConnect GmbH Berlin}
@menu
-* MySQL und MySQL AB:: MySQL, MySQL AB und Open Source
-* MySQL-Informationsquellen:: MySQL-Informationsquellen
-* Lizensierung und Support:: MySQL-Lizensierung und -Support
-* Kompatibilität:: Wie Standard-kompatibel ist MySQL?
-* Vergleiche:: MySQL im Vergleich mit anderen Datenbanken
-* TODO:: MySQL und die Zukunft (das TODO)
-@end menu
-
-@node MySQL und MySQL AB, MySQL-Informationsquellen, Einführung, Einführung
-@section MySQL, MySQL AB und Open Source
-
-@menu
-* Was ist MySQL?:: Was ist MySQL?
-* Was ist MySQL AB?:: Was ist MySQL AB?
-* Handbuch-Informationen:: Über dieses Handbuch
-* Handbuch-Konventionen:: Konventionen in diesem Handbuchs
-* Geschichte:: Geschichte von MySQL
-* Features:: Die wichtigsten Features von MySQL
-* Stabilität:: Wie stabil ist MySQL?
-* Tabellengrösse:: Wie gross können MySQL Tabellen sein?
-* Jahr-2000-Konformität:: Jahr-2000-Konformität
+* Manual-info::
+* What-is::
+* What is MySQL AB::
+* Licensing and Support::
+* MySQL Information Sources::
+* Compatibility::
+* TODO::
+* Comparisons::
@end menu
-@node Was ist MySQL?, Was ist MySQL AB?, MySQL und MySQL AB, MySQL und MySQL AB
-@subsection Was ist MySQL?
-
-@cindex MySQL, Definition
-@cindex MySQL, Einführung
-
-
-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. @xref{Was ist MySQL AB?}.
-
-@table @asis
-
-@item 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, grosse 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
-underer Anwendungen.
-@cindex Datenbanken, Definition
-
-@item MySQL ist ein relationales Datenbank-Managementsystem.
-
-Eine relationale Datenbank speichert Daten in separaten Tabellen,
-anstatt sie alle in einem einzigen grossen 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.
-
-@cindex Relationale Datenbanken, Definition
-@cindex SQL, Definition
-@item 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) @uref{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.
-
-@cindex Open Source, Definition
-@cindex General Public License
-
-@item 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.
-@xref{MySQL-Benchmarks}.
-
-MySQL wurde ursprünglich entwickelt, um sehr grosse 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 äussert geeignet, um auf
-Datenbanken über das Internet zuzugreifen.
-
-@item Die technischen Features von MySQL
-
-Weiter führende technische Informationen finden Sie unter
-@ref{Referenz}. 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.
-
-@item MySQL stellt beigesteuerte (contributed) Software in grosser Menge
-zur Verfügung.
-
-Es ist sehr wahrscheinlich, dass Ihre Lieblingsanwendung oder -sprache
-bereits MySQL unterstützt.
-
-@end table
-
-@cindex Aussprache, MySQL
-@cindex MySQL, Aussprache
-@cindex Ziele von MySQL
-Offiziell wird MySQL 'Mai Ess Ku Ell' ausgesprochen (nicht 'Mai
-Siekwel'). Wir vermeiden allerdings, Leute zu korrigieren, die
-Mai-Siekwel sagen.
-
-@node Was ist MySQL AB?, Manual-info, MySQL und MySQL AB
-@subsection Was ist MySQL AB?
-
-@cindex MySQL AB, Definition
-
-MySQL AB ist ein schwedisches Unternehmen, das den Gründern und
-Hauptentwicklern von MySQL gehört und von ihnen geführt wird. Wir widmen
-uns der Entwicklung von MySQL und der Verbreitung unserer Datenbank
-unter neuen Benutzern. MySQL AB besitzt das Copyright am MySQL Server
-Quelltext und an der Marke MySQL.
-Ein beträchtlicher Teil unserer Erlöse aus Serviceleistungen geht in die
-Entwicklung von MySQL. @xref{Was ist MySQL AB?}.
-
-MySQL AB ist von Anfang an ein profitables Unternehmen. Wir sind nicht
-von aussen finanziert, sondern haben all unser Geld selbst verdient.
-
-Wir sind ständig auf der Suche nach Partnern, die unsere Entwicklung von
-MySQL unterstützen, um die Entwicklungsgeschwindigkeit zu steigern. Wenn
-Sie daran interessiert sind, setzen Sie sich deswegen per E-Mail
-@email{partner@@mysql.com} mit uns in Verbindung!
-
-MySQL AB hat derzeit mehr als 30 Leute auf der Gehaltsliste
-(@uref{http://www.mysql.com/development/team.html}) und wächst schnell.
-
-Unsere wichtigsten Erlösquellen sind:
-
-@itemize @bullet
-@item
-
-Kommerzieller Support für MySQL in hoher Qualität, der durch die MySQL-
-Entwickler selbst geleistet wird. Wenn Sie Interesse haben, einen
-Supportvertrag abzuschliessen, besuchen Sie bitte
-@uref{https://order.mysql.com/}, um sich über die Supportoptionen zu
-informieren oder Supportleistungen zu bestellen.
-
-@item
-Consulting-Dienstleistungen. Wir haben Entwickler und Berater in 12
-Ländern sowie Partner in vielen weiteren Ländern, die Ihnen in Bezug auf
-nahezu alle Fragen in Zusammenhang mit MySQL zur Verfügung stehen. Wenn
-Sie Consulting-Dienstleistungen benötigen, schicken Sie bitte eine E-
-Mail mit einer Beschreibung Ihrer Bedürfnisse an
-@email{info@@mysql.com}! Wenn wir Ihre Anfrage nicht selbst bearbeiten
-können, finden wir üblicherweise einen Partner oder Entwickler, der
-Ihnen bei Ihren Problemen helfen kann.
-
-@item
-Wir verkaufen Lizenzen für die Benutzung von MySQL als eingebettete
-Datenbank. @xref{Kosten}. Wenn Sie ein kommerzielles Produkt haben, für
-das Sie eine schnelle Datenbank hoher Qualität benötigen, es sich aber
-nicht leisten können, Ihr Produkt als Open-Source-Produkt heraus zu
-bringen, können Sie das Recht erwerben, den MySQL-Server unter einem
-normalen, kommerziellen Copyright zu benutzen. Wenn Sie daran Interesse
-haben, können Sie MySQL-Lizenzen hier (@uref{https://order.mysql.com/})
-erwerben. Oder kontaktieren Sie uns unter @email{licensing@@mysql.com}.
-
-@item
-Werbung. @uref{http://www.mysql.com/} ist eine sehr populäre Website mit
-mehr als 10 Mio. Seitenabrufen (Page Views) pro Monat (Januar 2001). Mit
-einem Banner auf dieser Site erreichen Sie garantiert eine grosse Anzahl
-möglicher Kunden in der Open-Source-, Linux- und Datenbank-Community.
-Wenn Sie daran interessiert sind, schicken Sie bitte eine E-Mail an
-@email{advertising@@mysql.com}.
-
-@item
-Wir bauen ein Partnerprogramm auf, um MySQL-Services in jedem Lund
-anbieten zu können. Wenn Sie Interesse haben, ein MySQL AB-Partner zu
-werden, besuchen Sie bitte
-@uref{http://www.mysql.com/information/partners.html} oder schicken Sie
-eine E-Mail an @email{partner@@mysql.com}.
-
-@item
-Mittels unseres Partnerprogramms bieten wir MySQL-Schulungen an. Für
-weitere Informationen schicken Sie bitte eine E-Mail an @email{info@@mysql.com}.
-
-@item
-Die Marke MySQL wird seit 1995 mit Geschwindigkeit und Zuverlässigkeit
-in Verbindung gebracht, als etwas, das dafür bekannt ist, dass Sie sich
-darauf verlassen können. Wenn Sie daran interessiert sind, die MySQL-
-Marke für Ihr Marketing einzusetzen, schicken Sie bitte eine
-entsprechende E-Mail an @email{info@@mysql.com}.
-@end itemize
-
-Die MySQL-Kernwerte zeigen unsere Verpflichtung gegenüber MySQL und Open
-Source.
-
-Wir wollen, dass MySQL folgendes ist:
+@node Manual-info, What-is, Deutsch, Deutsch
+@c German node Handbuch-Informationen
+@section Über dieses Handbuch
-@itemize @bullet
-@item
-Die beste und meist benutzte Datenbank der Welt.
-@item
-Verfügbar für alle. Alle sollen sich MySQL leisten können.
-@item
-Leicht zu benutzen.
-@item
-Kontinuierlich verbessert, trotzdem immer schnell und sicher bleibend.
-@item
-Es soll Spass machen, MySQL zu benutzen und zu verbessern.
-@item
-Frei von Bugs.
-@end itemize
-
-
-MySQL AB und die Leute von MySQL AB:
-
-@itemize @bullet
-@item
-Verbreiten die Open-Source-Philosophie und unterstützen die
-Open-Source-Community.
-@item
-Bemühen sich, gute Bürger zu sein.
-@item
-Bevorzugen Partner, die unsere Werte und unsere Geisteshaltung teilen.
-@item
-Beantworten Mail und geben Support.
-@item
-Sind ein virtuelles Unternehmen, das mit anderen im Netzwerk
-zusammenarbeitet (networking).
-@item
-Arbeiten gegen Software-Patente.
-@end itemize
-
-
-@node Handbuch-Informationen, Handbuch-Konventionen, Was ist MySQL AB?, MySQL und MySQL AB
-@subsection Über dieses Handbuch
+@cindex Speicherort des Online-Handbuchs
+@cindex Handbuch, Online-Speicherort
+Das ist ein Referenzhandbuch. Es enthält keine allgemeinen Anleitungen zu
+SQL oder relationalen Datenbankkonzepten.
+@c German FIX these references don't exist:
+@c Wenn Sie allgemeine Informationen über SQL suchen,
+@c finden Sie diese hier: @ref{SQL allgemein}.
+@c Bücher, die sich speziell mit MySQL beschäftigen,
+@c finden Sie hier: @ref{MySQL-Bücher}.
+
+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
+@uref{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.
@@ -599,16 +372,33 @@ Versionen werden mit @code{makeinfo} hergestellt. Die PostScript-Version
wird mit @code{texi2dvi} und @code{dvips} produziert. Die PDF-Version
wird mit @code{pdftex} hergestellt.
+Wenn Sie Schwierigkeiten haben, Informationen zu finden, beachten Sie bitte
+auch die durchsuchbare PHP Version des Handbuchs unter
+@uref{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:
+@email{docs@@mysql.com}.
+
@cindex Handbuch, verfügbare Formate
@cindex Texinfo
Dieses Handbuch wurde geschrieben und wird gewartet von David Axmark,
Michael (Monty) Widenius, Jeremy Cole, und Paul DuBois. Andere
-Kontributoren sind unter @ref{Danksagungen} aufgelistet.
-Die deutsche Übersetzung stammt von Stefan Hinz.
+Kontributoren sind unter @ref\{Credits} 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
+@code{MySQL AB}. @xref{Copyright}.
+
+@menu
+* Manual conventions::
+@end menu
-@node Handbuch-Konventionen, History, Handbuch-Informationen, MySQL und MySQL AB
+@node Manual conventions, , Manual-info, Manual-info
+@c German node Handbuch-Konventionen
@subsection Konventionen in diesem Handbuch
Dieses Handbuch benutzt bestimmte typographische Konventionen:
@@ -632,7 +422,7 @@ Verzeichnis @file{/usr/local/} installiert.''
@item @samp{c}
Schriftart gleicher Breite, die von Anführungszeichen umgeben ist, wird
-auch benutzt, um Zeichenfolgen anzuzeigen. Beispiel: ``Um ein
+auch benutzt um Zeichenfolgen anzuzeigen. Beispiel: ``Um ein
Platzhalterzeichen einzugeben, benutzen Sie das @samp{%} Zeichen.''
@item @emph{italic}
@@ -647,20 +437,20 @@ und gelegentlich, um @strong{besonders starke Hervorhebungen} zu kennzeichnen.
Wenn Befehle gezeigt werden, die durch ein bestimmtes Programm
ausgeführt werden sollen, wird dieses Programm durch einen Prompt
-(Befehlsaufforderung) vor dem Befehl angezeigt. Der @code{shell>} Prompt
+(Eingabeaufforderung) vor dem Befehl angezeigt. Der @code{shell>} Prompt
zum Beispiel zeigt an, dass Sie den Befehl von Ihrer Login-Shell aus
ausführen sollen. @code{mysql>} zeigt an, dass Sie den Befehl vom
@code{mysql} Client-Programm aus ausführen sollen:
@example
-shell> geben sie hier ein shell-kommundo ein
-mysql> geben sie hier ein mysql-kommundo ein
+shell> geben sie hier ein shell-kommando ein
+mysql> geben sie hier ein mysql-kommando ein
@end example
Shell-Befehle werden mit der Bourne-Shell-Syntax dargestellt. Wenn Sie
-eine @code{csh}-Shell benutzen, müssen die Befehle evtl. etwas unders
+eine @code{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 anschliessend ein Befehl abgesetzt
+Umgebungsvariable gesetzt wird und anschließend ein Befehl abgesetzt
wird:
@example
@@ -694,8 +484,8 @@ wie folgt:
mysql> SELECT autor_name FROM bibliothek.autorenliste;
@end example
-SQL-Statements können in Gross- und Kleinschreibung geschrieben werden.
-Wenn dieses Handbuch SQL-Statements darstellt, wird Grossschreibung
+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 @code{SELECT} Statements sehen:
@@ -712,7 +502,7 @@ mysql> select COUNT(*) from tabellen_name;
@end example
Wenn keine besondere Hervorhebung beabsichtigt wird, werden alle
-Schlüsselworte in Grossschreibung dargestellt.
+Schlüsselworte in Großschreibung dargestellt.
In Syntax-Beschreibungen werden eckige Klammern (@samp{[} und @samp{]})
benutzt, um wahlfrei (optionale) Wörter oder Klauseln anzuzeigen:
@@ -722,7 +512,7 @@ DROP TABLE [IF EXISTS] tabellen_name
@end example
Wenn ein Syntaxelement aus einer Anzahl von Alternativen besteht, werden
-die Alternativen durch gerade Striche (@samp{|}) voneinunder getrennt.
+die Alternativen durch gerade Striche (@samp{|}) voneinander getrennt.
Wenn genau ein Element aus einer Anzahl von Möglichkeiten ausgewählt
werden (@strong{kann}), werden die Alternativen mit eckigen Klammern
aufgelistet (@samp{[} und @samp{]}):
@@ -740,8 +530,107 @@ Klammern aufgelistet (@samp{@{} und @samp{@}}):
@end example
-@node Geschichte, Features, Konventionen in diesem Handbuch, MySQL und MySQL AB
-@subsection Geschichte von MySQL
+@node What-is, What is MySQL AB, Manual-info, Deutsch
+@c German node Was ist MySQL?
+@section Was ist MySQL?
+
+@cindex MySQL, Definition
+@cindex MySQL, Einführung
+
+
+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. @xref\{What is MySQL AB}.
+
+@table @asis
+
+@item 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.
+@cindex Datenbanken, Definition
+
+@item 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.
+
+@cindex Relationale Datenbanken, Definition
+@cindex SQL, Definition
+@item 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) @uref{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.
+
+@cindex Open Source, Definition
+@cindex General Public License
+
+@item 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.
+@xref\{MySQL Benchmarks}.
+
+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.
+
+@item Die technischen Features von MySQL
+
+Weiter führende technische Informationen finden Sie unter
+@ref\{Reference}. 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.
+
+@item 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.
+
+@end table
+
+@cindex Aussprache, MySQL
+@cindex MySQL, Aussprache
+@cindex Ziele von MySQL
+Offiziell wird MySQL 'Mai Ess Ku Ell' ausgesprochen (nicht 'Mai
+Siekwel'). Wir vermeiden allerdings, Leute zu korrigieren, die
+Mai-Siekwel sagen.
@cindex MySQL-Geschichte
@cindex Geschichte von MySQL
@@ -757,13 +646,22 @@ Dies resultierte in einer neuen SQL-Schnittstelle zu unserer Datenbank,
allerdings mit fast derselben API-Schnittstelle, wie sie @code{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 grosse Anzahl
+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) heisst My. Welcher der beiden Umstände MySQL den Namen
+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.
-@node Features, Stabilität, Geschichte, MySQL und MySQL AB
+
+@menu
+* Features::
+* Stability::
+* Table size::
+* Year 2000 compliance::
+@end menu
+
+@node Features, Stability, What-is, What-is
+@c German node Features
@subsection Die wichtigsten Features von MySQL
@cindex Haupt-Features von MySQL
@@ -780,10 +678,10 @@ Voll multi-thread unter Benutzung von Kernel-Threads. Das bedeutet, dass
Sie sehr einfach mehrere Prozessoren benutzen können, falls verfügbar.
@item
-C-, C++-, Eiffel-, Java-, Perl-, PHP-, Python- und Tcl-APIs. @xref{MySQL-APIs}.
+C-, C++-, Eiffel-, Java-, Perl-, PHP-, Python- und Tcl-APIs. @xref\{Clients}.
@item
-Läuft auf vielen verschiedenen Plattformen. @xref{Welches Betriebssystem}.
+Läuft auf vielen verschiedenen Plattformen. @xref\{Which OS}.
@item
Viele Spaltentypen: vorzeichenbehaftete / vorzeichenlose Ganzzahlen
@@ -791,7 +689,7 @@ Viele Spaltentypen: vorzeichenbehaftete / vorzeichenlose Ganzzahlen
@code{DOUBLE}, @code{CHAR}, @code{VARCHAR}, @code{TEXT}, @code{BLOB},
@code{DATE}, @code{TIME}, @code{DATETIME}, @code{TIMESTAMP},
@code{YEAR}, @code{SET}, und @code{ENUM} Typen.
-@xref{Spaltentypen}.
+@xref\{Column types}.
@item
Sehr schnelle Joins durch Benutzung eines optimierten Multi-Joins in
@@ -828,7 +726,7 @@ derselben SQL-Anfrage benutzen (ab Version 3.22).
@item
Ein System von Zugriffsberechtigungen und Passwörtern, das sehr flexibel
-und flexibel ist, und das Host-basierende Verifizierung erlaubt.
+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.
@@ -856,7 +754,7 @@ Im Arbeitsspeicher gehaltene Hash-Tabellen, die als temporäre Tabellen
benutzt werden.
@item
-Kann grosse Datenbanken handhaben. Wir selbst benutzen MySQL bei einigen
+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.
@@ -870,11 +768,11 @@ werden auf ihre Vorgabewerte gesetzt.
Benutzt GNU Automake, Autoconf und Libtool aus Portabilitätsgründen.
@item
-Geschrieben in C und C++. Gestestet mit grossen Anzahl verschiedener
+Geschrieben in C und C++. Getestet mit großen Anzahl verschiedener
Compiler.
@item
-Ein sehr schnelles Thread-basierendes SpeicherzuordnungsSystem (memory
+Ein sehr schnelles Thread-basierendes Speicherzuordnungs-System (memory
allocation system).
@item
@@ -885,18 +783,18 @@ einem kommerziellen Werkzeug zur Entdeckung von Speicherlecks.
Beinhaltet @code{myisamchk}, ein sehr schnelles Dienstprogramm zur Überprüfung,
Optimierung und Reparatur von Tabellen. Die gesamte Funktionalität von
@code{myisamchk} steht auch über die SQL-Schnittstelle zur Verfügung.
-@xref{MySQL-Datenbankadministration}.
+@xref\{MySQL Database Administration}.
@item
Volle Unterstützung für mehrere unterschiedliche Zeichensätze, incl. ISO-
8859-1 (Latin1), big5, ujis und weitere. So sind zum Beispiel die
-skundinavischen Zeichen `@ringaccent{a}', `@"a' und `@"o' in Tabellen-
+skandinavischen Zeichen `@ringaccent{a}', `@"a' und `@"o' in Tabellen-
und Spaltennamen erlaubt.
@item
Alle Daten werden mit dem ausgewählten Zeichensatz gespeichert. Alle
Vergleiche für normale Zeichenkettenvergleiche sind unabhängig von
-Gross- und Kleinschreibung.
+Groß- und Kleinschreibung.
@item
Die Sortierung ist abhängig vom gewählten Zeichensatz (schwedisch als
@@ -923,7 +821,7 @@ Funktionsnamen kollidieren nicht mit Tabellen- oder Spaltennamen.
@code{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 @samp{(}, erlaubt ist. @xref{Reservierte Wörter}.
+diesem folgt @samp{(}, erlaubt ist. @xref\{Reserved words}.
@item
Alle MySQL-Programme können mit der @code{--help} oder @code{-?} Option
@@ -932,7 +830,7 @@ aufgerufen werden, um Online-Hilfe zu erhalten.
@item
Der Server kann Clients Fehlermeldungen in verschiedenen Sprachen zur
Verfügung stellen.
-@xref{Sprachen}.
+@xref\{Languages}.
@item
Clients können sich mit dem MySQL-Server über TCP/IP Sockets,
@@ -946,7 +844,8 @@ Optimierer eine Anfrage auflöst.
@end itemize
-@node Stabilität, Tabellengrösse, Features, MySQL und MySQL AB
+@node Stability, Table size, Features, What-is
+@c German node Stabilität
@subsection Wie stabil ist MySQL?
@cindex Stabilität
@@ -1000,7 +899,7 @@ dem von verlorenen Daten aufgrund von MySQL-Bugs berichtet wurde.
@cindex Daten, ISAM-Tabellen-Handler
@item Der MyISAM Tabellen-Handler --- stabil
-Dieser wurde in MySQL Version 3.23 hinzu gefügt. Er basiert zum grossen
+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.
@@ -1010,8 +909,8 @@ System gegeben.
@item Der C Client-Code --- stabil
Keine bekannten Probleme. Im frühen 3.20 Release gab es einige
-Einschränkungen hinsichtlich der Grösse des Sende- / Empfangs-Puffers
-(buffer size). Ab Version 3.21 ist die Puffergrösse jetzt dynamisch, bis
+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.
@item Standard-Client-Programme --- stabil
@@ -1029,7 +928,7 @@ Speicher-Handling. Nicht ein einziger berichteter Bug in diesem System.
@item Join-Optimierer (Join optimizer) --- stabil
@item Sperren (Locking) --- Gamma
-Dies ist sehr system-abhängig. Auf einigen Systemen gibt es grosse
+Dies ist sehr system-abhängig. Auf einigen Systemen gibt es große
Probleme, wenn Standard-Betriebssystem-Sperren verwendet wird
(@code{fcntl()}). In solchen Fällen sollten Sie den MySQL-Daemon mit dem
Flag @code{--skip-locking} laufen lassen. Bekannt ist, dass solche
@@ -1037,13 +936,13 @@ Probleme auf manchen Linux-Systemen vorkommen sowie auf SunOS, wenn NFS-
gemountete Dateisysteme verwendet werden.
@item Linux-Threads --- stabil
-Das hauptsächliche Problem fund sich im @code{fcntl()}-Aufruf, der durch
+Das hauptsächliche Problem fand sich im @code{fcntl()}-Aufruf, der durch
Benutzung der @w{@code{--skip-locking}}-Option bei @code{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ässigen Linux-Threads laufen zu
-lassen (obwohl man nie über 1021 kommen wird), macht das vorgabemässige
+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. @xref{Linux}.
@@ -1051,10 +950,10 @@ connections) hergestellt wurden. @xref{Linux}.
@item Solaris 2.5+ pthreads --- stabil
Wir benutzen dies für unsere gesamte Produktionsarbeit.
-@item MIT-pthreads (undere Systeme) --- stabil
+@item 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 heisst einige Operationen sind recht langsam (1/20
+``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
@code{SELECT}-Statements werden üblicherweise in einem Zeit-Frame
@@ -1082,7 +981,7 @@ Geschrieben und gewartet von Yves Carlier
(@email{Yves.Carlier@@rug.ac.be}). Danke!
@item @code{GRANT} --- stabil
-Grosse Änderungen in MySQL Version 3.22.12.
+große Änderungen in MySQL Version 3.22.12.
@item @strong{MyODBC} (benutzt ODBC SDK 2.5) --- Gamma
Scheint mit einigen Programmen gut zu laufen.
@@ -1095,7 +994,7 @@ Benutzer diese bereits mit guten Resultaten.
@item 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 undere Tabellentypen getestet
+einige Zeit dauern, bevor dies so gut wie andere Tabellentypen getestet
ist.
@item InnoDB-Tabellen -- Beta
@@ -1125,24 +1024,25 @@ Fragen. Bugs werden meist direkt mit einem Patch behoben; für
schwerwiegende Bugs gibt es fast immer ein neues Release.
-@node Tabellengrösse, Jahr-2000-Konformität, Stabilität, MySQL und MySQL AB
-@subsection Wie gross können MySQL-Tabellen sein?
+@node Table size, Year 2000 compliance, Stability, What-is
+@c German node Tabellengröße
+@subsection Wie groß können MySQL-Tabellen sein?
-@cindex Tabellen, maximale Grösse
-@cindex Grösse von Tabellen
-@cindex Betriebssysteme, Dateigrössen-Beschränkungen
-@cindex Beschränkungen, Dateigrösse
-@cindex Dateien, Dateigrösse
+@cindex Tabellen, maximale Größe
+@cindex Größe von Tabellen
+@cindex Betriebssysteme, Dateigrößen-Beschränkungen
+@cindex Beschränkungen, Dateigröße
+@cindex Dateien, Dateigröße
-MySQL Version 3.22 hat eine Begrenzung auf 4G bei der Tabellengrösse.
+MySQL Version 3.22 hat eine Begrenzung auf 4G bei der Tabellengröße.
Mit dem neuen @code{MyISAM} in MySQL Version 3.23 wurde die maximale
-Tabellengrösse auf 8 Millionen Terabytes (2 ^ 63 bytes) hochgeschraubt.
+Tabellengröße auf 8 Millionen Terabytes (2 ^ 63 bytes) hochgeschraubt.
-Beachten Sie allerdings, dass Betriebssysteme ihre eigenen Dateigrössen-
+Beachten Sie allerdings, dass Betriebssysteme ihre eigenen Dateigrößen-
Beschränkungen haben. Hier sind einige Beispiele:
@multitable @columnfractions .5 .5
-@item @strong{Betriebssystem} @tab @strong{Dateigrössen-Beschränkung}
+@item @strong{Betriebssystem} @tab @strong{Dateigrößen-Beschränkung}
@item Linux-Intel 32 bit @tab 2G, 4G oder mehr, abhängig von der Linux-Version
@item Linux-Alpha @tab 8T (?)
@item Solaris 2.5.1 @tab 2G (möglich sind 4G mit Patch)
@@ -1151,30 +1051,30 @@ Beschränkungen haben. Hier sind einige Beispiele:
@item Solaris 2.7 ULTRA-SPARC @tab 8T (?)
@end multitable
-Auf Linux 2.2 kann man grössere 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 grosse
+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össe für MySQL normalerweise durch das
-BetriebsSystem begrenzt.
+Letztlich wird die Tabellengröße für MySQL normalerweise durch das
+Betriebssystem begrenzt.
-Vorgabemässig haben MySQL-Tabellen eine maximale Grösse von etwa 4G. Sie
-können die maximale Tabellengrösse für eine Tabelle mit dem @code{SHOW
+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 @code{SHOW
TABLE STATUS}-Befehl überprüfen oder mit @code{myisamchk -dv
tabellen_name}. @xref{SHOW}.
-Wenn Sie grössere Tabellen als 4G benötigen (und Ihr BetriebsSystem dies
+Wenn Sie größere Tabellen als 4G benötigen (und Ihr Betriebssystem dies
unterstützt), sollten Sie die @code{AVG_ROW_LENGTH}- und
@code{MAX_ROWS}-Parameter benutzen, wenn Sie Ihre Tabelle anlegen.
@xref{CREATE TABLE}. Sie können diese auch später setzen, mit
@code{ALTER TABLE}. @xref{ALTER TABLE}.
-Falls auf Ihre grosse Tabelle nur mit Lesezugriff zugegriffen wird
+Falls auf Ihre große Tabelle nur mit Lesezugriff zugegriffen wird
(read-only), können Sie auch @code{myisampack} benutzen, um mehrere
Tabellen zu vereinen (merge) und sie zu einer zu komprimieren.
@code{myisampack} komprimiert eine Tabelle üblicherweise mindestens um
-50%, also können Sie effektiv viel grössere Tabellen benutzen.
+50%, also können Sie effektiv viel größere Tabellen benutzen.
@xref{myisampack, ,@code{myisampack}}.
Sie können die Dateibegrenzung des Betriebssystems für @code{MyISAM}
@@ -1186,7 +1086,8 @@ erlaubt, eine Sammlung identischer Tabellen zugleich zu benutzen.
@xref{MERGE, MERGE tables}.
-@node Jahr-2000-Konformität, , Tabellengrösse, MySQL und MySQL AB
+@node Year 2000 compliance, , Table size, What-is
+@c German node Jahr-2000-Konformität
@subsection Jahr-2000-Konformität
@cindex Jahr-2000-Konformität
@@ -1287,1028 +1188,1094 @@ einen Bereich von @code{1970} bis @code{2030} auf 32-Bit-Maschinen
Spaltentyp bis zu @code{2106} (vorzeichenloser Wert).
Obwohl MySQL Jahr-2000-kompatibel ist, sind Sie dafür verantwortlich,
-mehrdeutige Eingaben zu vermeiden. Siehe @ref{Jahr-2000-Konformität} wegen
+mehrdeutige Eingaben zu vermeiden. Siehe @ref\{Year 2000 compliance} wegen
der Regeln, die MySQL anwendet, wenn mehrdeutige Datumsangaben gemacht
werden (Datumsangaben, die zweistellige Jahreswerte verwenden).
-@node MySQL-Informationsquellen, Lizensierung und Support, MySQL und MySQL AB, Einführung
-@section MySQL-Informationsquellen
-@cindex Handbücher, über MySQL
-@cindex Bücher, über MySQL
+@node What is MySQL AB, Licensing and Support, What-is, Deutsch
+@c German node Was ist MySQL AB?
+@section Was ist MySQL AB?
-@menu
-* MySQL-Bücher:: MySQL-Bücher
-* SQL allgemein:: Allgemeine SQL-Informationen und -Tutorials
-* Nützliche Links:: Nützliche MySQL-bezogene Links
-* Fragen:: MySQL-Mailing-Listen
-@end menu
-
-
-@node MySQL-Bücher, SQL allgemein, MySQL-Informationsquellen, MySQL-Informationsquellen
-@subsection Bücher über MySQL
+@cindex MySQL AB, Definition
-Die neuesten Informationen über Bücher - mit Benutzerkommentaren, finden
-Sie unter @uref{http://www.mysql.com/portal/books/html/index.html}.
+@code{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 @code{Monty} Widenius gegründet.
-Obwohl dieses Handbuch immer noch der richtige Platz für top-aktuelle
-technische Informationen ist, ist sein wichtigstes Ziel, alles zu
-beinhalten, was es über MySQL zu wissen gibt. Manchmal ist es nett, ein
-Buch zu haben, das man im Bett lesen kann oder während der Reise. Hier ist
-eine Liste von Büchern über MySQL und verwundte Themen (auf englisch).
+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
-Indem Sie ein Buch über die im Folgenden aufgeführten Hyperlinks kaufen,
-tragen Sie zur Entwicklung von MySQL bei.
+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.. @xref\{What-is}.
-@emph{MySQL}
-@multitable @columnfractions .3 .7
-@item Verfügbar @tab @uref{http://service.bfast.com/bfast/click?bfmid=2181&sourceid=34233559&bfpid=0735709211&bfmtype=book, Barnes und Noble}
-@item Herausgeber @tab New Riders
-@item Autor @tab Paul DuBois
-@item Publ.datum @tab 1. Ausgabe Dezember 1999
-@item ISBN @tab 0735709211
-@item Seiten @tab 800
-@item Preis @tab $49.99 US
-@item Downloadbare Beispiele @tab
- @uref{http://www.kitebird.com/mysql-book/, @code{samp_db} Distribution}
-@item Errata @tab
-@uref{http://www.kitebird.com/mysql-book/errata.html, hier verfügbar}
-@end multitable
-Vorwort von Michael ``Monty'' Widenius, MySQL Moderator.
-@*
-
-@emph{MySQL} ist Paul DuBois' umfassender Führer zu einem der populärsten
-relationalen Datenbanksysteme. Paul hat an der Online-Dokumentation von
-MySQL mitgearbeitet und ist ein aktives Mitglied der MySQL-Community. Der
-Hauptentwickler von MySQL, Monty Widenius, und ein Netzwerk von
-Mitentwicklern haben das Manuskript redigiert und Paul Einblicke gewährt,
-die niemund sonst zur Verfügung stellen könnte.
-@*
+Die MySQL-Kernwerte zeigen unsere Verpflichtung gegenüber MySQL und Open
+Source.
-Statt Ihnen nur einen allgemeinen Überblick über MySQL zu geben, lehrt Sie
-Paul, das Beste aus den Fähigkeiten von MySQL heraus zu holen. Mittels
-zweier Beispiel-Datenbank-Applikationen, die das gesamte Buch durchziehen,
-zeigt er Ihnen Lösungen für Probleme, auf die Sie ganz sicher treffen
-werden. Er hilft Ihnen bei der effizienten Integration von MySQL mit Werkzeuge
-von Drittanbietern wie PHP und Perl, wodurch Sie befähigt werden,
-dynamische Websites durch Datenbankanfragen zu erzeugen. Er lehrt Sie,
-Programme zu schreiben, die auf MySQL-Datenbanken zugreifen, und stellt
-Ihnen eine umfassende Sammlung von Referenzen für Spaltentypen, Operatoren,
-Funktionen, SQL-Syntax, MySQL-Programmierung, C-API, Per @code{DBI} und
-PHP-API zur Verfügung.
-@emph{MySQL} gibt Ihnen einfach die Art von Informationen, die Sie
-nirgendwo sonst finden werden.
-@*
+Wir wollen, dass MySQL folgendes ist:
-Wenn Sie MySQL benutzen, bietet Ihnen dieses Buch:
@itemize @bullet
@item
-Eine Einführung zu MySQL und SQL.
-@item
-Es behandelt die Datentypen von MySQL und wie man sie benutzt.
-@item
-Es führt gründlich aus, wie man Client-Programme in C schreibt.
+Die beste und meist benutzte Datenbank der Welt.
@item
-Einen Führer für die Benutzung von @code{DBI} und PHP-APIs für die
-Entwicklung von Kommundozeilen- und Web-Applikationen.
+Verfügbar für alle. Alle sollen sich MySQL leisten können.
@item
-Tipps zu Administrationsthemen wie Benutzerkonten, Datensicherung,
-Crash-Behebung und Sicherheit.
+Leicht zu benutzen.
@item
-Es hilft bei der Suche eines ISP für MySQL-Zugriff.
+Kontinuierlich verbessert, trotzdem immer schnell und sicher bleibend.
@item
-Eine umfassende Referenz für die Datentypen, Operatoren, Funktionen und
-SQL-Statements und -Utilities für MySQL.
+Es soll Spass machen, MySQL zu benutzen und zu verbessern.
@item
-Einen kompletten Referenzführer für die C-API von MySQL, für die Perl
-@code{DBI}-API und die MySQL-bezogenen Funktionen von PHP.
+Frei von Bugs.
@end itemize
-@*
-
-@emph{MySQL & mSQL}
-@multitable @columnfractions .3 .7
-@item Verfügbar @tab @uref{http://service.bfast.com/bfast/click?bfmid=2181&sourceid=34233559&bfpid=1565924347&bfmtype=book, Barnes und Noble}
-@item Herausgeber @tab O'Reilly
-@item Autoren @tab Rundy Jay Yarger, George Reese & Tim King
-@item Publ.datum @tab 1. Ausgabe Juli 1999
-@item ISBN @tab 1-56592-434-7, Bestellnummer: 4347
-@item Seiten @tab 506
-@item Preis @tab $34.95
-@end multitable
-
-Dieses Buch zeigt Ihnen, wie Sie MySQL und @code{mSQL} benutzen, zwei
-populäre und robuste Datenbankprodukte, die die wichtigsten Teilmengen von
-SQL sowohl auf Linux- als auch auf Unix-Systemen beherrschen. Jeder, der
-grundlegend C, Java, Perl oder Python kennt, kann ein Programm schreiben,
-das mit einer Datenbank interagiert, entweder als eigenständige Applikation
-oder über eine Webseite. Dieses Buch führt Sie durch den gesamten Prozess,
-von der Installation und Konfiguration bis zu Programmierschnittstellen und
-grundlegender Administration. Enthält reichhaltiges Material für Tutorials.
-@*
-
-@emph{Sams' Teach Yourself MySQL in 21 Days}
-@multitable @columnfractions .3 .7
-@item Verfügbar @tab @uref{http://service.bfast.com/bfast/click?bfmid=2181&sourceid=34233559&bfpid=0672319144&bfmtype=book, Barnes und Noble}
-@item Herausgeber @tab Sams
-@item Autoren @tab Mark Maslakowski und Tony Butcher
-@item Publ.datum @tab Juni 2000
-@item ISBN @tab 0672319144
-@item Seiten @tab 650
-@item Preis @tab $39.99
-@end multitable
-
-Sams @emph{Teach Yourself MySQL in 21 Days} richtet sich an
-einigermassen fortgeschrittene Linux-Benutzer, die mit Datenbanken anfangen
-wollen.
-Zum grossen Teil richtet sich das Buch an Web-Entwickler, die eine
-Datenbank brauchen, die grosse Informationsmengen speichert, die über
-das Web abgefragt werden können.
-
-Sams @emph{Teach Yourself MySQL in 21 Days} ist ein praxisorientiertes
-Schritt-für-Schritt-Tutorial. Der Leser lernt, wie diese
-Open-Source-Datenbanktechnologie für die eigene Website entworfen und
-angewandt wird, anhand lebendiger Praxisbeispiele, denen leicht zu
-folgen ist.
-@*
-
-@emph{E-Commerce Solutions with MySQL}
-@multitable @columnfractions .3 .7
-@item Verfügbar @tab @uref{http://service.bfast.com/bfast/click?bfmid=2181&sourceid=34233559&bfpid=0761524452&bfmtype=book, Barnes und Noble}
-@item Herausgeber @tab Prima Communications, Inc.
-@item Autoren @tab N/A
-@item Publ.datum @tab Januar 2000
-@item ISBN @tab 0761524452
-@item Seiten @tab 500
-@item Preis @tab $39.99
-@end multitable
-
-No description available.
-@*
-
-@emph{MySQL und PHP from Scratch}
-@multitable @columnfractions .3 .7
-@item Verfügbar @tab @uref{http://service.bfast.com/bfast/click?bfmid=2181&sourceid=34233559&bfpid=0789724405&bfmtype=book, Barnes und Noble}
-@item Herausgeber @tab Que
-@item Autoren @tab N/A
-@item Publ.datum @tab September 2000
-@item ISBN @tab 0789724405
-@item Seiten @tab 550
-@item Preis @tab $34.99
-@end multitable
-
-Dieses Buch stellt in einem kompletten Band Informationen über
-Installation, Einrichtung und Troubleshooting für Apache, MySQL, PHP3
-und IMP zusammen. Man lernt, dass jedes dieser Dinge Teil eines ganzen
-ist, indem ein Web-basierendes E-Mail-System kreiert wird. Sie lernen,
-wie man das Äquivalent von Active Server Pages (ASP) mit PHP laufen
-lässt, wie man eine E-Commerce-Site mit einer Datenbank und dem Apache
-Webserver aufsetzt, und wie man ein Datenerfassungssystem programmiert
-(zum Beispiel für Aussendienst, Qualitätssicherung oder
-Kundenpräferenzen), das keine Installation auf dem PC benötigt.
-@*
-
-@emph{Professional MySQL Programming}
-@multitable @columnfractions .3 .7
-@item Verfügbar @tab @uref{http://shop.barnesundnoble.com/bookSearch/isbnInquiry.asp?isbn=1861005164, Barnes und Noble}
-@item Herausgeber @tab Wrox Press, Inc.
-@item Autoren @tab N/A
-@item Publ.datum @tab Late 2001
-@item ISBN @tab 1861005164
-@item Seiten @tab 1000
-@item Preis @tab $49.99
-@end multitable
-Keine Beschreibung verfügbar
-@*
-
-@emph{Professional Linux Programming}
-@multitable @columnfractions .3 .7
-@item Verfügbar @tab @uref{http://service.bfast.com/bfast/click?bfmid=2181&sourceid=34233559&bfpid=1861003013&bfmtype=book, Barnes und Noble}
-@item Herausgeber @tab Wrox Press, Inc.
-@item Autoren @tab N/A
-@item Publ.datum @tab September 2000
-@item ISBN @tab 1861003013
-@item Seiten @tab 1155
-@item Preis @tab $47.99
-@end multitable
-
-In diesem Nachfolger des Bestsellers @emph{Beginning Linux Programming}
-lernt man von dem Real-World-Wissen und seiner Erfahrung bei der
-Entwicklung von Software für Linux. Man wird durch die Entwicklung eines
-Beispiel-Shops für DVDs geführt, wobei 'Themen-Kapitel' verschiedene
-Aspekte von dessen Implementierung ansprechen. Zwischendurch
-beschäftigen sich individuelle 'Mach-eine-Pause-Kapitel' mit Themen, die
-über das zentrale Thema hinausgehen. Alle konzentrieren sich auf die
-praktischen Aspekte des Programmierens und zeigen, wie wichtig es ist,
-die richtigen Werkzeuge für den Job auszuwählen, sie so zu benutzen, wie sie
-benutzt werden sollten und die Dinge auf Anhieb richtig zu machen.
-@*
-
-@emph{PHP und MySQL Web Development}
-@multitable @columnfractions .3 .7
-@item Verfügbar @tab @uref{http://service.bfast.com/bfast/click?bfmid=2181&sourceid=34233559&bfpid=0672317842&bfmtype=book, Barnes und Noble}
-@item Herausgeber @tab Sams
-@item Autoren @tab Luke Welling, Laura Thomson
-@item Publ.datum @tab März 2001
-@item ISBN @tab 0672317842
-@item Seiten @tab 700
-@item Preis @tab $49.99
-@end multitable
-
-@emph{PHP und MySQL Web Development} für Sie in die Vorteile der
-Implementierung sowohl von PHP als auch von MySQL ein. Diese Vorteile
-werden anhand von Statistiken und mehreren Fallstudien detailliert
-dargestellt. In dem Buch wird eine praxisorientierte Web-Applikation
-entwickelt, wobei man die Werkzeuge kennenlernt, die für die Implementierung
-einer funktionalen Online-Datenbank notwendig sind. Jede Funktion wird
-separat entwickelt, wodurch man die Möglichkeit erhält, nur die
-Bestandteile einzufügen, die man implementieren möchte.
-Programmierkonzepte der Sprache PHP sind hervorgehoben, inklusive der
-Funktionen, die MySQL-Support in ein PHP-Skript einbinden, sowie
-fortgeschrittene Themen, die sich auf Tabellenmanipulation beziehen.
-@*
-@strong{Bücher, die von MySQL-Entwicklern empfohlen wurden}
-
-@emph{SQL-99 Complete, Really}
-@multitable @columnfractions .3 .7
-@item Verfügbar @tab @uref{http://service.bfast.com/bfast/click?bfmid=2181&sourceid=34233559&bfpid=0879305681&bfmtype=book, Barnes und Noble}
-@item Herausgeber @tab CMP Books
-@item Autoren @tab Peter Gulutzan, Trudy Pelzer
-@item Publ.datum @tab April 1999
-@item ISBN @tab 0879305681
-@item Seiten @tab 1104
-@item Preis @tab $55.96
-@end multitable
-
-Dieses Buch enthält komplette Beschreibungen der neuen Standards
-hinsichtlich Syntax, Datenstrukturen und Abfrageprozessen von
-SQL-Datenbanken. Das beispielebasierte Referenzhandbuch beinhaltet alle
-CLI-Funktionen, Informationen, Schema-Tabellen und Status-Codes sowie
-eine funktionsfähige SQL-Datenbank auf der Begleit-CD.
-@*
-
-@emph{C, A reference manual}
-@multitable @columnfractions .3 .7
-@item Verfügbar @tab @uref{http://service.bfast.com/bfast/click?bfmid=2181&sourceid=34233559&bfpid=0133262243&bfmtype=book, Barnes und Noble}
-@item Herausgeber @tab Prentice Hall
-@item Autoren @tab Samuel P. Harbison, Guy L. Steele
-@item Publ.datum @tab September 1994
-@item ISBN @tab 0133262243
-@item Seiten @tab 480
-@item Preis @tab $35.99
-@end multitable
-
-Die verbesserte Neuauflage des Bestsellers zur C-Sprachreferenz. Das
-Handbuch führt in die Begriffswelt von 'sauberem C' ein, so dass man
-C-Code schreibt, der als C++-Programm kompiliert werden kann. Es legt
-Wert auf Korrektheit, Portabilität und Wartbarkeit und beinhaltet die
-ISO-C-Erweiterung 1 von 1994, die neue Möglichkeiten spezifiziert,
-um portable, internationale Programme in C zu schreiben.
-@*
-
-@emph{C++ für Real Programmers}
-@multitable @columnfractions .3 .7
-@item Verfügbar @tab @uref{http://service.bfast.com/bfast/click?bfmid=2181&sourceid=34233559&bfpid=0120499428&bfmtype=book, Barnes und Noble}
-@item Herausgeber @tab Academic Press, Incorporated
-@item Autoren @tab Jeff Alger, Jim Keogh
-@item Publ.datum @tab Februar 1998
-@item ISBN @tab 0120499428
-@item Seiten @tab 388
-@item Preis @tab $39.95
-@end multitable
-
-@emph{C++ For Real Programmers} schliesst die Lücke zwischen C++, wie es
-in Büchern für Anfänger und Fortgeschrittene beschrieben wird, und C++,
-wie es von Experten angewendet wird. Es werden zahlreiche wertvolle
-Techniken beschrieben, die in drei einfache Themen unterteilt werden:
-Indirection, Klassenhierarchien und Speicherverwaltung. Es behandelt
-umfassend Vorlagenerstellung (Templates), Exception-Handling, Pointer und
-Optimierungstechniken. Das Buch konzentriert sich auf ANSI C++ und ist
-deshalb unabhängig vom Compiler.
-
-@emph{C++ For Real Programmers} ist eine Neuauflage von @emph{Secrets of
-the C++ Masters} und beinhaltet einen neuen Anhang mit einem Vergleich
-zwischen C++ und Java. Zum Buch gehört eine 3,5-Zoll-Diskette für
-Windows mit Quellcode.
-@*
-
-@emph{Algorithms in C}
-@multitable @columnfractions .3 .7
-@item Verfügbar @tab @uref{http://service.bfast.com/bfast/click?bfmid=2181&sourceid=34233559&bfpid=0201514257&bfmtype=book, Barnes und Noble}
-@item Herausgeber @tab Addison Wesley Longman, Inc.
-@item Autoren @tab Robert Sedgewick
-@item Publ.datum @tab April 1990
-@item ISBN @tab 0201514257
-@item Seiten @tab 648
-@item Preis @tab $45.75
-@end multitable
-
-@emph{Algorithms in C} beschreibt eine Vielzahl von Algorithmen für
-unterschiedliche Interessenbereiche: Sortierung, Suchfunktionen,
-Zeichenkettenverarbeitung und geometrische, grafische und mathematische
-Algorithmen. Das Buch hebt fundamentale Techniken hervor, die den Leser
-in die Lage versetzen, nützliche Algorithmen zuverlässig zu
-implementieren, laufen zu lassen und zu debuggen.
-@*
-
-@emph{Multithreaded Programming with Pthreads}
-@multitable @columnfractions .3 .7
-@item Verfügbar @tab @uref{http://service.bfast.com/bfast/click?bfmid=2181&sourceid=34233559&bfpid=0136807291&bfmtype=book, Barnes und Noble}
-@item Herausgeber @tab Prentice Hall
-@item Autoren @tab Bil Lewis, Daniel J. Berg
-@item Publ.datum @tab Oktober 1997
-@item ISBN @tab 0136807291
-@item Seiten @tab 432
-@item Preis @tab $34.95
-@end multitable
-
-Basiert auf dem Bestseller @emph{Threads Primer},
-@emph{Multithreaded Programming with Pthreads} gibt Ihnen ein solides
-Verständnis von Posix-Threads: Was sie sind, wie sie funktionieren, wann
-man sie benutzen sollte und wie sie optimiert werden. Es hat nach wie
-vor die Klarheit und den Humor von @emph{Threads Primer}, aber auch
-einen erweiterten Vergleich mit Win32- und OS/2-Implementationen.
-Code-Beispiele, die auf allen grösseren UNIX-Plattformen getestet
-wurden, werden dargestellt, und es wird jeweils detailliert erklärt, wie
-und warum sie Threads benutzen.
-@*
-
-@emph{Programming the PERL DBI: Database Programming with PERL}
-@multitable @columnfractions .3 .7
-@item Verfügbar @tab @uref{http://service.bfast.com/bfast/click?bfmid=2181&sourceid=34233559&bfpid=1565926994&bfmtype=book, Barnes und Noble}
-@item Herausgeber @tab O'Reilly & Associates, Incorporated
-@item Autoren @tab Alligator Descartes, Tim Bunce
-@item Publ.datum @tab Februar 2000
-@item ISBN @tab 1565926994
-@item Seiten @tab 400
-@item Preis @tab $27.96
-@end multitable
-
-Die Autoren von @emph{Programming the Perl DBI} sind Alligator
-Descartes, eines der aktivsten Mitglieder der DBI-Community, und Tim
-Bunce, der Erfinder von DBI. Für die Uneingeweihten erklärt das Buch die
-Architektur von DBI und zeigt, wie man DBI-basierende Programme
-schreibt. Für den erfahrenen DBI-Anwender erklärt das Buch die Nuancen von
-DBI und die Besonderheiten jeder individuellen DBD.
+MySQL AB und die Leute von MySQL AB:
-Das Buch enthält
@itemize @bullet
@item
-eine Einführung in DBI und sein Design,
+Verbreiten die Open-Source-Philosophie und unterstützen die
+Open-Source-Community.
@item
-wie Abfragen und Bind-Parameter konstruiert werden,
+Bemühen sich, gute Bürger zu sein.
@item
-wie man mit Datenbanken, Treibern und Statement-Handels arbeitet,
+Bevorzugen Partner, die unsere Werte und unsere Geisteshaltung teilen.
@item
-Debug-Techniken,
+Beantworten Mail und geben Support.
@item
-Behandlung jeder existierenden DBD
+Sind ein virtuelles Unternehmen, das mit anderen im Netzwerk
+zusammenarbeitet (networking).
@item
-und eine komplette Referenz to DBI.
+Arbeiten gegen Software-Patente.
@end itemize
-@*
+@menu
+* MySQL AB business model and services::
+@end menu
-@node SQL allgemein, Nützliche Links, MySQL-Bücher, MySQL-Informationsquellen
-@subsection Allgemeine SQL-Informationen und -Tutorials
+@node MySQL AB business model and services, , What is MySQL AB, What is MySQL AB
+@c German node MySQL AB Geschäftsmodell und Services
+@subsection Geschäftsmodell und Dienstleistungen von MySQL AB
-Das MySQL-Buchportal ist in verschiedene Abschnitte unterteilt, die es
-einfach machen, Bücher für unterschiedliche Anwendungszwecke zu finden.
-@uref{http://www.mysql.com/portal/books/html/index.html}
+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.
-Tutorials finden Sie hier:
-@uref{http://www.mysql.com/portal/development/html/development-61-1.html}
-@node Nützliche Links, Fragen, SQL allgemein, MySQL-Informationsquellen
-@subsection Nützliche MySQL-bezogene Links
+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.
-Das MySQL-Entwicklungsportal ist die ultimative Quelle MySQL-bezogener
-Links. @uref{http://www.mysql.com/portal/development/html/index.html}
+@menu
+* Business Services Support::
+* Business Services Training::
+* Business Services Consulting::
+* Business Services Commercial licenses::
+* Business Services Partnering::
+* Business Services Advertising::
+* Contact information::
+@end menu
-Abgesehen von den folgenden Links finden Sie eine grosse Anzahl von
-MySQL-Programmen, -Werkzeuge und -APIs zum Download im
-@uref{http://www.mysql.com/Downloads/Contrib/, Contrib directory}.
-@cindex @code{Contrib}-Verzeichnis
+@node Business Services Support, Business Services Training, MySQL AB business model and services, MySQL AB business model and services
+@c German node Business Services Support
+@subsubsection Support
+
+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 @code{Monty} Widenius beantwortet, der der
+erste Entwickler des MySQL-Servers ist. @xref{Support}.
+
+Um Support unterschiedlicher Grade zu bestellen, besuchen Sie bitte die
+Bestellseite unter @uref{https://order.mysql.com/}. Wenn Sie nur
+beschränkten Zugriff auf das Internet haben, setzen Sie sich bitte mit
+unserem Vertrieb unter @email{sales@@mysql.com} in Verbindung.
+
+@node Business Services Training, Business Services Consulting, Business Services Support, MySQL AB business model and services
+@c German node Business Services Training
+@subsubsection Training und Zertifizierung
+
+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:
+
+@itemize @bullet
+@item
+Sie sparen Zeit.
+@item
+Sie verbessern die Performance Ihrer Applikation(en).
+@item
+Sie verringern die Notwendigkeit zusätzlicher Hardware, was Kosten
+spart.
+@item
+Sie verbessern Ihre Sicherheit.
+@item
+Sie erhöhen die Zufriedenheit Ihrer Kunden und Mitarbeiter.
+@item
+Sie bereiten sich auf die MySQL-Zertifizierung vor.
+@end itemize
+
+Wenn Sie an unseren Schulungen Interesse als möglicher Teilnehmer oder
+Trainingspartner haben, besuchen Sie bitte die Seite unter
+@uref{http://www.mysql.com/training/}. Wenn Sie nur beschränkten Zugriff
+auf das Internet haben, setzen Sie sich bitte mit unserem
+Trainingspersonal unter @email{training@@mysql.com} in Verbindung.
+
+Die Veröffentlichung des MySQL-Zertifizierungsprogramms ist für 2002
+geplant. Details finden Sie unter
+@uref{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
+@email{certification@@mysql.com}.
+
+
+@c German FIX this node entry was missing but the section was there...
+@node Business Services Consulting, Business Services Commercial licenses, Business Services Training, MySQL AB business model and services
+@c German node Business Services Consulting
+@subsubsection Beratung
+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
+@uref{http://www.mysql.com/consulting/}. Wenn Sie nur beschränkten
+Zugriff auf das Internet haben, setzen Sie sich bitte mit unserem
+Beratungspersonal unter @email{consulting@@mysql.com} in Verbindung.
+
+@node Business Services Commercial licenses, Business Services Partnering, Business Services Consulting, MySQL AB business model and services
+@c German node Business Services Commercial Licenses
+@subsubsection Kommerzielle Lizenzen
+
+Die MySQL-Datenbank wird unter der @code{GNU General Public License}
+veröffentlicht (@code{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
+@uref{https://order.mysql.com/} erwerben.
+
+Weil MySQL AB das Copyright am MySQL-Server besitzt, können wir eine
+@code{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 @code{Open Source}. Wegen Details, wann eine kommerzielle
+Lizenz erforderlich ist, sehen Sie bitte unter
+@ref{Lizenzpolitik} nach.
+
+Wir verkaufen auch kommerzielle Lizenzen von Open-Source-GPL-Software
+Dritter. Ein gutes Beispiel hierfür ist der
+@code{InnoDB}-Tabellen-Handler, der ACID-Unterstützung, Sperren auf
+Zeilenebene, Wiederherstellung nach Abstürzen, Multiversionierung,
+Fremdschlüsselunterstützung und vieles mehr bietet.
+
+@node Business Services Partnering, Business Services Advertising, Business Services Commercial licenses, MySQL AB business model and services
+@c German node Business Services Partnering
+@subsubsection Partnerprogramme
+@cindex Partnerschaft mit MySQL AB
+
+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 @uref{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 @email{partner@@mysql.com}.
+
+Das Wort @code{MySQL} und das MySQL-Delphin-Logo sind Schutzmarken von
+MySQL AB. @xref\{MySQL AB Logos and Trademarks}.
+
+@node Business Services Advertising, Contact information, Business Services Partnering, MySQL AB business model and services
+@c German node Business Services Advertising
+@subsubsection Werbung
+
+Die MySQL-Website (@uref{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 @uref{http://www.mysql.com/} zu
+schalten, setzen Sie sich bitte mit @email{advertising@@mysql.com} in
+Kontakt.
+
+@node Contact information, , Business Services Advertising, MySQL AB business model and services
+@c German node Kontaktinformationen
+@subsubsection Kontaktinformationen
-@cindex URLs mit MySQL-Informationen
-@cindex Informations-URLs
-MySQL
-@subheading Tutorials und Handbücher
+@cindex Kontaktinformationen
+@cindex Lizensierung, Kontaktinformationen
+@cindex Werbung, Kontaktinformationen
+@cindex Anstellung, Kontaktinformationen
+@cindex Partnerschaft mit MySQL
+@cindex Anstellung bei MySQL
+@cindex Jobs bei MySQL
-@table @asis
-@item @uref{http://michael.bacarella.com/research/mysqlmyths.html, MySQL Myths Debunked}
-MySQL, wie es in der echten Welt benutzt wird.
+Die MySQL Website (@uref{http://www.mysql.com/})
+enthält die neusten Informationen über MySQL und MySQL AB.
-@item @uref{http://www.4t2.com/mysql}
-Informationen über die deutsche MySQL-Mailingliste.
+Für Presseservice und Anfragen aller Art, die in unseren
+Veröffentlichungen (@uref{http://www.mysql.com/news/}) nicht
+behandelt werden, wenden Sie sich bitte an
+@email{press@@mysql.com}.
-Die folgende Übersetzung ist veraltet und ungenau:
-@item @uref{http://www2.rent-a-database.de/mysql/}
-MySQL-Handbuch auf deutsch.
+Zeitnahe, präzise Antworten auf technische Fragen erhalten Sie, wenn Sie
+unter @uref{https://order.mysql.com/, order} einen unserer
+@uref{http://www.mysql.com/Support/arrangements/types.html,
+Support-Verträge} abschließen.
+MySQL-Support wird von den MySQL-Entwicklern geleistet, weshalb der
+Standard extrem hoch ist.
-@item @uref{http://www.bitmover.com:8888//home/bk/mysql}
-Web-Zugang zum MySQL-BitKeeper-Repository.
+Informationen über MySQL Trainig erhalten Sie unter
+@uref{http://www.mysql.com/training/}. Wenn Sie einen
+eingeschränkten Internetzugang haben, kontaktieren Sie
+bitte unser Trainingspersonal unter @email{training@@mysql.com}.
+@xref{Business Services Training}.
+
+Für Informationen über das MySQL Zertifizierungsprogramm
+erhalten Sie unter @uref{http://www.mysql.com/training/certification.html}.
+Wenn Sie weiterhin über das MySQL Zertifizierungsprogramm informiert
+werden wollen, schreiben Sie eine E-Mail an @email{certification@@mysql.com}.
+@xref{Business Services Consulting}.
+
+Kommerzielle Lizenzen können online unter @uref{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
+(@uref{http://www.mysql.com/}) aus, oder schicken Sie eine E-Mail
+an @email{licensing@@mysql.com} (für Lizenzfragen) oder an
+@email{sales@@mysql.com} (für Verkaufsinformationen).
+@xref{Lizenzpolitik}.
+
+Wenn Sie daran interessiert sind, ein Werbebanner auf unserer Website
+(@uref{http://www.mysql.com/}) zu schalten, schicken Sie bitte
+eine E-Mail an @email{advertising@@mysql.com}.
+@xref{Business Services Advertising}.
-@item @uref{http://www.analysisundsolutions.com/code/mybasic.htm}
-MySQL-Tutorial für Anfänger: Wie man MySQL auf Windows-Maschinen
-installiert und konfiguriert.
+Wenn Sie ein Unternehmen vertreten, dass an einer Partnerschaft mit MySQL
+interessiert ist, schicken Sie bitte eine E-Mail an
+@email{partner@@mysql.com}.
-@item @uref{http://www.devshed.com/Server_Side/MySQL/}
-Eine grosse Anzahl von MySQL-Tutorials.
+Für weitere Informationen über die MySQL Schutzmarkenbestimmungen, beachten
+Sie bitte @uref{http://www.mysql.com/company/trademark.html} oder kontaktieren
+Sie @email{trademark@@mysql.com}.
+@c German FIX changed 'and' to 'und' to make German xref work
+@xref\{MySQL AB Logos and Trademarks}.
-@item @uref{http://mysql.hitstar.com/}
-MySQL-Handbuch auf chinesisch.
+Wenn Sie an einem der Jobs interessiert sind, die im
+@uref{http://www.mysql.com/development/jobs/, jobs}-Abschnitt aufgeführt
+sind, schicken Sie bitte eine E-Mail an @email{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.
-@item @uref{http://www.linuxplanet.com/linuxplanet/tutorials/1046/1/}
-Wie man eine MySQL-basierende Website aufsetzt.
+Allgemeine Diskussionen mit vielen unserer Benutzer können Sie auf den
+entsprechenden @uref{http://www.mysql.com/documentation/lists.html,
+Mailing-Listen} führen.
-@item @uref{http://www.hotwired.com/webmonkey/backend/tutorials/tutorial1.html}
-MySQL-Perl-Tutorial.
+Fehlerberichte (Auch Bugreporte genannt), sowie Fragen und Kommentare, sollten
+an die Mailingliste @email{mysql@@lists.mysql.com} gehen. Wenn Sie
+ein empfindliches Sicherheitsloch im MySQL Server gefunden haben, sollten
+Sie eine E-Mail an @email{security@@mysql.com} schreiben
+@xref\{Bug reports}
-@item @uref{http://www.iserver.com/support/contrib/perl5/modules.html}
-Wie man neue Perl-Module installiert, die lokal installierte Module
-voraussetzen.
+Wenn Sie Benchmarkergebnis haben, die wir veröffentlichen können, kontaktieren
+Sie uns unter @email{benchmarks@@mysql.com}.
-@item @uref{http://www.hotwired.com/webmonkey/databases/tutorials/tutorial4.html}
-PHP-MySQL-Tutorial.
+Wenn Sie Vorschläge für Hinzufügungen oder Korrekturen dieses Handbuchs
+haben, schicken Sie sie bitte an das Handbuch-Team:
+@email{docs@@mysql.com}.
-@item @uref{http://www.useractive.com/}
-Praxis-Tutorial für MySQL.
-@end table
+Fragen zur Arbeitsweise oder zu Inhalten unserer Website(@uref{http://www.mysql.com/})
+stellen Sie bitte an @email{webmaster@@mysql.com}.
-@subheading MySQL auf unterschiedliche(n) Systeme(n) portieren / benutzen
+Fragen über das MySQL Portal (@uref{http://www.mysql.com/portal/})
+können an @email{portals@@mysql.com} geschickt werden.
-@table @asis
-@item @uref{http://www.entropy.ch/Software/macosx/mysql/}
-Binärdistribution von MySQL für MacOS-X-Client. Enthält Informationen,
-wie MySQL auf MacOS-X eingerichtet und benutzt wird.
+Die Datenschutzbestimmungen von MySQL AB können Sie unter
+@uref{http://www.mysql.com/company/privacy.html} einsehen.
+Für irgendwelche Fragen darüber, wenden Sie sich bitte an
+@email{privacy@@mysql.com}.
-@item @uref{http://xclave.macnn.com/MySQL/}
-MacOS-Xclave. MySQL auf MacOS-X laufen lassen.
+Allgemeine Informationsanfragen schicken Sie bitte an @email{info@@mysql.com}.
-@item @uref{http://www.prnet.de/RegEx/mysql.html}
-MySQL für MacOS-X-Server.
-@item @uref{http://www.latencyzero.com/macosx/mysql.html}
-MySQL für MacOS-X aufbauen.
+@node Licensing and Support, MySQL Information Sources, What is MySQL AB, Deutsch
+@c German node Lizensierung and Support
+@section MySQL Support and Lizensierung
-@item @uref{http://www.essencesw.com/Software/mysqllib.html}
-Neue Client-Bibliotheken für MacOS-Classic (Macintosh).
+@cindex Lizensierungsbedingungen
+@cindex Supportbedingungen
-@item @uref{http://www.lilback.com/macsql/}
-Client-Bibliotheken für MacOS-Classic (Macintosh).
+Dieser Abschnitt beschreibt die MySQL Support und Lizensierungsvereinbarungen
-@item @uref{http://sixk.maniasys.com/index_en.html}
-MySQL für Amiga
-@end table
-@subheading Perl-bezogene Links
+@menu
+* Support::
+* Copyright::
+* MySQL AB Logos and Trademarks::
+* Lizenzpolitik::
+@end menu
-@table @asis
-@item @uref{http://dbimysql.photoflux.com/}
-Perl DBI mit MySQL FAQ.
-@end table
+@node Support, Copyright, Licensing and Support, Licensing and Support
+@c German node Support
+@subsection Support den MySQL AB anbietet
-@subheading MySQL Diskussionsforen
+@cindex Support, Arten
+@cindex Arten von Support
+@cindex Kommerzieller Support, Arten
+@cindex Kosten, Support
+@cindex Lizensierungskosten
+@cindex Supportkosten
+@cindex Preise, Support
+
+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 @uref{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 @email{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
+
+@node Copyright, MySQL AB Logos and Trademarks, Support, Licensing and Support
+@c German node Copyright
+@subsection Copyrights und Lizenzen, die von MySQL verwendet werden.
+
+@cindex copyrights
+@cindex licenses
+
+@code{MySQL AB} besitzt das Copyright des MySQL Quellcodes,
+der MySQL Logos and Schutzmarken und dieses Handbuch
+@xref\{What is MySQL AB}.
+Es gibt einige verschiedene Lizenzen, die für die MySQL Distribution
+relevant sind:
-@table @asis
-@item @uref{http://www.weberdev.com/}
-Beispiele für die Benutzung von MySQL; (siehe Top 20)
+@enumerate
+@item
-@item @uref{http://futurerealm.com/forum/futureforum.htm}
-FutureForum Web Discussion Software.
-@end table
+Der MySQL-spezifische Quelltext, der benötigt wird, um die
+@code{mysqlclient}-Bibliothek zu kompilieren, ist unter der @code{LGPL}
+lizensiert. Programme im @file{client}-Verzeichnis sind GPL. Jede Datei hat
+einen Header, aus dem ersichtlich ist, welches Copyright für diese Datei
+gilt.
-@c FIX We should get longer descriptions für things in this category!
-@subheading Kommerzielle Applikationen, die MySQL unterstützen
+@item Die Client-Bibliothek und die (GNU @code{getopt})-Bibliothek werden
+von der ``GNU LIBRARY GENERAL PUBLIC LICENSE'' abgedeckt. @xref\{LGPL license}.
-@table @asis
-@item @uref{http://www.supportwizard.com/}
-SupportWizard; Interaktives Helpdesk im Web (dieses Produkt beinhaltet
-eine lizensierte Kopie von MySQL).
-
-@item @uref{http://www.sonork.com/}
-Sonork, ein Instant Messenger, der nicht nur Internet-orientiert ist. Zielt
-im Einsatz auf private Netzwerke und kleine und mittlere Unternehmen ab.
-Der Client ist kostenlos, der Server ist kostenlos für bis zu 5
-Arbeitsplätzen.
-
-@item @uref{http://www.stweb.org/}
-StWeb - Stratos Web- und Applikations-Server - ein leicht zu benutzendes,
-plattformunabhängiges Intranet-/Internet-Entwicklungs- und Einsatz-System
-für die Entwicklung Web-basierender Applikationen. Die Standardversion von
-StWeb hat eine native Schnittstelle zur MySQL-Datenbank.
-
-@item @uref{http://www.rightnowtech.com/}
-Right Now Web; Web-Automatisierung für den Kundendienst.
-
-@item @uref{http://www.icaap.org/Bazaar/}
-Bazaar; Interaktive Diskussionsforen mit Web-Schnittstelle.
-
-@cindex PhoneSweep
-@item @uref{http://www.phonesweep.com/}
-PhoneSweepT ist der erste kommerzielle Telefon-Scanner der Welt. Viele
-Einbrüche der letzten Jahre kamen nicht durch das Internet, sondern über
-unauthorisierte Einwahl-Modems. Mit PhoneSweep können Sie diese Modems
-finden, indem wiederholt Telefonanrufe an jede Telefonnummer durchgeführt
-werden, die Ihre Organisation kontrolliert. PhoneSweep hat ein eingebautes
-Expertensystem, das mehr als 250 verschiedene Arten von Einwahlprogrammen
-erkennen kann, inklusive Carbon Copy(TM), pcANYWHERE(TM) und Windows NT
-RAS. Jede Information wird in der SQL-Datenbank gespeichert. Es generiert
-einen umfassenden Bericht, der detailliert aufführt, welche Services auf
-welchen Einwahlnummern in Ihrer Organisation erkannt wurden.
-@end table
+@item
+Der gesamte Quelltext des Servers und der (GNU @code{readline})-Bibliothek
+werden von der ``GNU GENERAL PUBLIC LICENSE'' abgedeckt. @xref\{GPL license}.
+Diese findet sich unter anderem als Datei @file{COPYING} in den
+Distributionen.
-@subheading SQL-Clients und Berichtgeneratoren
+@item Einige Teile des Quelltextes (die @code{regexp}-Bibliothek) werden
+von einem Copyright in Berkeley-Art abgedeckt.
-@table @asis
-@item @uref{http://www.urbanresearch.com/Software/utils/urbsql/index.html, urSQL}
-SQL-Editor und Anfrage-Dienstprogramm. Anpassbare Hervorhebung der Syntax (Syntax
-Highlighting), editierbares Ergebnis, editierbare Ergebnis-Tabelle,
-grundlegende MySQL-Administrationsfunktionen, etc. ... Für Windows.
+@item
+Ältere Versionen von (3.22 und früher) stehen unter einer
+strikteren Lizenz
+(@uref{http://www.mysql.com/support/arrangements/mypl.html}).
+Bitte beachten sie die Dokumentation der speziellen Version für
+weitere Informationen.
-@item @uref{http://www.edatanew.com/, MySQL Data Manager}
-MySQL-Daten-Manager * ist ein plattformunabhängiger Web-Client (geschrieben
-in Perl) für den MySQL-Server über TCP/IP.
-@item @uref{http://ksql.sourceforge.net/}
-KDE MySQL-Client.
+@item
+Das Handbuch steht @emph{nicht} unter einer GPL-artigen Lizenz.
+Die Benutzung des Handbuchs unterliegt den folgenden Bestimmungen.
+@itemize @bullet
+@item
+Die Konvertierung in andere Formate ist erlaubt, der Inhalt jedoch
+darf auf keinen Fall geändert oder bearbeitet werden.
+@item
+Sie können eine gedruckte Version für den Privaten Gebrauch erstellen
+@item
+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.
+@end itemize
+Bitte senden Sie eine E-Mail an @email{docs@@mysql.com} für weitere Informationen
+oder wenn Sie daran interessiert sind, eine Übersetzung zu erstellen.
+@end enumerate
-@item @uref{http://www.ecker-Software.de}
-Ein Windows-GUI-Client (grafische Oberfläche) von David Ecker.
+Für Informationen darüber, wie die MySQL Lizenzen in der Praxis arbeiten
+beachten Sie bitte @ref{Lizenzpolitik}.
+Siehe auch @ref\{MySQL AB Logos and Trademarks}.
-@item @uref{http://www.icaap.org/Software/kiosk/}
-Kiosk; ein MySQL-Client für das Datenbank-Management. Geschrieben in Perl,
-wird Teil von Bazaar sein.
-@item @uref{http://www.casestudio.com/}
-Datenbank-Design-Werkzeug, das MySQL 3.23 unterstützt.
-@item @uref{http://home.skif.net/~volund/zeos/eng/index.html}
-Zeos - ein Client, der MySQL, Interbase und PostgreSQL unterstützt.
+@menu
+* Verwendung des MySQL Servers unter einer kommerziellen Lizenz::
+* Webserver::
+@end menu
-@item @uref{http://www.geocities.com/SiliconValley/Ridge/4280/GenericReportWriter/grwhome.html}
-Ein kostenloser Berichtsgenerator in Java.
+@node Verwendung des MySQL Servers unter einer kommerziellen Lizenz, Webserver, Copyright, Copyright
+@c German node <no English equivalent>
+@subsubsection Verwendung des MySQL Servers unter einer kommerziellen Lizenz
-@item @uref{http://www.javaframework.de}
-MySQLExport - Export von MySQL-Create-Statements und -Daten in viele
-verschiedene Formate (SQL, HTML, CVS, text, ZIP, GZIP...)
+@item
+@cindex ISP-Services
+@cindex Services, ISP
+@cindex Services, Web
+@cindex Internet Service Provider
-@item @uref{http://dlabs.4t2.com}
-M2D, ein MySQL-Administrations-Client für Windows. M2D unterstützt die
-Verwaltung von MySQL-Datenbanken, Erzeugung neuer Datenbanken und Tabellen,
-Editieren, und mehr.
+Internet Service Provider (ISP) hosten oft MySQL-Server für ihre Kunden.
+Aufgrund der GPL-Lizenz ist hierfür keine Lizensierung erforderlich.
-@item @uref{http://dlabs.4t2.com}
-Dexter, ein kleiner Server, in Perl geschrieben, der als Proxy-Server für
-MySQL benutzt werden kann oder als Datenbank-Erweiterung.
+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).
-@item @uref{http://www.scibit.com/Products/Software/Utils/Mascon.asp}
-Mascon ist eine mächtige Win32-GUI (grafische Oberfläche) für die
-Verwaltung von MySQL-Datenbanken.
+Alle ISPs, die auf dem neuesten Stand der Dinge bleiben wollen, sollten sich
+in die @code{announce}-Mailing-Liste eintragen, um auf der Hut zu sein vor
+schwerwiegenden Problemen, die für ihre MySQL-Installationen relevant sein
+könnten.
-@item @uref{http://www.rtlabs.com/}
-MacSQL Monitor. GUI für MySQL-, ODBC- und JDBC- Datenbanken für MacOS.
-@end table
+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.
-@subheading Distributionen, die MySQL beinhalten
-@c FIX add the rest (at least a couple more Linuxes)
+@node Webserver, , Verwendung des MySQL Servers unter einer kommerziellen Lizenz, Copyright
+@c German node <no English equivalent>
+@subsubsection Einen Webserver betreiben, der MySQL benutzt
-@table @asis
-@item @uref{http://www.suse.com/}
-SuSE Linux (6.1 und höher)
+@cindex Webserver, betreiben
+@cindex Einen Webserver betreiben
-@item @uref{http://www.redhat.com/}
-RedHat Linux (7.0 und höher)
+Wenn Sie MySQL in Verbindung mit einem Webserver unter Unix betreiben,
+brauchen Sie nicht für eine Lizenz zu bezahlen.
-@item @uref{http://distro.conectiva.com.br}
-Conectiva Linux (4.0 und höher)
-@end table
+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.
-@subheading Web-Entwicklungs-Werkzeuge, die MySQL unterstützen
-@table @asis
-@item @uref{http://www.php.net/}
-PHP: Eine serverseitige, in HTML eingebettete Skripting-Sprache.
+@node MySQL AB Logos and Trademarks, Lizenzpolitik, Copyright, Licensing and Support
+@c German node MySQL AB Logos und Schutzmarken
+@subsection MySQL-AB-Logos und -Schutzmarken
-@item @uref{http://www.midgard-project.org}
-Der Midgard Applikationsserver; eine mächtige Web-Entwicklungsumgebung, die
-auf MySQL und PHP basiert.
+@cindex Logos
+@cindex Schutzmarken
-@item @uref{http://www.smartworker.org}
-SmartWorker ist eine Plattform für Web-Applikationsentwicklung.
+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
+@code{MySQL} und das MySQL-Delphin-Logo Schutzmarken von MySQL AB sind
+und nur so benutzt werden dürfen, wie in unserer Schutzmarken-Richtlinie
+unter @uref{http://www.mysql.com/company/trademark.html} festgelegt.
-@item @uref{http://xsp.lentus.se/}
-XSP: e(X)tendible (S)erver (P)ages, eine in HTML eingebettete Tag-Sprache,
-die in Java geschrieben wurde (vormals bekannt als XTAGS.)
-@cindex dbServ
-@item @uref{http://www.dbServ.de/}
-dbServ ist eine Erweiterung eines Webservers, um Datenbank-Ausgaben in
-Ihren HTML-Code zu integrieren. Sie können jede HTML-Funktion in Ihren
-Ausgaben benutzen. Nur der Client begrenzt Ihre Fantasie. Funktioniert als
-Einzel-Server (standalone) oder als Java-Servlet.
-@item @uref{http://www.chilisoft.com/}
-Plattformunabhängiges ASP von Chili!Soft
-@item @uref{http://www.voicenet.com/~zellert/tjFM}
-Ein JDBC-Treiber für MySQL.
+@menu
+* The Original MySQL logo::
+@end menu
-@item @uref{http://www.wernhart.priv.at/php/}
-MySQL- und PHP-Demos.
+@node The Original MySQL logo, , MySQL AB Logos and Trademarks, MySQL AB Logos and Trademarks
+@c German node Das Original-MySQL-Logo
+@subsubsection Das Original-MySQL-Logo
-@item @uref{http://www.dbwww.com/}
-ForwardSQL: HTML-Schnittstelle, um MySQL-Datenbanken zu bearbeiten.
+@c FIX: picture: MySQL logo
-@item @uref{http://www.daa.com.au/~james/www-sql/}
-WWW-SQL: Datenbank-Informationen anzeigen.
+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.
-@item @uref{http://www.minivend.com/minivend/}
-Minivend: Ein Web-Shopsystem.
+Das Original-MySQL-Logo darf nur von Repräsentanten von MySQL AB und von
+Personen benutzt werden, die eine schriftliche Erlaubnis hierfür haben.
-@item @uref{http://www.heitml.com/}
-HeiTML: Eine serverseitige Erweiterung von HTML und gleichzeitig eine
-4GL-Sprache.
+@node MySQL Logos that may be Used Without Written Permission, , The Original MySQL logo, MySQL AB Logos and Trademarks
+@c German node MySQL-Logos die ohne schriftliche Erlaubnis benutzt werden dürfen
+Wann Sie eine Erlaubnis für die Benutzung des MySQL-Logos benötigen, Das
+Original-MySQL-Logo, MySQL-AB-Logos und Schutzmarken
+@subsubsection MySQL-Logos die ohne schriftliche Erlaubnis benutzt werden dürfen
-@item @uref{http://www.metahtml.com/}
-Metahtml: Eine dynamische Programmier-Sprache für WWW-Applikationen.
+@c FIX: pictures: powered by, works with, included - logos
-@item @uref{http://www.binevolve.com/}
-VelocityGen für Perl und Tcl.
+Wir haben einen Satz spezieller Logos für @emph{vorbehaltliche
+Benutzung} angelegt, die von unserer Website unter
+@uref{http://www.mysql.com/downloads/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:
-@item @uref{http://hawkeye.net/}
-Hawkeye Internet-Server-Suite.
+@itemize @bullet
+@item
+Benutzen Sie das gewünschte Logo von der @uref{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.
-@item @uref{http://www.fastflow.com/}
-Network Datenbankverbindung für Linux.
+@item
+Heben Sie hervor, dass Sie - und nicht MySQL AB - der Betreiber und
+Eigner der Site ist, auf der die MySQL-Schutzmarke gezeigt wird.
-@item @uref{http://www.wdbi.net/}
-WDBI: Webbrowser als universelles Datenbank-Frontend, das MySQL gut
-unterstützt.
+@item
+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.
-@item @uref{http://www.webgroove.com/}
-WebGroove Script: HTML-Compiler und serverseitige Skripting-Sprache.
+@item
+Wenn Sie die Schutzmarke auf einer Website benutzen, machen Sie sie
+anklickbar, wobei direkt nach @uref{http://www.mysql.com/} verlinkt
+wird.
-@item @uref{http://www.ihtml.com/}
-Eine serverseitige Website-Skripting-Sprache.
+@item
+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.
+@end itemize
-@item @uref{ftp://ftp.igc.apc.org/pub/myodbc/README}
-Wie man MySQL mit ColdFusion auf Solaris benutzt.
+Setzen Sie sich unter @email{trademark@@mysql.com} mit uns in
+Verbindung, um wegen spezieller Arrangements anzufragen, die Ihren
+Bedürfnissen entsprechen.
-@item @uref{http://calistra.com/MySQL/}
-Calistras ODBC-MySQL-Administrator.
+@node When need MySQL logo permission, , The Original MySQL logo, MySQL AB Logos and Trademarks
+@c German node Wann Sie eine Erlaubnis für die Benutzung des MySQL-Logos
+benötigen, MySQL-AB-Partnerschafts-Logos, MySQL-Logos die ohne
+schriftliche Erlaubnis benutzt werden dürfen, MySQL-AB-Logos und
+Schutzmarken
+@subsubsection Wann Sie eine Erlaubnis für die Benutzung des MySQL-Logos benötigen
-@cindex Webmerger
-@item @uref{http://www.webmerger.com}
-Webmerger - Dieses CGI-Werkzeug interpretiert Dateien und generiert dynamische
-Ausgaben, basierend auf einer Reihe einfacher Tags.
-Einsatzfertiger Treiber für MySQL und PostgreSQL über ODBC.
+In folgenden Fällen benötigen Sie eine schriftliche Erlaubnis von MySQL
+AB, bevor Sie die MySQL-Logos benutzen:
-@item @uref{http://phpclub.net/}
-PHPclub - Tipps und Tricks für PHP.
+@itemize @bullet
+@item
+Wenn Sie irgend ein MySQL-AB-Logo irgendwo ausser auf Ihrer Website
+zeigen.
-@item @uref{http://www.penguinservices.com/scripts}
-MySQL- und Perl-Skripte.
+@item
+Wenn Sie irgend ein MySQL-AB-Logo ausser den oben erwähnten Logos zur
+@emph{vorbehaltlichen Benutzung} auf Websites oder anderswo anzeigen.
+@end itemize
-@item @uref{http://www.widgetchuck.com}
-Widgetchuck; Website-Werkzeuge und -Gadgets
+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.
-@item @uref{http://www.adcycle.com/}
-AdCycle - Software zur Werbeschaltungsverwaltung.
+@node MySQL AB Partnership Logos, , The Original MySQL logo, MySQL AB Logos and Trademarks
+@c German node MySQL-AB-Partnerschafts-Logos
+Wann Sie eine Erlaubnis für die Benutzung des MySQL-Logos benötigen, MySQL-AB-Logos und -Schutzmarken
+@subsubsection MySQL-AB-Partnerschafts-Logos
-@cindex pwPage
-@item @uref{http://sourceforge.net/projects/pwpage/}
-pwPage - ein extrem schneller und einfacher Ansatz für die Erstellung von
-Datenbankformularen. Das heisst, wenn eine Datenbanktabelle existiert und
-eine HTML-Seite nach einigen einfachen Regeln erstellt wurde, kann pwPage
-sofort benutzt werden, um Daten auszuwählen, einzufügen, zu aktualisieren,
-zu löschen und Datentabellen abzufragen.
+@c FIX: pictures: partnership logos - Bertrand?
-@item @uref{http://www.omnis-Software.com/products/studio/studio.html}
-OMNIS Studio ist ein schnelles Applikationsentwicklungs-Werkzeug (RAD - rapid
-application development).
+@c German FIX part of the this paragraph was at the end of Lizenzpolitik.
+@c (i.e. that section was pasted into the middle of this one ;-)
+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 @xref{Business
+Services Partnering,,Partnerschaft} nach.
-@cindex Web+
-@item @uref{http://www.webplus.com}
-talentsoft Web+ 4.6 - eine mächtige und umfassende Entwicklungssprache, die
-für die Entwicklung Web-basierender Client-Server-Applikationen benutzt
-wird, ohne dass man komplizierte, Low-Level- und zeitintensive
-CGI-Programme schreiben muss.
-@end table
+@node Lizenzpolitik, , MySQL AB Logos and Trademarks, Licensing and Support
+@c German node <no English equivalent>
+@subsection MySQL-Lizenzpolitik
-@subheading Datenbank-Design-Werkzeuge mit MySQL Support
+@cindex Lizenzpolitik
+@cindex technischer Support, Lizensierung
+@cindex Support, Lizensierung
+@cindex General Public License, MySQL
-@table @asis
-@item @uref{http://www.mysql.com/documentation/dezign/}
-"DeZign für Datenbanken" ist ein Datenbank-Entwicklungs-Werkzeug, das ein
-Entity-Relationship-Diagramm (ERD) benutzt.
-@end table
+Die formalen Bedingungen der GPL-Lizenz stehen unter @ref\{GPL license}.
+Im Wesentlichen ist unsere Lizenzpolitik und die Interpretation der
+GPL wie folgt:
-@subheading Webserver mit MySQL-Werkzeuge
+Beachten Sie bitte, dass ältere Versionen von MySQL immer noch einer
+@uref{http://www.mysql.com/Support/arrangements/mypl.html, 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
+@uref{https://order.mysql.com/} kaufen.
-@table @asis
-@item @uref{ftp://ftp.kcilink.com/pub/}
-mod_auth_mysql, ein Authentifizierungs-Modul für Apache.
+Für normalen internen Gebrauch kostet MySQL nichts. Sie brauchen uns nichts
+zu bezahlen, wenn Sie nicht wollen.
-@item @uref{http://www.roxen.com/}
-Der Roxen Challenger Webserver.
-@end table
+Eine Lizenz wird benötigt:
-@subheading Erweiterungen für andere Programme
+@itemize @minus
+@item
+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 @uref{http://www.gnu.org/copyleft/gpl-faq.html}.
+@item
+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.
-@table @asis
-@item @uref{http://www.seawood.org/msql_bind/}
-MySQL-Support für BIND (den Internet-Domain-Name-Server).
+@item
+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.
+xxx You have a Distribution of MySQL und you xxx Arjen: What does this mean: ...don't provide the
+source code for your copy of the MySQL server ... xxx Shouldn't it be: for your application ... ??? xxx
+, as defined in the GPL license. xxx
+@end itemize
-@item @uref{http://www.inet-interactive.com/sendmail/}
-MySQL-Support für Sendmail und Procmail.
-@end table
+Eine Lizenz wird @strong{NICHT} benötigt:
-@subheading MySQL mit anderen Programmen benutzen
+@itemize @minus
-@item @uref{http://www.iserver.com/Support/contrib/perl5/modules.html}
-Installation neuer Perl-Module, die lokal installierte Module benötigen.
-@end table
+@item
+Sie benötigen keine Lizenz, wenn Sie den Client-Code in kommerzielle
+Programme einschliessen. Der Client-Teil von MySQL unterliegt der
+LGPL @code{GNU Library General Public License}-Lizenz. Der
+@code{mysql}-Kommandozeilen-Client beinhaltet Code der
+@code{readline}-Bibliothek, die unter @code{GPL} steht.
-@subheading ODBC-bezogene Links
+@item
+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.
-@table @asis
-@item @uref{http://www.iodbc.org/}
-Populärer iODBC-Treiber-Manager (libiodbc), der jetzt als Open Source
-erhältlich ist.
+@item
+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.)
+@end itemize
+
+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!
-@item @uref{http://users.ids.net/~bjepson/freeODBC/}
-Die FreeODBC-Seiten.
+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. @xref\{Contact information}.
-@item @uref{http://genix.net/unixODBC/}
-Das unixODBC-Projekt hat als Ziel, unixODBC bekannt zu machen und als den
-definitiven Standard für ODBC auf der Linux-Plattform zu etablieren. Das
-beinhaltet GUI-Support für KDE (grafische Oberfläche).
+Wenn Sie eine MySQL-Lizenz benötigen, ist die Bezahlung am einfachsten,
+wenn Sie das Lizenzformular auf dem Secure-Server von MySQL unter
+@uref{https://order.mysql.com/} benutzen.
+@c German FIX this section no longer exists (no price info in manual)
+@c Andere Zahlungsformen werden unter @ref{Zahlungsinformationen} besprochen.
-@item @uref{http://www.sw-soft.com/products/BtrieveODBC/}
-Ein MySQL-basierender ODBC-Treiber für Btrieve.
-@end table
-@subheading @strong{API}-bezogene Links
+@node Using MySQL word in presentations, , Lizenzpolitik, Lizenzpolitik
+@c German node Benutzung des Worts MySQL in Präsentationen
+MySQL in Unternehmens- und Produktnamen, MySQL-AB-Partnerschafts-Logos,
+MySQL-AB-Logos und -Schutzmarken
+@subsubsection Benutzung des Worts @code{MySQL} in Druckmaterialien oder
+Präsentationen
-@table @asis
-@item @uref{http://www.jppp.com/}
-Teilweise implementierte TDataset-kompatible Komponenten für MySQL.
-
-@item @uref{http://www.riverstyx.net/qpopmysql/}
-qpopmysql - Ein Patch, der POP3-Authentifizierung von einer MySQL-Datenbank
-erlaubt. Es gibt dort auch einen Link auf Paul Khavkines Patch für
-Procmail, um jedem MTA zu gestatten, Mail an Benutzer in einer
-MySQL-Datenbank auszuliefern.
-
-@item @uref{http://www.pbc.ottawa.on.ca}
-Visual Basic Klassen-Generator für Active X.
-
-@item @uref{http://www.essencesw.com/Software/mysqllib.html}
-Neue Client-Bibliotheken für MacOS Classic (Macintosh).
-
-@item @uref{http://www.lilback.com/macsql/}
-Client-Bibliotheken für Macintosh.
-
-@item @uref{http://www.essencesw.com/Plugins/mysqlplug.html}
-Plugin für REALbasic (for Macintosh)
-
-@item @uref{http://www.iis.ee.ethz.ch/~neeri/macintosh/gusi-qa.html}
-Eine Bibliothek, die BSD-Sockets und Pthreads auf Macintosh emuliert. Dies
-kann benutzt werden, um MySQL-Client-Bibliotheken auf Mac zu kompilieren.
-Sie könnte wahrscheinlich auch benutzt werden, um MySQL auf den Macintosh
-zu portieren, aber wir kennen niemanden, der das versucht hätte.
-
-@cindex SCMDB
-@item @uref{http://www.dedecker.net/jessie/scmdb/}
-SCMDB - Ein Add-on für SCM, das die MySQL-C-Bibliothek auf Scheme (SCM)
-portiert. Mit dieser Bibliothek können Scheme-Entwickler Verbindungen zu
-einer MySQL-Datenbank aufbauen und Embedded SQL in ihren Programmen
-benutzen.
-@end table
+MySQL AB begrüßt Verweise auf die MySQL-Datenbank, aber das Wort
+@code{MySQL} ist eine Schutzmarke von MySQL AB. Deshalb müssen Sie der
+ersten oder deutlichsten Erwähnung des Worts @code{MySQL} das
+Schutzmarken-Symbol @code{TM} hinzufügen, und wo angebracht deutlich
+machen, dass @code{MySQL} eine Schutzmarke von MySQL AB ist. Details
+entnehmen Sie bitte unserer Schutzmarken-Richtlinie unter
+@uref{http://www.mysql.com/company/trademark.html}.
-@subheading Andere MySQL-bezogene Links
-@table @asis
-@item @uref{http://www.satisoft.com/, SAT}
-Das Small Application Toolkit (SAT) ist eine Sammlung von Utilities, die
-darauf abzielt, die Entwicklung kleiner Multi-User-GUI-Applikationen in
-(Microsoft- oder X-) Windows-Client- / Unix-Server-Umgebungen zu
-vereinfachen.
+@node Using MySQL word in company and product names, , Lizenzpolitik, Lizenzpolitik
+@c German node Benutzung des Worts MySQL in Unternehmens- und Produktnamen
+MySQL in Unternehmens- und Produktnamen,, MySQL-AB-Logos und -Schutzmarken
+@subsubsection Benutzung des Worts @code{MySQL} in Unternehmens- und
+Produktnamen
-@item @uref{http://www.wix.com/mysql-hosting/}
-Verzeichnis von Web-Providern, die MySQL unterstützen.
+Die Benutzung des Worts @code{MySQL} in Produkt- und Unternehmensnamen
+oder in Internet-Domänen-Namen ist nur mit vorheriger schriftlicher
+Erlaubnis durch MySQL AB gestattet.
-@item @uref{http://www.softagency.co.jp/mysql/index.en.html}
-Links zur Benutzung von MySQL in Japan / Asien.
-@item @uref{http://abattoir.cc.ndsu.nodak.edu/~nem/mysql/udf/}
-MySQL-UDF-Verzeichnis.
+@node MySQL 4.0 In A Nutshell, MySQL Information Sources, Licensing and Support, Deutsch
+@c German node MySQL 4.0 kurz und bündig
+Support, Einführung
+@section MySQL 4.0 kurz und bündig
-@item @uref{http://www.open.com.au/products.html}
-Kommerzielles Web-Ausfall-Tracking-System.
+Dateline: 16. Oktober 2001, Uppsala, Schweden
-@item @uref{http://www.stonekeep.com/pts/}
-PTS: Projekt-Tracking-System.
+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 @uref{http://www.mysql.com/} und unseren Mirrors
+verfügbar.
-@item @uref{http://tomato.nvgc.vt.edu/~hroberts/mot}
-Job- und Software-Tracking-System.
+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.
+
+
+
+@node Nutshell Stepwise Rollout, , Lizenzpolitik, Licensing and Support
+@c German node Kurz und bündig - Schritt für Schritt
+sofortigen Entwicklungseinsatz, MySQL 4.0 kurz und bündig, MySQL 4.0
+kurz und bündig
+@subsection Schritt für Schritt
+
+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.
+
+
+@node Nutshell Ready for Immediate Development Use, , Lizenzpolitik, Licensing and Support
+@c German node Kurz und bündig - für den sofortigen Entwicklungseinsatz
+bündig - eingebettetes MySQL, Kurz und bündig - Schritt für Schritt,
+MySQL 4.0 kurz und bündig
+@subsection Für den sofortigen Entwicklungseinsatz
+
+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.
+
+
+@node Nutshell Embedded MySQL, , Lizenzpolitik, Licensing and Support
+@c German node Kurz und bündig - eingebettetes MySQL
+Features, Kurz und bündig - für den sofortigen Entwicklungseinsatz,
+MySQL 4.0 kurz und bündig
+@subsection Eingebettetes MySQL
+
+@code{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 @emph{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. @xref{libmysqld}.
+
+
+@node Nutshell Other features, , Lizenzpolitik, Licensing and Support
+@c German node Kurz und bündig - weitere Features
+Features, Kurz und bündig - eingebettetes MySQL, MySQL 4.0 kurz und
+bündig
+@subsection Weitere ab MySQL 4.0.0 verfügbare Features
-@item @uref{http://www.cynergi.net/exportsql/}
-ExportSQL: Ein Skript, um Daten von Access95+ zu exportieren.
+@itemize @bullet
+@item
+Version 4.0 erhöht die @emph{Geschwindigkeit des MySQL-Servers} in
+einigen Bereichen noch weiter, zum Beispiel bei Massen-@code{INSERT}s,
+beim Suchen auf komprimierten Indexen, der Erzeugung von
+@code{FULLTEXT}-Indexen oder auch bei @code{COUNT(DISTINCT)}.
-@item @uref{http://SAL.KachinaTech.COM/H/1/MYSQL.html}
-SAL (Scientific Applications on Linux) MySQL-Eintrag.
+@item
+Der Tabellen-Handler @code{InnoDB} wird jetzt als Feature des
+standardmäßigen MySQL-Servers angeboten und enthält vollständige
+Unterstützung für @code{Transaktionen} und @code{Sperren auf
+Zeilenebene}.
-@item @uref{http://www.pmpcs.com/}
-PMP Computer Solutions. Datenbank-Entwickler, die MySQL und @code{mSQL}
-benutzen.
+@item
+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 @emph{mysqld}-Server-Daemon-Prozess selbst @code{Secure Sockets
+Layer} (@code{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.
-@item @uref{http://www.aewa.org/}
-Airborne Early Warning Association.
+@item
+Unsere deutschen, österreichischen und schweizerischen Benutzer werden
+bemerken, dass es einen neuen Zeichensatz latin_de gibt, der die
+@emph{deutsche Sortierreihenfolge} beinhaltet, indem deutsche Umlaute in
+derselben Sortierung erscheinen wie bei deutschen Telefonbüchern üblich.
-@item @uref{http://www.dedserius.com/y2kmatrix/}
-Testsoftware für Jahr-2000-Konformität.
-@end table
+@item
+Zu den Features, die die @code{Migration} von anderen Datenbanksystemen
+zum MySQL-Server erleichtern, gehören @code{TRUNCATE TABLE} (wie in
+Oracle) und @code{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 @code{UNION}-Statement
+unterstützt, ein lang erwartetes Standard-SQL-Feature.
-@subheading SQL- und Datenbank-Schnittstellen
+@item
+Bei der Erstellung neuer Features für neue Benutzer haben wir die
+Gemeinschaft treuer Benutzer nicht vergessen. Es gibt jetzt Multi-
+Tabellen-@code{DELETE}-Statements. Durch das Hinzufügen von
+Unterstützung für @code{symbolisches Verknüpfen} von @code{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 @code{SQL_CALC_FOUND_ROWS} und
+@code{FOUND_ROWS()} ermöglichen herauszufinden, wie viele Zeilen eine
+Anfrage ohne eine @code{LIMIT}-Klausel zurückgegeben hätte.
+@end itemize
-@table @asis
-@item @uref{http://java.sun.com/products/jdbc/}
-JDBC-Datenbank-Zugriffs-API.
-@item @uref{http://www.gagme.com/mysql}
-Patch für @code{mSQL} Tcl.
+@node Nutshell Future features, , Lizenzpolitik, Licensing and Support
+@c German node Kurz und bündig - zukünftige Features
+Kurz und bündig - weitere Features, MySQL 4.0 kurz und bündig
+@subsection Zukünftige Features in MySQL 4.0
-@item @uref{http://www.amsoft.ru/easysql/}
-EasySQL: Ein ODBC-ähnlicher Treiber-Manager.
+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:
-@item @uref{http://www.lightlink.com/hessling/rexxsql.html}
-Eine REXX-Schnittstelle zu SQL-Datenbanken.
+@itemize @bullet
+@item
+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
+@code{absturzsichere Replikation} beinhalten, die es bereits in Version
+4.0.0 gibt, sowie den @code{LOAD DATA FROM MASTER}-Befehl, der bald das
+Aufsetzen von Slaves automatisieren wird. @code{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.
-@item @uref{http://www.mytcl.cx/}
-Tcl-Schnittstelle, die auf tcl-sql basiert, mit vielen Bugfixes.
+@item
+Als Bequemlichkeits-Feature für Datenbank-Administratoren wird
+hinzugefügt, dass mysqld-Parameter (Startoptionen) bald ohne das
+Herunterfahren des Servers gesetzt werden können.
-@item @uref{http://www.binevolve.com/~tdarugar/tcl-sql/}
-Tcl-Schnittstelle.
+@item
+Die neuen Eigenschaften des MySQL-Servers 4.0 für die Volltext-
+(@code{FULLTEXT})-Suche ermöglichen die @code{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.
-@item @uref{http://www.contrib.undrew.cmu.edu/~shadow/sql.html}
-SQL-Referenzseite mit vielen interessanten Links.
+@item
+Viele Applikationen mit starkem Lesezugriff werden durch die noch weiter
+erhöhte Geschwindigkeit des neu geschriebenen @code{Schlüssel-Caches}
+profitieren.
-@end table
+@item
+Viele Entwickler wird auch die @code{MySQL-Befehlshilfe} im Client
+freuen.
+@end itemize
-@subheading Beispiele der MySQL-Benutzung
-@table @asis
-@c Added 990601
-@c EMAIL: thuss@little6.com (Todd Huss)
-@item @uref{http://www.little6.com/about/linux/}
-Little6 Inc., eine Online-Vertrags- und Jobsuch-Seite, die mit MySQL, PHP3,
-und Linux betrieben wird.
-
-@c Added 990521
-@c EMAIL: nh@delec.com (Hillbrecht Nicole)
-@item @uref{http://www.delec.com/is/products/prep/examples/BookShelf/index.html}
-DELECis - Ein Werkzeug, mit dem sich sehr einfach eine automatische
-Tabellendokumentation generieren lässt. Als Beispiel wurde MySQL benutzt.
-
-@c Added 990521
-@c EMAIL: info@worldrecords.com (Jim Rota)
-@item @uref{http://www.worldrecords.com}
-World Records - Eine Suchmaschine für Informationen über Musik, die MySQL
-und PHP benutzt.
-
-@item @uref{http://www.webtechniques.com/archives/1998/01/note/}
-Eine Kontakt-Datenbank, die MySQL und PHP benutzt.
-
-@item @uref{http://modems.rosenet.net/mysql/}
-Web-basierende Schnittstelle und Community-Kalender mit PHP.
+@node Nutshell 4.1 development release, , Lizenzpolitik, Licensing and Support
+@c German node Kurz und bündig - Entwicklungs-Release
+MySQL 4.0 kurz und bündig
+@subsection MySQL 4.1, das folgende Entwicklungs-Release
-@item @uref{http://www.odbsoft.com/cook/sources.htm}
-Perl-Paket, mit dem sich aus einer SQL-Tabellenstruktur HTML generieren
-lässt und aus HTML-Formularen SQL-Statements.
-
-@item @uref{http://www.gusnet.cx/proj/telsql/}
-Basis-Telefon-Datenbank, die @code{DBI}/@code{DBD} benutzt.
-
-@item @uref{http://tecfa.unige.ch/guides/java/staf2x/ex/jdbc/coffee-break}
-JDBC-Beispiele von Daniel K. Schneider.
-
-@item @uref{http://www.spade.com/linux/howto/PostgreSQL-HOWTO-41.html}
-SQL BNF
-
-@item @uref{http://www.ooc.com/}
-Object Oriented Concepts Inc; CORBA-Applikationen mit Beispielen in
-Quelltext.
-
-@item @uref{http://www.pbc.ottawa.on.ca/}
-DBWiz; beinhaltet ein Beispiel, wie Cursor in VB benutzt werden.
-
-@cindex Pluribus
-@item @uref{http://keilor.cs.umass.edu/pluribus/}
-Pluribus ist eine kostenlose Suchmaschine, die im Zeitverlauf selbstlernend
-die Qualität ihrer Ergebnisse verbessert. Pluribus arbeitet nach dem
-Prinzip, dass sie sich merkt, welche Seiten Benutzer bevorzugen aus den
-Seiten, die auf eine Anfrage hin ausgeliefert wurden. Ein Benutzer votiert
-für eine Seite, indem er diese auswählt. Pluribus benutzt dieses Wissen, um
-die Qualität der Suchergebnisse zu verbessern, wenn jemand anderes dieselbe
-(oder eine ähnliche) Anfrage stellt. Benutzt PHP und MySQL.
-
-@c EMAIL: paul@sword.damocles.com (Paul Bannister)
-@item @uref{http://www.stopbit.com/}
-Stopbit - Eine Website mit Technologienachrichten, die MySQL und PHP
-benutzt.
+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 @code{verschachtelte Unterabfragen},
+@code{gespeicherte Prozeduren} und @code{Fremdschlüssel-
+Integritätsregeln}, die ganz oben auf der Wunschliste vieler unserer
+Kunden stehen. Daneben werden auch einfachere Erweiterungen wie Multi-
+Tabellen-@code{UPDATE}-Statements hinzugefügt.
-@item @uref{http://www.linuxSupportline.com/~kalendar/}
-KDE-basierender Kalender-Manager - Der Kalender-Manager bietet sowohl
-Single-User- (dateibasierend) als auch Multi-User- (MySQL-Datenbank)
-Support.
-
-@item @uref{http://tim.desert.net/~tim/imger/}
-Beispiel für Speicherung / Abfrage von Bildern mit MySQL und CGI.
-
-@item @uref{http://www.penguinservices.com/Skripts}
-Online-Shopsystem.
-
-@c Added 990928 von editor@city-gallery.com
-@cindex Old Photo Album
-@item @uref{http://www.city-gallery.com/album/}
-Old Photo Album - Das Album ist eine in Zusammenarbeit erstellte
-volkstümliche Geschichte der Fotografie. Alle Seiten dieses Projekts werden
-aus Daten erstellt, die in einer MySQL-Datenbank gespeichert sind. Die
-Seiten werden dynamisch erzeugt durch eine PHP3-Schnittstelle zum
-Datenbankinhalt. Benutzer steuern Bilder und Beschreibungen bei.
-Beigesteuerte Bilder werden auf dem Webserver gespeichert, um zu vermeiden,
-sie in der Datenbank als BLOBs speichern zu müssen. Alle weiteren
-Informationen werden auf einem gemeinsam benutzten (shared) MySQL-Server
-vorgehalten.
-@end table
+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.
-@subheading Allgemeine Datenbank-Links
-@table @asis
-@item @uref{http://www.pcslink.com/~ej/dbweb.html}
-Database Jump Site
+@node MySQL Information Sources, Compatibility, Licensing and Support, Deutsch
+@c German node MySQL-Informationsquellen
+@section MySQL-Informationsquellen
-@item @uref{http://black.hole-in-the.net/guy/webdb/}
-Homepage der webdb-l (Web-Datenbank) Mailing-Liste.
-@item @uref{http://www.symbolstone.org/technology/perl/DBI/index.html}
-Perl @code{DBI}/@code{DBD} Modul-Homepage.
-@item @uref{http://www.student.uni-koeln.de/cygwin/}
-Cygwin tools. Unix auf Windows aufgesetzt.
+@menu
+* Portals::
+* Questions::
+@end menu
+
+@node Portals, Questions, MySQL Information Sources, MySQL Information Sources
+@c German node Portale
+@subsection MySQL-Portale
-@item @uref{http://dbasecentral.com/}
-dbasecentral.com; Entwicklung und Distribution mächtiger und einfach zu
-benutzender Datenbank-Applikationen und -Systeme.
+@cindex MySQL-Portale
+@cindex Handbücher, über MySQL
+@cindex Bücher, über MySQL
+@cindex MySQL-Testimonials
+@cindex Benutzer, von MySQL
+@cindex News-Sites
+@cindex Suchmaschinen, Web
+@cindex Web-Suchmaschinen
+@cindex Online-Magazine
+@cindex Magazine, online
+@cindex Websites
+@cindex Dienstleistungen
+@cindex PHP, Websites
+@cindex Berater, Liste
+@cindex Web-Seiten, verschiedene
+@cindex @code{Contrib}-Verzeichnis
+@cindex URLs zu MySQL-Informationen
+@cindex MySQL-bezogene Informations-URLs
+
+Die MySQL-Portale (@uref{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.
-@cindex Tek-Tipps-Foren
-@cindex Foren, Tek-Tipps
-@item @uref{http://www.tek-Tipps.com/}
-Tek-Tipps-Foren: Mehr als 800 unabhängige, Peer-to-Peer und
-nicht-kommerzielle Support-Foren für Computerexperten. Enthält Features wie
-automatische E-Mail-Benachrichtigungen für Antworten, eine Link-Bibliothek
-und garantierte Vertraulichkeit für Mitglieder.
+Einige der momentanen MySQL-Portal-Kategorien:
+
+@itemize @bullet
+@item 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.
+
+@item 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 @emph{Ihre} Site oder Erfolgsgeschichte mit!
+
+@item Software
+Hier finden Sie eine Vielzahl von Applikationen und Wrappern, die den
+MySQL-Server benutzen, die Sie auch herunter laden können.
-@item @uref{http://www.public.asu.edu/~peterjn/btree/}
-B-Trees: Balanced Tree Datenstrukturen.
+@item Distributionen
+Hier finden Sie die verschiedenen Linux-Distributionen und weitere
+Software-Pakete, die die MySQL-Software enthalten.
-@item @uref{http://www.fit.qut.edu.au/~maire/baobab/lecture/sld001.htm}
-Eine Abhandlung über B-Trees.
-@end table
+@item Berater
+Hier finden Sie Informationen über MySQL-Berater.
-Es gibt viele weitere Webseiten, die MySQL benutzen. @xref{Benutzer}.
-Schicken Sie Vorschläge zur Erweiterung dieser Liste an
-@email{webmaster@@mysql.com}. Mittlerweile machen wir es zur Bedingung,
-dass Sie ein MySQL-Logo an irgendeiner Stelle Ihrer Website zeigen, wenn
-Sie möchten, dass diese auf dieser Liste erscheint. Es ist in Ordnung, wenn
-das Logo auf einer Seite wie 'Benutzte Werkzeuge' oder ähnliches erscheint.
+@item Partner
+Hier finden Sie alle MySQL-Partner.
+@end itemize
-@node Fragen, , Nützliche Links, MySQL-Informationsquellen
+@node Questions, , Portals, MySQL Information Sources
+@c German node Fragen
@subsection MySQL-Mailing-Listen
@cindex Berichten, Fehler
@cindex MySQL-Mailing-Listen
-@menu
-* Mailing-Listen:: Die MySQL-Mailing-Listen
-* Fragen stellen:: Wie man Fragen stellt oder Bugs berichtet
-* Bug-Berichte:: Wie man Bugs oder Probleme berichtet
-* Fragen beantworten:: Richtlinien für die Beantwortung von Fragen auf der Mailing-Liste
-@end menu
Dieser Abschnitt führt Sie in die MySQL-Mailing-Listen ein und zeigt einige
Richtlinien und ihre Benutzung auf.
-@node Mailing-Listen, Fragen stellen, Fragen, Fragen
+@menu
+* Mailing-list::
+* Asking questions::
+* Bug reports::
+* Answering questions::
+@end menu
+
+@node Mailing-list, Asking questions, Questions, Questions
+@c German node Mailing-Listen
@subsubsection Die MySQL-Mailing-Listen
@cindex Mailing-Listen
@@ -2371,11 +2338,11 @@ Sie an die falsche Liste posten, erhalten Sie vielleicht keine Antwort!
@item @email{mysql-digest-subscribe@@lists.mysql.com} mysql-digest
Die @code{mysql}-Liste in Digest-Form (zusammengefasst). Anstelle
-individueller Nachrichten wird einmal pro Tag eine grosse Mail mit allen
+individueller Nachrichten wird einmal pro Tag eine große Mail mit allen
Nachrichten dieses Tages geschickt.
@item @email{bugs-subscribe@@lists.mysql.com} bugs
-An diese Liste sollte Sie ausschliesslich komplette, wiederholbare
+An diese Liste sollte Sie ausschließlich komplette, wiederholbare
Bug-Berichte schicken, indem Sie das @code{mysqlbug}-Skript benutzen. (Wenn
Sie unter Windows arbeiten, sollten Sie eine Beschreibung des
Betriebssystems und der MySQL-Version hinzufügen.)
@@ -2464,7 +2431,8 @@ your@@email.address} an diese Liste.
@end table
-@node Fragen stellen, Bug-Berichte, Mailing-Liste, Fragen
+@node Asking questions, Bug reports, Mailing-list, Questions
+@c German node Fragen stellen
@subsubsection Wie man Fragen stellt oder Bugs berichtet
@cindex Netz-Etikette
@@ -2500,7 +2468,8 @@ keine Antwort auf Ihre Frage finden, lesen Sie den nächsten Abschnitt über
die Mailing-Listen unter @email{mysql@@lists.mysql.com}.
-@node Bug-Berichte, Fragen beantworten, Fragen stellen, Fragen
+@node Bug reports, Answering questions, Asking questions, Questions
+@c German node Bug-Berichte
@subsubsection Wie man Bugs oder Probleme berichtet
@cindex Bugs, berichten
@@ -2529,7 +2498,7 @@ Ihres MySQL-Installationsverzeichnisses. Falls es Ihnen nicht möglich ist,
Informationen mitliefern, die in diesem Abschnitt aufgeführt sind.
Das @code{mysqlbug}-Skript hilft Ihnen, einen Bericht zu erstellen, der
-viele der folgenden Informationen automatisch einschliesst, aber falls
+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.
@@ -2565,7 +2534,7 @@ Informationen geliefert haben.
Die häufigste Fehler besteht darin, dass Leute die Versionsnummer der
MySQL-Distribution, die sie benutzen nicht angeben, oder vergessen anzugeben,
auf welcher Plattform sie MySQL installiert haben (inklusive der
-Betriebssystem-Version). Diese Informationen sind äusserst relevant, und in
+Betriebssystem-Version). Diese Informationen sind äußerst relevant, und in
99 von 100 Fällen ist der Bug-Bericht ohne sie nutzlos! Sehr oft erhalten
wir Fragen wie 'Warum funktioniert das bei mir nicht?', nur um
herauszufinden, dass das beschriebene Feature nicht in der benutzten
@@ -2575,7 +2544,7 @@ Manchmal ist der Fehler plattformabhängig; in solchen Fällen ist es
praktisch unmöglich, irgend etwas zu beheben, ohne das Betriebssystem und
die Versionsnummer des Betriebssystems zu kennen.
-Denken Sie auch daran, Informationen über Ihren Compiler einzuschliessen,
+Denken Sie auch daran, Informationen über Ihren Compiler einzuschließen,
falls sie MySQL selbst kompilieren. Oft finden Leute Fehler in
Compilern und denken, dass das Problem MySQL-bezogen ist. Die meisten
Compiler werden permanent weiter entwickelt und werden von Version zu
@@ -2584,24 +2553,24 @@ oder nicht, müssen wir wissen, welcher Compiler benutzt wird. Beachten Sie,
dass jedes Compiler-Problem als Bug-Bericht betrachtet und deshalb
entsprechend berichtet werden sollte.
-Es ist äusserst hilfreich, wenn eine gute Beschreibung des Probleme in
-Ihrem Bug-Bericht eingeschlossen ist, das heisst ein gutes Beispiel aller
+Es ist äußerst hilfreich, wenn eine gute Beschreibung des Probleme in
+Ihrem Bug-Bericht eingeschlossen ist, das heißt ein gutes Beispiel aller
Dinge, die Sie getan haben, die zu dem Problem führten, sowie das Problem
selbst. Die besten Bug-Berichte sind diejenigen, die ein komplettes
Beispiel zeigen, wie man den Bug oder das Problem reproduzieren kann.
-@xref{Reproduzierbarer Testfall}.
+@xref\{Reproduceable test case}.
Wenn ein Programm eine Fehlermeldung produziert, ist es sehr wichtig,
-diese in Ihren Bericht einzuschliessen! Wenn wir in den Archiven der
+diese in Ihren Bericht einzuschließen! Wenn wir in den Archiven der
Programme suchen, ist es besser, wenn die Fehlernachricht exakt mit
derjenigen übereinstimmt, die das Programm produziert. (Sogar
-Gross-/Kleinschreibung sollte berücksichtigt werden!) Sie sollten nie
+Groß-/Kleinschreibung sollte berücksichtigt werden!) Sie sollten nie
versuchen, sich daran zu erinnern, was die Fehlernachricht war; stattdessen
sollten Sie die gesamte Nachricht per Kopieren und Einfügen in Ihrem
Bericht unterbringen!
Wenn Sie ein Problem mit MyODBC haben, sollten Sie versuchen, eine
-MyODBC-Trace-Datei zu erstellen. @xref{MyODBC-Bug-Bericht}.
+MyODBC-Trace-Datei zu erstellen. @xref\{MyODBC bug report}.
Bitten denken Sie daran, dass viele Leute, die Ihren Bericht lesen, dabei
ein 80-Spalten-Anzeigegerät benutzen. Wenn Sie Berichte oder Beispiele
@@ -2611,7 +2580,7 @@ Sie deshalb die @code{--vertical}-Option (oder den
verfügbare Anzeigebreite überschreiten würden (zum Beispiel beim
@code{EXPLAIN SELECT}-Statement; siehe dazu das Beispiel weiter unten).
@cindex Bug-Berichte, Kriterien für
-Bitte schliessen Sie folgende Informationen in Ihren Bug-Bericht ein:
+Bitte schließen Sie folgende Informationen in Ihren Bug-Bericht ein:
@itemize @bullet
@item
@@ -2626,12 +2595,12 @@ Hersteller und Modell der Maschine, auf der Sie arbeiten.
@item
Name und Version des Betriebssystems. Bei den meisten Betriebssystemen
-lässt sich diese Information herausfinden, indem man das Unix-Kommando
+läßt sich diese Information herausfinden, indem man das Unix-Kommando
@code{uname -a} ausführt.
@item
-Manchmal ist die Grösse des Arbeitsspeichers (real und virtuell) relevant.
-Im Zweifelsfall schliessen Sie diese Werte ein.
+Manchmal ist die Größe des Arbeitsspeichers (real und virtuell) relevant.
+Im Zweifelsfall schließen Sie diese Werte ein.
@item
Wenn Sie eine Quelldistribution von MySQL benutzen, werden Name und
@@ -2639,7 +2608,7 @@ Versionsnummer des Compilers benötigt. Wenn Sie eine Binärdistribution
haben, geben Sie den Namen der Distribution an.
@item
-Wenn das Problem während der Kompilation auftritt, schliessen Sie die
+Wenn das Problem während der Kompilation auftritt, schließen Sie die
exakte Fehlermeldung (bzw. -meldungen) ein und zusätzlich ein paar Zeilen
des Kontextes um den problembehafteten Code herum in der Datei, wo der
Fehler auftrat.
@@ -2648,10 +2617,10 @@ Fehler auftrat.
Falls @code{mysqld} abstürzt, sollten Sie auch die Anfrage (Query)
mitteilen, die @code{mysqld} zum Absturz brachte. Gewöhnlich können Sie das
herausfinden, indem Sie @code{mysqld} mit angeschaltetem Logging laufen
-lassen. @xref{Log-Dateien benutzen}.
+lassen. @xref\{Using log files}.
@item
-Falls irgend eine Datenbanktabelle mit dem Problem zu tun hat, schliessen
+Falls irgend eine Datenbanktabelle mit dem Problem zu tun hat, schließen
Sie die Ausgabe von @code{mysqldump --no-data db_name tbl_name1 tbl_name2
...} ein. Das ist sehr leicht zu bewerkstelligen und eine sehr hilfreiche
Möglichkeit, Informationen über jegliche Tabelle in einer Datenbank zu
@@ -2661,14 +2630,14 @@ erhalten, die uns hilft, eine Situation herzustellen, die mit derjenigen
@item
Bei Bugs, die sich auf Geschwindigkeitsprobleme beziehen, oder bei
Problemen mit @code{SELECT}-Statements, sollten Sie immer die Ausgabe von
-@code{EXPLAIN SELECT ...} einschliessen, und zumindest die Anzahl der
+@code{EXPLAIN SELECT ...} einschließen, und zumindest die Anzahl der
Zeilen, die das @code{SELECT}-Statement produziert. Je mehr Informationen
Sie uns über Ihre Situation geben, desto wahrscheinlicher ist es, dass
Ihnen jemand helfen kann! Das folgende Beispiel ist ein sehr gutes Beispiel
eines Bug-Berichts (es sollte natürlich mit dem @code{mysqlbug}-Skript
berichtet werden):
-Beispiel unter Benutzung des @code{mysql}-Kommandozeilen-Werzeugs (achten Sie
+Beispiel unter Benutzung des @code{mysql}-Kommandozeilen-Werkzeugs (achten Sie
auf die Benutzung des @code{\G}-Statement-Begrenzers für Statements, deren
Ausgabebreite ansonsten die von 80-Zeilen-Ausgabegeräten überschreiten
würde):
@@ -2703,7 +2672,7 @@ System arbeitet!
@item
Falls Sie keinen Testfall mit ein paar Zeilen produzieren können oder falls
-Ihre Tabelle zu gross ist, um an die Mailing-Liste geschickt zu werden
+Ihre Tabelle zu Groß ist, um an die Mailing-Liste geschickt zu werden
(mehr als 10 Zeilen), sollten Sie mit @code{mysqldump} einen Dump Ihrer
Tabellen machen und eine @file{README}-Datei erzeugen, die Ihr Problem
beschreibt.
@@ -2742,7 +2711,7 @@ benutzt haben, als Sie den @code{mysqld}-Daemon gestartet haben, und die
Sie für Client-Programme wie @code{mysql} benutzen, sowie
diejenigen, die Sie für die Konfiguration des @code{configure}-Skripts
nehmen, denn diesen sind oft der Schlüssel für Antworten und deshalb
-äusserst relevant!
+äußerst relevant!
Es ist immer eine gute Idee, sie in jedem Fall anzugeben! Wenn Sie Module
wie Perl oder PHP benutzen, fügen Sie bitte die Versionszahl von diesen mit
ein.
@@ -2783,7 +2752,7 @@ feststellen zu können.
@item
Geben Sie in Ihrer Mail zu erkennen, dass Sie das Referenzhandbuch gelesen
-und die Mail-Archive durchgesehen haben, damit andere wiessen, dass Sie
+und die Mail-Archive durchgesehen haben, damit andere wissen, dass Sie
versucht haben, das Problem selbst zu lösen.
@item
@@ -2802,28 +2771,28 @@ Wenn das Handbuch die Syntax, die Sie benutzen, beschreibt, Sie aber eine
MySQL-Änderungsgeschichte (Change History) nachsehen, wann die Syntax
implementiert wurde. In diesem Fall haben Sie die Möglichkeit, ein Upgrade
auf eine neuere Version von MySQL vorzunehmen.
-@xref{Neuigkeiten}.
+@xref\{News}.
@item
Wenn Sie ein Problem in der Art haben, dass Ihre Daten anscheinend
beschädigt sind oder Sie Fehlermeldungen bekommen, wenn Sie auf eine
bestimmte Tabelle zugreifen, sollten Sie zunächst Ihre Tabellen überprüfen
-und anschliessend reparieren, indem Sie @code{myisamchk} oder @code{CHECK
+und anschließend reparieren, indem Sie @code{myisamchk} oder @code{CHECK
TABLE} und @code{REPAIR TABLE} benutzen.
-@xref{MySQL-Datenbankadministration}.
+@xref\{MySQL Database Administration}.
@item
Wenn Sie oft beschädigte Tabellen erhalten, sollten Sie versuchen
herauszufinden, wann und warum das geschieht! In diesem Fall kann die
@file{mysql-data-directory/'hostname'.err}-Datei einige Informationen
-darüber enthalten, was geschehen ist. @xref{Fehler-Log-Datei}. Bitte fügen Sie
+darüber enthalten, was geschehen ist. @xref\{Error log}. Bitte fügen Sie
jede relevante Information aus dieser Datei in Ihren Bug-Bericht ein!
Normalerweise sollte @code{mysqld} @strong{NIE} eine Tabelle zerstören,
ausser wenn der Server mitten während eines Updates gekillt wurde! Wenn Sie
den Grund für den Absturz von @code{mysqld} herausfinden können, ist es
sehr viel einfacher für uns, Ihnen eine Lösung des Problems an die Hand zu
geben!
-@xref{Was ist ein Absturz}.
+@xref\{What is crashing}.
@item
Falls möglich, sollten Sie die aktuellste Version von MySQL herunter laden,
@@ -2832,7 +2801,7 @@ von MySQL werden gründlich getestet und sollten ohne Probleme
funktionieren! Wir halten uns daran, alles so abwärtskompatibel wie
möglich zu machen. Daher sollte es Ihnen möglich sein, innerhalb von
Minuten die MySQL-Version auszutauschen!
-@xref{Welche Version}.
+@xref\{Which version}.
@end itemize
@cindex Technischer Support, E-Mail-Adresse
@@ -2845,9 +2814,9 @@ Bearbeitung erfährt. Schicken Sie ihn gleichzeitig an die entsprechende
Mailing-Liste, um zu sehen, ob schon jemand anderes das selbe Problem hatte
(und vielleicht gelöst hat).
-Informationen zu Bug-Berichten siehe @strong{MyODBC} und @ref{ODBC-Probleme}.
+Informationen zu Bug-Berichten siehe @strong{MyODBC} und @ref\{ODBC Problems}.
-Lösungen für häufig auftretende Probleme siehe @xref{Probleme}.
+Lösungen für häufig auftretende Probleme siehe @xref\{Problems}.
Wenn Ihnen Antworten individuell zugesandt werden und nicht an die
Mailing-Liste, wird es als gute Etikette betrachtet, die Antworten
@@ -2856,7 +2825,8 @@ damit andere von den Antworten profitieren können, die Ihnen geholfen
haben, Ihr Problem zu lösen!
-@node Fragen beantworten, , Bug-Berichte, Fragen
+@node Answering questions, , Bug reports, Questions
+@c German node Fragen beantworten
@subsubsection Richtlinien für die Beantwortung von Fragen auf der Mailing-Liste
@cindex Netz-Etikette
@@ -2864,7 +2834,7 @@ haben, Ihr Problem zu lösen!
@cindex Fragen beantworten, Etikette
@cindex Mailing-Listen, Richtlinien
-Wenn Sie davon ausgehen, dass Ihre Antwort auf breites Interesse stösst,
+Wenn Sie davon ausgehen, dass Ihre Antwort auf breites Interesse stößt,
sollten Sie an die Mailing-Liste posten, statt direkt der Person zu
antworten, die die Frage stellte. Versuchen Sie, Ihre Antwort so allgemein
zu halten, dass auch andere als der ursprünglich Fragende von Ihrer Antwort
@@ -2879,819 +2849,81 @@ Bitte schicken Sie Ihre Mailnachrichten nicht im HTML-Format! Viele
Benutzer lesen Nachrichten mit nicht HTML-fähigen Anwendungen!
-@node Lizensierung und Support, Kompatibilität, MySQL-Informationsquellen, Einführung
-@section MySQL-Lizensierung und -Support
-
-@cindex Lizenzbedingungen
-@cindex Support-Konditionen
-
-@menu
-* Lizenzpolitik:: MySQL-Lizenzpolitik
-* Copyright:: Copyrights, die von MySQL benutzt werden
-* Lizensierungsbeispiele:: Beispiele für Lizensierungssituationen
-* Kosten:: MySQL-Lizensierungs- und Supportkosten
-* Support:: Arten von kommerziellem Support
-@end menu
-
-Dieser Abschnitt beschreibt MySQL-Support- und Lizensierungsvereinbarungen.
-
-@itemize @bullet
-
-@item Die Urheberrechte, unter denen MySQL vertrieben wird
-(@pxref{Copyright})
-
-@item Beispielsituationen, die darstellen, wann eine Lizensierung
-erforderlich ist
-(@pxref{Lizensierungsbeispiele})
-
-@item Supportkosten (@pxref{Kosten}) und Supportnutzen
-(@pxref{Support})
-@item Kosten der kommerziellen Lizensierung
-@end itemize
-
-
-@node Lizenzpolitik, Copyright, Lizensierung und Support, Lizensierung und Support
-@subsection MySQL-Lizenzpolitik
-
-@cindex Lizenzpolitik
-@cindex technischer Support, Lizensierung
-@cindex Support, Lizensierung
-@cindex General Public License, MySQL
-
-Die formalen Bedingungen der GPL-Lizenz stehen unter @ref{GPL-Lizenz}.
-Im Wesentlichen ist unsere Lizenzpolitik und die Interpretation der
-GPL wie folgt:
-
-Beachten Sie bitte, dass ältere Versionen von MySQL immer noch einer
-@uref{http://www.mysql.com/Support/arrangements/mypl.html, 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
-@uref{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:
-
-@itemize @minus
-@item
-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 @uref{http://www.gnu.org/copyleft/gpl-faq.html}.
-@item
-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.
-
-@item
-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.
-xxx You have a Distribution of MySQL und you xxx Arjen: What does this mean: ...don't provide the
-source code for your copy of the MySQL server ... xxx Shouldn't it be: for your application ... ??? xxx
-, as defined in the GPL license. xxx
-@end itemize
-
-Eine Lizenz wird @strong{NICHT} benötigt:
-
-@itemize @minus
-
-@item
-Sie benötigen keine Lizenz, wenn Sie den Client-Code in kommerzielle
-Programme einschliessen. Der Client-Teil von MySQL unterliegt der
-LGPL @code{GNU Library General Public License}-Lizenz. Der
-@code{mysql}-Kommandozeilen-Client beinhaltet Code der
-@code{readline}-Bibliothek, die unter @code{GPL} steht.
-
-@item
-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.
-
-@item
-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.)
-@end itemize
-
-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. @xref{Kontaktinformationen}.
-
-Wenn Sie eine MySQL-Lizenz benötigen, ist die Bezahlung am einfachsten,
-wenn Sie das Lizenzformular auf dem Secure-Server von MySQL unter
-@uref{https://order.mysql.com/} benutzen. Andere Zahlungsformen werden
-unter @ref{Zahlungsinformationen} besprochen.
-
-
-@node Copyright, Lizensierungsbeispiele, Lizenzpolitik, Lizensierung und Support
-@subsection Copyrights, die von MySQL benutzt werden
-
-@cindex Urheberrechte
-
-@menu
-* Copyright-Änderungen:: Mögliche zukünftige Copyright-Änderungen
-@end menu
-
-Es gibt mehrere unterschiedliche Copyright, die für die MySQL-Distribution
-gelten:
-
-@enumerate
-@item
-
-Der MySQL-spezifische Quelltext, der benötigt wird, um die
-@code{mysqlclient}-Bibliothek zu kompilieren, ist unter der @code{LGPL}
-lizensiert. Programme im @file{client}-Verzeichnis sind GPL. Jede Datei hat
-einen Header, aus dem ersichtlich ist, welches Copyright für diese Datei
-gilt.
-
-@item Die Client-Bibliothek und die (GNU @code{getopt})-Bibliothek werden
-von der ``GNU LIBRARY GENERAL PUBLIC LICENSE'' abgedeckt. @xref{LGPL-Lizenz}.
-
-@item Einige Teile des Quelltextes (die @code{regexp}-Bibliothek) werden
-von einem Copyright in Berkeley-Art abgedeckt.
-
-@item
-Der gesamte Quelltext des Servers und der (GNU @code{readline})-Bibliothek
-werden von der ``GNU GENERAL PUBLIC LICENSE'' abgedeckt. @xref{GPL-Lizenz}.
-Diese findet sich unter anderem als Datei @file{COPYING} in den
-Distributionen.
-
-@end enumerate
-
-Ein Ziel ist, dass die SQL-Client-Bibliothek frei genug sein sollte, dass
-es möglich ist, MySQL-Support in kommerzielle Produkte einzubauen, ohne
-dass man eine Lizenz benötigt. Deshalb haben wir für den Client-Code die
-LGPL-Lizenz gewählt.
-@cindex Lizensierung, kostenlos
-@cindex Kostenlose Lizensierung
-
-Das bedeutet, dass Sie MySQL kostenlos mit jedem Programm benutzen können,
-das irgendeine der freien Software-Lizenzen benutzt. MySQL ist ausserdem
-kostenlos für jeden Endanwender für seinen eigenen Gebrauch oder den in
-seinem Unternehmen.
-
-Wenn jedoch die MySQL-Benutzung für Sie etwas Wichtiges darstellt, sollten
-Sie helfen, die weitere Entwicklung sicherzustellen, indem Sie eine Lizenz
-oder einen Support-Vertrag erwerben. @xref{Support}.
-
-
-@node Copyright-Änderungen, , Copyright, Copyright
-@subsubsection Copyright-Änderungen
-
-Version 3.22 von MySQL benutzt noch eine strengere Lizenz. Sehen Sie in der
-Dokumentation dieser Version nach, um weitere Informationen zu erhalten.
-
-
-@node Lizensierungsbeispiele, Kosten, Copyright, Lizensierung und Support
-@subsection Beispiele für Lizensierungssituationen
-
-@menu
-* Produkte die MySQL benutzen:: Produkte verkaufen, die MySQL benutzen
-* ISP:: MySQL-Services für Internet Service Provider
-* Webserver:: Einen Webserver mit MySQL benutzen
-@end menu
-
-@cindex Lizensierung, Beispiele
-@cindex Produkte verkaufen
-@cindex Produkte, verkaufen
-
-Dieser Abschnitt beschreibt einige Situationen und erläutert, ob Sie in
-diesen eine Lizenz für den MySQL-Server benötigen oder nicht. Allgemein
-gilt für diese Beispiele, dass MySQL als integraler Bestandteil eines
-Produkts benutzt wird.
-
-Beachten Sie, dass eine einzelne MySQL-Lizenz eine beliebige Anzahl von
-Prozessoren und @code{mysqld}-Servern auf einer Maschine abdeckt! Es gibt
-keine künstliche Grenze für die Anzahl von Clients, die sich mit dem Server
-verbinden.
-
-
-@node Produkte die MySQL benutzen, ISP, Lizensierungsbeispiele, Lizensierungsbeispiele
-@subsubsection Produkte verkaufen, die MySQL benutzen
-
-Um festzustellen, ob Sie eine MySQL-Lizenz benötigen oder nicht, wenn Sie
-Ihre Applikation verkaufen, sollten Sie sich fragen, ob das korrekte
-Funktionieren Ihrer Applikation von der Verwendung von MySQL abhängt und ob
-Sie den MySQL-Server in Ihr Produkt einschliessen. Es gibt mehrere Fälle zu
-bedenken:
-
-@itemize @bullet
-@item
-Benötigt Ihre Applikation MySQL, um richtig zu funktionieren?
-
-@item
-Wenn Ihr Produkt MySQL benötigt, brauchen Sie eine Lizenz für jede
-Maschine, auf der der @code{mysqld}-Server läuft. Wenn Sie zum Beispiel
-Ihre Applikation um MySQL herum entworfen haben, haben Sie in der Tat ein
-kommerzielles Produkt hergestellt, das die Engine benötigt, und benötigen
-deshalb eine Lizenz.
-
-@item
-Wenn Ihre Applikation MySQL nicht benötigt, brauchen Sie keine Lizenz zu
-erwerben. Wenn MySQL zum Beispiel lediglich einige optionale Features zu
-Ihrem Produkt hinzufügt (so wie Loggen in eine Datenbank, wo MySQL benutzt
-wird, statt in eine Textdatei zu schreiben), fällt das unter die normale
-Benutzung, und es wird keine Lizenz benötigt.
-
-@item
-Mit anderen Worten: Sie brauchen eine Lizenz, wenn Sie ein Produkt speziell
-für die Benutzung mit MySQL entworfen haben, oder das MySQL benötigt, um
-überhaupt zu funktionieren. Hierbei ist es egal, ob Sie MySQL als Teil
-Ihrer Produkt-Distribution für Ihren Kunden zur Verfügung stellen.
-
-@item
-Es kommt zusätzlich darauf an, was Sie für Ihren Kunden tun. Planen Sie,
-Ihren Kunden mit detaillierten Anweisungen für die Installation von MySQL
-mit Ihrer Software zu versorgen? Dann hängt Ihr Produkt wahrscheinlich von
-MySQL ab, deshalb müssten Sie eine Lizenz kaufen. Wenn Sie lediglich die
-Anbindung an eine Datenbank beabsichtigen, von der Sie annehmen können,
-dass Sie zur Zeit, wo Ihre Software gekauft wird, bereits installiert ist,
-brauchen Sie wahrscheinlich keine Lizenz.
-
-@end itemize
-
-
-@node ISP, Webserver, Produkte die MySQL benutzen, Lizensierungsbeispiele
-@subsubsection MySQL-Services für Internet Service Provider (ISP)
-
-@cindex ISP-Services
-@cindex Services, ISP
-@cindex Services, Web
-@cindex Internet Service Provider
-
-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 @code{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.
-
-
-@node Webserver, , ISP, Lizensierungsbeispiele
-@subsubsection Einen Webserver betreiben, der MySQL benutzt
-
-@cindex Webserver, betreiben
-@cindex Einen Webserver betreiben
-
-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.
-
-
-@node Kosten, Support, Lizensierungsbeispiele, Lizensierung und Support
-@subsection MySQL-Lizensierungs- und Support-Kosten
-
-@cindex Kosten, Lizensierung und Support
-@cindex Lizensierungskosten
-@cindex Support-Kosten
-@cindex Preise, Lizensierung und Support
-
-@menu
-* Zahlungsinformationen:: Zahlungsinformationen
-* Kontaktinformationen:: Kontaktinformationen
-@end menu
-
-Unsere aktuellen Lizenzpreise sind unten aufgeführt. Um einen Kauf zu
-tätigen, besuchen Sie bitte @uref{https://order.mysql.com/}.
-
-Wenn Sie mit Kreditkarte bezahlen, ist die Währung EURO (European Union
-Euro), so dass sich Preise leicht unterscheiden können.
-
-@multitable @columnfractions .3 .3 .3
-@item @strong{Anzahl der Lizenzen} @tab @strong{Pro Kopie}
-@item 1-9 @tab 230 EURO
-@item 10-24 @tab 138 EURO
-@item 25-49 @tab 117 EURO
-@item 50-99 @tab 102 EURO
-@item 100-249 @tab 91 EURO
-@item 250-499 @tab 76 EURO
-@item 500-999 @tab 66 EURO
-@end multitable
-
-Für grossvolumige Käufe (OEM) kontaktieren Sie bitte
-@email{sales@@mysql.com}.
-
-Bei OEM-Käufen müssen Sie als Mittelsmann für eventuelle Problem oder
-Erweiterungsanfragen Ihrer Benutzer auftreten. Wir bestehen darauf, dass
-OEM-Kunden zumindest einen erweiterten E-Mail-Support-Vertrag haben.
-Beachten Sie, dass OEM-Lizenzen nur für Produkte gelten, bei denen Benutzer
-keinen direkten Zugriff auf den MySQL-Server haben (eingebettete Systeme).
-Mit anderen Worten sollte der MySQL-Server nur zusammen mit Ihrer
-Applikation, die Sie auslieferten, benutzt werden.
-
-Wenn Sie ein Produkt mit geringer Marge, aber hohen Stückzahlen verkaufen,
-können Sie jederzeit mit uns über andere Konditionen reden (zum Beispiel
-einen Prozentsatz des Verkaufspreises). In einem solchen Fall bitten wir
-Sie, möglichst umfassende Informationen über Ihr Produkt zur Verfügung zu
-stellen, auch was Preise, Markt und sonstige Informationen angeht, die
-relevant sein könnten.
-
-Eine Lizenz zum vollen Preis ist keine Support-Vereinbarung und beinhaltet
-nur minimalen Support. Das heisst, dass wir versuchen werden, alle
-relevanten Fragen zu beantworten. Wenn die Antwort in der Dokumentation
-steht, werden wir Sie auf den entsprechenden Abschnitt leiten. Wenn Sie
-weder eine Lizenz noch Support gekauft haben, werden wir wahrscheinlich
-überhaupt nicht antworten.
-
-Wenn wir etwas entdecken, das wir als echten Bug einstufen, werden wir
-diesen in praktisch jedem Fall beheben. Wenn Sie jedoch für Support
-bezahlen, werden wir Sie über den Status der Bug-Beseitigung auf dem
-laufenden halten, statt ihn nur in einem späteren Release zu beheben.
-
-Weitergehender Support wird separat verkauft. Beschreibungen, was die
-unterschiedlichen Grade des Supports beinhalten, werden in @ref{Support}
-aufgeführt. Die Kosten für die unterschiedlichen Typen von kommerziellem
-Support sind unten dargestellt. Die Support-Preise sind in EURO (European
-Union Euro) angegeben.
-
-@multitable @columnfractions .5 .5
-@item @strong{Support-Typ} @tab @strong{Kosten pro Jahr}
-@item Grundlegender E-Mail-Support. @xref{Grundlegender E-Mail-Support}. @tab EURO 200
-@item Erweiterter E-Mail-Support @xref{Erweiterter E-Mail-Support}. @tab EURO 1000
-@item Login-Support @xref{Login-Support}. @tab EURO 2000
-@item Erweiterter Login-Support @xref{Erweiterter Login-Support}. @tab EURO 5000
-@item Telefon-Support @xref{Telefon-Support}. @tab EURO 12000
-@end multitable
-
-Sie können von jedem niedrigerem Grad von Support zu einem höheren Grad
-wechseln zur Preisdifferenz zwischen den beiden Support-Graden.
-
-Zusätzlich bieten wir Telefon-Support an (hauptsächlich Notfall-Support,
-aber auch 24/7-Support). Diese Support-Option hat allerdings keinen
-Festpreis, sondern wir von Fall zu Fall ausgehandelt. Wenn Sie an dieser
-Option interessiert sind, können Sie uns unter E-Mail
-@email{sales@@mysql.com} anschreiben und uns Ihren Bedarf mitteilen.
-
-Beachten Sie, dass unser Vertrieb sehr beschäftigt ist, so dass es einige
-Zeit dauern kann, bis Ihre Anfrage bearbeitet wird. Unser Support-Personal
-wird allerdings immer unverzüglich auf Support-Fragen reagieren!
-
-
-@node Zahlungsinformationen, Kontaktinformationen, Kosten, Kosten
-@subsubsection Zahlungsinformationen
-
-@cindex Zahlungsinformationen
-
-Momentan akzeptieren wir Zahlungen über SWIFT, Schecks und Kreditkarten.
-
-Zahlungen sollten ausgeführt werden an:
-
-@example
-Postgirot Bank AB
-105 06 STOCKHOLM, SCHWEDEN
-
-MySQL AB
-Postfach 6434
-11382 STOCKHOLM, SCHWEDEN
-
-SWIFT-Adresse: PGSI SESS
-Kontonummer: 96 77 06 - 3
-@end example
-
-Geben Sie Lizenz und / oder Support an sowie Ihren Namen und Ihre
-E-Mail-Adresse.
-
-In Europa und Japan können Sie EuroGiro benutzen (was weniger kosten
-sollte) und dieselbe Bankverbindung.
-
-Wenn Sie mit Scheck bezahlen, geben Sie als Zahlungsempfänger ``MySQL
-Finlund AB'' an und schicken Sie ihn an folgende Adresse:
-
-@example
-MySQL AB
-Postfach 6434, Torsgatan 21
-11382 STOCKHOLM, SCHWEDEN
-@end example
-
-Wenn Sie mit Kreditkarte über das Internet bezahlen wollen, können Sie
-@uref{https://order.mysql.com/} benutzen, das sichere Lizenzformular von
-MySQL AB.
-
-Sie können das Lizenzformular auch ausdrucken, ausfüllen und per Fax
-schicken an:
-
-+46-8-729 69 05
-
-Wenn Sie auf Rechnung zahlen wollen, können Sie das Lizenzformular benutzen
-und im Kommentarfeld eintragen ``bill us''. Sie können auch eine Nachricht
-an @email{sales@@mysql.com} (@strong{nicht} @code{mysql@@lists.mysql.com}!)
-schicken und Ihre Unternehmensdaten angeben mit der Bitte, Ihnen eine
-Rechnung zu stellen.
-
-
-@node Kontaktinformationen, , Zahlungsinformationen, Kosten
-@subsubsection Kontaktinformationen
-
-@cindex Kontaktinformationen
-@cindex Lizensierung, Kontaktinformationen
-@cindex Werbung, Kontaktinformationen
-@cindex Anstellung, Kontaktinformationen
-@cindex Partnerschaft mit MySQL
-@cindex Anstellung bei MySQL
-@cindex Jobs bei MySQL
-
-Für kommerzielle Lizensierung kontaktieren Sie bitte das
-MySQL-Lizensierungsteam, bevorzugt per E-Mail an
-@email{Lizensierung@@mysql.com}. Fax ist auch möglich, aber die Bearbeitung
-dauert erheblich länger (Fax +46-8-729 69 05).
-
-Wenn Sie ein Unternehmen vertreten, dass an einer Partnerschaft mit MySQL
-interessiert ist, schicken Sie bitte eine E-Mail an
-@email{partner@@mysql.com}.
-
-Zeitnahe, präzise Antworten auf technische Fragen erhalten Sie, wenn Sie
-unter @uref{https://order.mysql.com/, order} einen unserer
-@uref{http://www.mysql.com/Support/arrangements/types.html,
-Support-Verträge} abschliessen.
-MySQL-Support wird von den MySQL-Entwicklern geleistet, weshalb der
-Standard extrem hoch ist.
-
-Wenn Sie daran interessiert sind, ein Werbebanner auf unserer Website zu
-schalten, schicken Sie bitte eine E-Mail an @email{advertising@@mysql.com}.
-
-Wenn Sie an einem der Jobs interessiert sind, die im
-@uref{http://www.mysql.com/development/jobs/, jobs}-Abschnitt aufgeführt
-sind, schicken Sie bitte eine E-Mail an @email{jobs@@mysql.com}.
-
-Allgemeine Diskussionen mit vielen unserer Benutzer können Sie auf den
-entsprechenden @uref{http://www.mysql.com/documentation/lists.html,
-Mailing-Listen} führen.
-
-Allgemeine Informationsanfragen schicken Sie bitte an @email{info@@mysql.com}.
+@node Compatibility, TODO, MySQL Information Sources, Deutsch
+@c German node Kompatibilität
+@section Wie Standard-kompatibel ist MySQL?
-Fragen zur Arbeitsweise oder zu Inhalten unserer Website stellen Sie bitte
-an @email{webmaster@@mysql.com}.
+@cindex Kompatibilität mit ANSI SQL
+@cindex Standard-Kompatibilität
+@cindex Erweiterungen von ANSI SQL
+@cindex ANSI SQL92, Erweiterungen
-@node Support, , Kosten, Lizensierung und Support
-@subsection Arten von kommerziellem Support
+Dieser Abschnitt beschreibt, wie sich MySQL zum ANSI SQL-Standard verhält.
+MySQL hat viele Erweiterungen zum ANSI SQL-Standard, und hier steht, welche
+das sind und wie man sie benutzt. Hier finden Sie auch Informationen über
+Funktionalität, die MySQL fehlt, und wie man mit diesen Unterschieden
+umgeht.
-@cindex Support, Arten
-@cindex Arten von Support
-@cindex Kommerzieller Support, Arten
@menu
-* Grundlegender E-Mail-Support:: Grundlegender E-Mail-Support
-* Erweiterter E-Mail-Support:: Erweiterter E-Mail-Support
-* Login-Support:: Login-Support
-* Erweiterter Login-Support:: Erweiterter Login-Support
-* Telefon-Support:: Telefon-Support
-* Tabellen-Handler-Support:: Support für andere Tabellen-Handler
+* Standards::
+* ANSI mode::
+* Extensions to ANSI::
+* Differences from ANSI::
+* Bugs::
@end menu
-Folgendes gilt für alle Support-Optionen:
-
-@itemize @bullet
-@item
-Support ist pro Jahr.
-@item
-Wir werden jeden wiederholbaren Fehler beheben oder ein vernünftiges
-Workaround zur Verfügung stellen.
-@item
-Wir werden in vernünftigem Umfang jeden anderen Bug im Zusammenhang mit
-MySQL finden und beheben.
-@item
-Je höher der Grad von Support im entsprechenden Vertrag ist, desto mehr
-Mühe werden wir investieren, um eine Lösung für Ihr Problem zu finden.
-@item
-Folgendes gilt für alle Support-Verträge mit Ausnahme des grundlegenden
-E-Mail-Supports:
-
-Für alle Dinge, die nichts mit Bugs zu tun haben, zum Beispiel Ihnen zu
-helfen, Ihre Anfragen oder Ihr System zu optimieren, MySQL mit neuen
-Funktionalitäten zu erweitern usw., berechnen wir 200 EURO pro Stunde, was
-von Ihrem Support-Vertrag abgezogen wird. Mit anderen Worten: Wenn Sie
-Login-Support haben (2000 EURO), können Sie erwarten, dass wir bis zu 10
-Stunden dafür arbeiten, Ihnen bei solchen Angelegenheiten zu helfen.
-@end itemize
-
-
-@node Grundlegender E-Mail-Support, Erweiterter E-Mail-Support, Support, Support
-@subsubsection Grundlegender E-Mail-Support
-
-@cindex E-Mail, technischer Support
-@cindex Technischer Support per E-Mail
-
-Grundlegender E-Mail-Support ist eine sehr kostengünstige Support-Option
-und Sie sollten ihn eher als eine Möglichkeit betrachten, unsere
-Entwicklung von MySQL voranzutreiben, als als eine echte Support-Option.
-Wir bei MySQL geben eine Menge kostenlosen Support in all den verschiedenen
-MySQL-Listen, und das Geld, das wir durch grundlegenden E-Mail-Support
-erhalten, benutzen wir grösstenteils dafür, dies möglich zu machen.
-
-Bei diesem Support-Grad sind die MySQL Mailing-Listen das bevorzugte
-Kommunikationsmittel. Fragen werden normalerweise an die hauptsächliche
-Mailing-Liste (@email{mysql@@lists.mysql.com}) gestellt oder an eine andere
-der regulären Listen (zum Beispiel @email{win32@@lists.mysql.com} für
-Windows-bezogene MySQL-Fragen. Es kann durchaus sein, dass bereits jemand
-anderes das Problem gelöst hat, das Sie haben. @xref{Fragen stellen}.
-
-Wenn Sie allerdings grundlegenden E-Mail-Support kaufen, haben Sie
-zusätzlich Zugriff auf die Support-Adresse
-@email{mysql-support@@mysql.com}, die nicht zugänglich ist, wenn Sie den
-minimalen Support mit einer MySQL-Lizenz kaufen. Das heisst, dass Sie bei
-besonders kritischen Fragen Ihre Nachricht zusätzlich an
-@email{mysql-Support@@mysql.com} schicken können. (Wenn Ihre Nachricht
-sensible Daten enthält, sollten Sie sie nur an
-@email{mysql-Support@@mysql.com} schicken.)
-
-@strong{Achtung!} Denken Sie daran, IMMER Ihre Registrierungsnummer und das
-Ablaufdatum Ihres Vertrags einzufügen, wenn Sie eine Nachricht an
-@email{mysql-Support@@mysql.com} schicken.
-
-Beachten Sie bitte: Wenn Sie einen kritischen, wiederholbaren Bug gefunden
-haben und die Regeln befolgen, die im Handbuchabschnitt dargelegt werden,
-der darstellt, wie Bug-Berichte erstellt werden sollten, und wenn Sie ihn
-an @email{bugs@@lists.mysql.com} schicken, dass wir dann versuchen, diesen
-Bug so schnell wie möglich zu beheben, egal, welchen Grad von Support Sie
-haben! @xref{Bug-Berichte}.
-
-Grundlegender E-Mail-Support beinhaltet die folgenden Arten von Service:
-
-@itemize @bullet
-@item
-Wenn Ihre Frage bereits im Handbuch beantwortet wird, werden wir Sie über
-den korrekten Abschnitt informieren, in dem Sie die Antwort finden. Wenn
-die Antwort nicht im Handbuch steht, werden wir Sie in die richtige
-Richtung zur Lösung Ihres Problems schicken.
-
-@item
-Wir garantieren eine zeitnahe Antwort auf Ihre E-Mail-Nachrichten. Wir
-können nicht garantieren, dass wir jedes Problem lösen können, aber
-zumindest werden Sie eine Antwort erhalten, wenn wir Sie über E-Mail
-erreichen können.
-
-@item
-Wir werden Ihnen bei unerwarteten Problemen helfen, wenn Sie MySQL von
-einer Binärdistribution auf eine der unterstützten Plattformen
-installieren. Dieser Grad von Support umfasst nicht die Installation von
-MySQL von einer Quelldistribution. Unterstützte Plattformen sind solche,
-von denen bekannt ist, dass MySQL darauf funktioniert.
-@xref{Welches Betriebssystem}.
-
-@item
-Wir werden Ihnen bei Bugs und fehlenden Features helfen. Jeder Bug, der
-gefunden wird, wird im nächsten MySQL-Release behoben sein. Wenn der Bug
-für Sie kritisch ist, werden wir einen per E-Mail ein Patch zuschicken,
-sobald der Fehler behoben ist. Kritische Bugs haben für uns immer höchste
-Priorität, und wir versichern Ihnen, dass diese so schnell wie möglich
-behoben werden.
-
-@item
-Ihre Vorschläge für die Weiterentwicklung von MySQL werden berücksichtigt.
-Indem Sie E-Mail-Support nehmen, haben Sie der Weiterentwicklung von MySQL
-bereits geholfen. Wenn Sie grösseren Einfluss nehmen wollen, wechseln Sie
-zu einem höheren Grad von Support.
-
-@item
-Wenn Sie wollen, dass wir Ihnen helfen, Ihr System zu optimieren, müssen
-Sie zu einem höheren Grad von Support wechseln.
-@end itemize
-
-
-@node Erweiterter E-Mail-Support, Login-Support, Grundlegender E-Mail-Support, Support
-@subsubsection Erweiterter E-Mail-Support
-
-@cindex Erweiterter E-Mail-Support
-
-Erweiterter E-Mail-Support beinhaltet alles, was der grundlegende
-E-Mail-Support beinhaltet, und zusätzlich:
-
-@itemize @bullet
-@item
-Ihre E-Mails werden bevorzugt behandelt, vor den E-Mails von Benutzern mit
-grundlegendem E-Mail-Support und nicht registrierten Benutzern.
-
-@item
-Ihre Vorschläge zur Weiterentwicklung von MySQL erfahren starke
-Berücksichtigung. Einfache Erweiterungen, die zu den grundsätzlichen Zielen
-von MySQL passen, werden innerhalb von Tagen implementiert. Indem Sie
-erweiterten E-Mail-Support in Anspruch nehmen, haben Sie bereits der
-Weiterentwicklung von MySQL geholfen.
-
-@item
-Typische Situationen, die von erweitertem E-Mail-Support abgedeckt werden,
-sind:
-
-@itemize @minus
-@item
-Wir werden Fragen beantworten und (soweit vernünftiger Weise möchglich)
-Probleme lösen, die sich auf mögliche Bugs in MySQL beziehen. Sobald ein
-Bug gefunden und korrigiert ist, werden wir ein Patch dafür per E-Mail
-zuschicken.
-
-@item
-Wir werden bei unerwarteten Problemen helfen, wenn Sie MySQL von einer
-Quelldistribution oder einer Binärdistribution auf einer der unterstützten
-Plattformen installieren.
-
-@item
-Wir werden Fragen zu fehlenden Features beantworten und Hinweise zu
-Workarounds anbieten.
-
-@item
-Wir werden Hinweise zur Optimierung von @code{mysqld} für Ihre spezielle
-Situation bieten.
-@end itemize
-
-@item
-Sie dürfen die Priorität der Punkte auf der MySQL-TODO-Liste beeinflussen.
-@xref{TODO}. Dadurch stellen Sie sicher, dass die Features, die Sie
-wirklich brauchen, früher implementiert werden als sie es ansonsten würden.
-@end itemize
-
-
-@node Login-Support, Erweiterter Login-Support, Erweiterter E-Mail-Support, Support
-@subsubsection Login-Support
-
-@cindex Login-Support
-
-Login-Support beinhaltet alles, was erweiterter E-Mail-Support beinhaltet,
-und zusätzlich:
-
-@itemize @bullet
-@item
-Ihre E-Mails werden bevorzugt behandelt, vor den E-Mails von Benutzern mit
-erweitertem E-Mail-Support.
-
-@item
-Ihre Vorschläge zur Weiterentwicklung von MySQL werden sehr stark
-berücksichtigt. Realistische Erweiterungen, die innerhalb von Stunden
-implementiert werden können und die zu den grundlegenden Zielen von MySQL
-passen, werden so schnell wie möglich implementiert.
-
-@item
-Wenn Sie ein sehr spezielles Problem haben, versuchen wir, uns in Ihr
-System einzuloggen und das Problem ``am Ort'' zu lösen.
-
-@item
-Wie jeder andere Datenbankanbieter können wir nicht dafür garantieren, dass
-wir Daten von zerstörten Tabellen retten können, aber wenn das Schlimmste
-passiert, werden wir Ihnen helfen, so viel wie möglich zu retten. MySQL hat
-sich als sehr zuverlässig bewährt, aber alles ist möglich, wenn Umstände
-eintreten, die ausser unserer Kontrolle liegen (zum Beispiel, wenn Ihr
-System abstürzt oder jemand den Server killt, indem er ein @code{kill
--9}-Kommando ausführt.
+@node Standards, ANSI mode, Compatibility, Compatibility
+@c German node Standards
+@subsection An welche Standards hält sich MySQL?
-@item
-Wir werden Hinweise geben, wie Sie Ihr System und Ihre Anfragen optimieren.
+Entry-Level-SQL92. ODBC-Levels 0-2.
-@item
-Sie dürfen einen MySQL-Entwickler anrufen und Ihr MySQL-bezogenes Problem
-mit ihm erörtern. Diese Option darf allerdings nur als letzte Möglichkeit
-während eines Notfalls genutzt werden, wenn es uns nicht möglich war, das
-gesamte Problem per E-Mail zu lösen. Um unsere Zeit effizient zu nutzen,
-müssen wir vorher über alle Fakten in Bezug auf das Problem informiert
-sein, bevor wir am Telefon reden, so dass es uns möglich ist, so effizient
-wie möglich an der Behebung des Problems zu arbeiten.
-@end itemize
+Wir beabsichtigen ANSI SQL99 vollständig zu unterstützen. Dies
+wollen wir jedoch keinesfalls auf Kosten von Geschwindigkeit
+oder Codequalität erreichen.
+@node ANSI mode, Extensions to ANSI, Standards, Compatibility
+@c German node ANSI-Modus
+@subsection MySQL im ANSI-Modus laufen lassen
-@node Erweiterter Login-Support, Telefon-Support, Login-Support, Support
-@subsubsection Erweiterter Login-Support
+@cindex Laufen lassen, ANSI-Modus
+@cindex ANSI-Modus, laufen lassen
-Erweiterter Login-Support beinhaltet alles, was Login-Support beinhaltet,
-und zusätzlich:
+Wenn Sie @code{mysqld} mit der @code{--ansi}-Option starten, ändert sich
+folgendes Verhalten von MySQL:
@itemize @bullet
@item
-Ihre E-Mail hat die höchste mögliche Priorität.
-
-@item
-Wir werden Ihr System aktiv überprüfen und Ihnen helfen, es und Ihre
-Anfragen zu optimieren. Wir werden ggf. zusätzlich MySQL optimieren und /
-oder erweitern, um es besser an Ihren Bedarf anzupassen.
+@code{||} ist Zeichenketten-Verkettung (Konkatenation) anstelle von
+@code{OR}.
@item
-Sie können auch nach speziellen Erweiterungen anfragen, die nur für Sie
-wichtig sind, zum Beispiel:
-@example
-mysql> select MY_FUNC(col1,col2) from tabelle;
-@end example
+Sie können eine beliebige Anzahl von Leerzeichen zwischen Funktionnamen und
+@samp{(} eingeben. Das führt zwangsläufig dazu, dass alle Funktionsnamen
+als reservierte Wörter behandelt werden.
@item
-Wir werden eine Binärdistribution für alle wichtigen MySQL-Releases für
-Ihr System zur Verfügung stellen, solange wir einen Account auf einem
-vergleichbaren System bekommen können. In schlimmsten Fall benötigen wir
-Zugang zu Ihrem System, um eine Binärdistribution herzustellen.
+@samp{"} ist dann ein Quotierungsbezeichner (wie das MySQL-
+@samp{`}-Anführungszeichen) und kein Zeichen, dass einen String einschließt.
@item
-Wenn Sie Unterbringungsmöglichkeiten zur Verfügung stellen können und die
-Reisekosten bezahlen, können Sie sogar einen MySQL-Entwickler dazu bringen,
-Sie zu besuchen und Ihnen bei Ihren Problemen Hilfestellung zu geben.
-Erweiterter Login-Support gibt Ihnen das Recht auf einen persönlichen
-Besuch pro Jahr, aber wir sind immer sehr flexibel gegenüber unseren
-Kunden! Wenn der Besuch 16 Stunden oder länger dauert, sind die ersten 8
-Stunden ohne Berechnung. Jede Stunde, die über 8 Stunden hinausgeht, wird
-mit 20% unter dem ansonsten üblichen Satz abgerechnet.
-@end itemize
-
-
-@node Telefon-Support, Tabellen-Handler-Support, Erweiterter Login-Support, Support
-@subsubsection Telefon-Support
-
-Telefon-Support beinhaltet alles, was erweiterter Login-Support beinhaltet,
-und zusätzlich:
+@code{REAL} wird zu einem Synonym für @code{FLOAT} anstelle eines Synonyms
+für @code{DOUBLE}.
-@itemize @bullet
-@item
-Wir stellen Ihnen eine dynamische Webseite zur Verfügung, die eine Liste
-der aktuellen @code{MySQL}-Entwickler enthält, mit den Sie telefonieren
-können, wenn Sie ein kritisches Problem haben.
@item
-Bei nicht kritischen Problemen, können Sie bei einem MySQL-Entwickler
-anfragen, der Sie innerhalb 48 Stunden zurückruft, um @code{MySQL}-bezogene
-Angelegenheiten zu besprechen.
+Der Standard-Isolationslevel für Transaktionen ist @code{SERIALIZABLE}.
+@xref{SET TRANSACTION}.
@end itemize
+Das ist dasselbe, als würde man
+@code{--sql-mode=REAL_AS_FLOAT,PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,SERIALIZE,ONLY_FULL_GROUP_BY}
+benutzen.
-@node Tabellen-Handler-Support, , Telefon-Support, Support
-@subsubsection Support für andere Tabellen-Handler
-
-@cindex Support, BDB Tables
-@cindex Support, InnoDB Tables
-
-Um Support für @code{BDB}-Tabellen oder @code{InnoDB}-Tabellen zu erhalten,
-müssen Sie zusätliche 30% auf den Standard-Support-Preis bezahlen. Dies gilt für
-jeden zusätzlichen Tabellen-Handler, für den Sie Support haben wollen.
-
-Wir bei @code{MySQL AB} werden Ihnen helfen, einen korrekten Bug-Bericht
-für den Tabellen-Handler zu schreiben und ihn an die Entwickler des
-spezifischen Tabellen-Handlers zu übermitteln. Wir werden darüber hinaus
-unser Bestes tun um sicherzustellen, dass Sie eine zeitnahe Antwort auf
-Ihre Fragen erhalten oder eine Lösung von den Entwicklern des
-Tabellen-Handlers.
-Obwohl wir zuversichtlich sind, dass wir die meisten Probleme innerhalb
-angemessener Zeit lösen können, können wir keine schnelle Lösung für
-Probleme garantieren, die Sie mit anderen Tabellen-Handlern bekommen
-können. Wir werden jedenfalls unser Bestes tun, um Ihre Probleme gelöst zu
-bekommen.
-
-
-@node Kompatibilität, Vergleiche, Lizensierung und Support, Einführung
-@section Wie Standard-kompatibel ist MySQL?
-
-@cindex Kompatibilität mit ANSI SQL
-@cindex Standard-Kompatibilität
-@cindex Erweiterungen von ANSI SQL
-@cindex ANSI SQL92, Erweiterungen
-
-@menu
-* Erweiterungen zu ANSI:: MySQL-Erweiterungen zu ANSI SQL92
-* Unterschiede zu ANSI:: Unterschiede von MySQL im Vergleich zu ANSI SQL92
-* ANSI-Modus:: MySQL im ANSI-Modus laufen lassen
-* Fehlende Funktionen:: Funktionalität, die in MySQL fehlt
-* Standards:: An welche Standards hält sich MySQL?
-* Commit-Rollback:: Wie man ohne @code{COMMIT}-@code{ROLLBACK} arbeitet
-* Bugs:: Bekannte Fehler und Schwächen im Design von MySQL
-@end menu
-
-Dieser Abschnitt beschreibt, wie sich MySQL zum ANSI SQL-Standard verhält.
-MySQL hat viele Erweiterungen zum ANSI SQL-Standard, und hier steht, welche
-das sind und wie man sie benutzt. Hier finden Sie auch Informationen über
-Funktionalität, die MySQL fehlt, und wie man mit diesen Unterschieden
-umgeht.
-
-
-@node Erweiterungen zu ANSI, Unterschiede zu ANSI, Kompatibilität, Kompatibilität
+@node Extensions to ANSI, Differences from ANSI, ANSI mode, Compatibility
+@c German node Erweiterungen zu ANSI
@subsection MySQL-Erweiterungen zu ANSI SQL92
@cindex Hinweise
@@ -3732,8 +2964,8 @@ Die Feldattribute @code{AUTO_INCREMENT}, @code{BINARY}, @code{NULL},
@code{UNSIGNED} und @code{ZEROFILL}.
@item
-Alle Zeichenkettenvergleiche achten vorgabemässig nicht auf
-Gross-/Kleinschreibung, wobei die Sortierreihenfolge vom aktuell
+Alle Zeichenkettenvergleiche achten vorgabemäßig nicht auf
+Groß-/Kleinschreibung, wobei die Sortierreihenfolge vom aktuell
verwendeten Zeichensatz abhängig ist (ISO-8859-1 Latin1 als Vorgabe). Wenn
Sie das nicht wollen, sollten Sie Ihre Spalten mit dem
@code{BINARY}-Attribut deklarieren oder den @code{BINARY}-Cast
@@ -3747,22 +2979,22 @@ Datenbank-Verzeichnis.
Das hat ein paar Auswirkungen:
-@cindex Datenbanknamen, Gross-/Kleinschreibung
-@cindex Tabellennamen, Gross-/Kleinschreibung
-@cindex Gross-/Kleinschreibung von Datenbanknamen
-@cindex Gross-/Kleinschreibung von Tabellennamen
+@cindex Datenbanknamen, Groß-/Kleinschreibung
+@cindex Tabellennamen, Groß-/Kleinschreibung
+@cindex Groß-/Kleinschreibung von Datenbanknamen
+@cindex Groß-/Kleinschreibung von Tabellennamen
@itemize @minus
@item
Bei Datenbanknamen und Tabellennamen wird auf Unterschiede in der
-Gross-/Kleinschreibung geachtet, wenn das Betriebssystem auf
-Gross-/Kleinschreibung achtet (wie auf den meisten Unix-Systemen).
-@xref{Gross-/Kleinschreibung}.
+Groß-/Kleinschreibung geachtet, wenn das Betriebssystem auf
+Groß-/Kleinschreibung achtet (wie auf den meisten Unix-Systemen).
+@xref\{Case sensitivity}.
@item
Datenbank-, Tabellen-, Index-, Spalten- oder Alias-Namen dürfen mit einer
-Ziffer beginnen (aber nicht ausschliesslich aus Ziffern bestehen).
+Ziffer beginnen (aber nicht ausschließlich aus Ziffern bestehen).
@item
Sie können Standard-Kommandos des Betriebssystems benutzen, um Tabellen zu
@@ -3874,7 +3106,7 @@ alle Zeichenketten-Funktionen sowohl die ANSI-SQL-Syntax als auch die
ODBC-Syntax.
@item
-MySQL kannt die Operatoren @code{||} und @code{&&}, die logisches Oder und
+MySQL kennt die Operatoren @code{||} und @code{&&}, die logisches Oder und
logisches Und bedeuten, wie in der Programmiersprache C. In MySQL sind
@code{||} und @code{OR} Synonyme, wie auch @code{&&} und @code{AND}.
Aufgrund dieser freundlichen Syntax unterstützt MySQL nicht den
@@ -3890,7 +3122,7 @@ des @code{||}-Operators zu MySQL zu konvertieren.
@cindex PostgreSQL-Kompatibilität
@cindex Kompatibilität, mit PostgreSQL
@item
-Der @code{%}-Operator ist ein Synonym für @code{MOD()}. Das heisst @code{N
+Der @code{%}-Operator ist ein Synonym für @code{MOD()}. Das heißt @code{N
% M} ist äquivalent zu @code{MOD(N,M)}. @code{%} wird für C-Programmierer
und für Kompatibilität mit PostgreSQL unterstützt.
@@ -3948,7 +3180,8 @@ SELECT @@t1:=(@@t2:=1)+@@t3:=4,@@t1,@@t2,@@t3;
@end itemize
-@node Unterschiede zu ANSI, ANSI-Modus, Erweiterungen zu ANSI, Kompatibilität
+@node Differences from ANSI, Bugs, Extensions to ANSI, Compatibility
+@c German node Unterschiede zu ANSI
@subsection MySQL-Unterschiede im Vergleich zu ANSI SQL92
Wir versuchen möglichst, dass MySQL dem ANSI-SQL-Standard und dem
@@ -3958,7 +3191,7 @@ andere Weise:
@itemize @bullet
@item
@code{--} ist nur dann ein Kommentar, wenn darauf Whitespace folgt.
-@xref{Fehlende Kommentare}.
+@xref\{ANSI diff comments}.
@item
Bei @code{VARCHAR}-Spalten werden Leerzeichen am Ende entfernt, wenn der
@@ -3966,7 +3199,7 @@ Wert gespeichert wird. @xref{Bugs}.
@item
In einigen Fällen ändern sich @code{CHAR}-Spalten automatisch (silent) in
-@code{VARCHAR}-Spalten. @xref{Stille Spaltentyp-Änderungen}.
+@code{VARCHAR}-Spalten. @xref\{Silent column changes}.
@item
Zugriffsrechte für eine Tabelle werden nicht automatisch widerrufen, wenn
@@ -3982,68 +3215,19 @@ zu müssen.
@end itemize
-@node ANSI-Modus, Fehlende Funktionen, Unterschiede zu ANSI, Kompatibilität
-@subsection MySQL im ANSI-Modus laufen lassen
-
-@cindex Laufen lassen, ANSI-Modus
-@cindex ANSI-Modus, laufen lassen
-
-Wenn Sie @code{mysqld} mit der @code{--ansi}-Option starten, ändert sich
-folgendes Verhalten von MySQL:
-
-@itemize @bullet
-@item
-@code{||} ist Zeichenketten-Verkettung (Konkatenation) anstelle von
-@code{OR}.
-
-@item
-Sie können eine beliebige Anzahl von Leerzeichen zwischen Funktionnamen und
-@samp{(} eingeben. Das führt zwangsläufig dazu, dass alle Funktionsnamen
-als reservierte Wörter behandelt werden.
-
-@item
-@samp{"} ist dann ein Quotierungsbezeichner (wie das MySQL-
-@samp{`}-Anführungszeichen) und kein Zeichen, dass einen String einschließt.
-
-@item
-@code{REAL} wird zu einem Synonym für @code{FLOAT} anstelle eines Synonyms
-für @code{DOUBLE}.
-
-@item
-Der Standart-Isolationslevel für Transaktionen ist @code{SERIALIZABLE}.
-@xref{SET TRANSACTION}.
-@end itemize
-
-Das ist dasselbe, als würde man
-@code{--sql-mode=REAL_AS_FLOAT,PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,SERIALIZE,ONLY_FULL_GROUP_BY}
-benutzen.
-
-@node Fehlende Funktionen, Standards, ANSI-Modus, Kompatibilität
-@subsection Funktionalität, die MySQL fehlt
-
-@cindex Fehlende Funktionalität
-@cindex Funktionalität, fehlende
-
-Folgende Funktionalität fehlt in der aktuellen Version von MySQL. Um eine
-priorisierte Liste zu bekommen, die aufzeigt, wann MySQL neue Erweiterungen
-hinzugefügt werden, wenden Sie sich bitte an
-@uref{http://www.mysql.com/documentation/manual.php?section=TODO, die
-online verfügbare MySQL-TODO-Liste}. Das ist die letzte Version der
-TODO-Liste des Handbuchs. @xref{TODO}.
-
@menu
-* Fehlende Sub-Selects:: Sub-Selects
-* Fehlendes SELECT INTO TABLE:: @code{SELECT INTO TABLE}
-* Fehlende Transaktionen:: Transaktionen
-* Fehlende Trigger:: Trigger
-* Fehlende Fremdschlüssel:: Fremdschlüssel
-* Beschädigte Fremdschlüssel:: Warum wir Fremdschlüssel nicht implementiert haben
-* Fehlende Sichten:: Sichten (Views)
-* Fehlende Kommentare:: @samp{--} als Anfang eines Kommentars
+* ANSI diff Sub-selects::
+* ANSI diff SELECT INTO TABLE::
+* ANSI diff Transactions::
+* ANSI diff Triggers::
+* ANSI diff Foreign Keys::
+* Beschädigte Fremdschlüssel::
+* ANSI diff Views::
+* ANSI diff comments::
@end menu
-
-@node Fehlende Sub-Selects, Fehlendes SELECT INTO TABLE, Fehlende Funktionen, Fehlende Funktionen
+@node ANSI diff Sub-selects, ANSI diff SELECT INTO TABLE, Differences from ANSI, Differences from ANSI
+@c German node Fehlende Sub-Selects
@subsubsection Sub-Selects
@cindex Sub-Selects
@@ -4115,7 +3299,8 @@ deletes), was benutzt werden kann, um effizient Zeilen zu löschen,
basierend auf den Informationen aus einer Tabelle oder sogar aus mehreren
Tabellen zur gleichen Zeit.
-@node Fehlendes SELECT INTO TABLE, Fehlende Transaktionen, Fehlende Sub-Selects, Fehlende Funktionen
+@node ANSI diff SELECT INTO TABLE, ANSI diff Transactions, ANSI diff Sub-selects, Differences from ANSI
+@c German node Fehlendes SELECT INTO TABLE
@subsubsection @code{SELECT INTO TABLE}
@findex SELECT INTO TABLE
@@ -4134,7 +3319,8 @@ Alternativ können Sie @code{SELECT INTO OUTFILE...} oder @code{CREATE TABLE
... SELECT} benutzen, um Ihre Probleme zu lösen.
-@node Fehlende Transaktionen, Fehlende Trigger, Fehlendes SELECT INTO TABLE, Fehlende Funktionen
+@node ANSI diff Transactions, ANSI diff Triggers, ANSI diff SELECT INTO TABLE, Differences from ANSI
+@c German node Fehlende Transaktionen
@subsubsection Transaktionen
@cindex Transaktionen, Support
@@ -4239,7 +3425,9 @@ Rollback geben kann (was bei transaktionsbasierenden Systemen vorkommen
kann, wenn Sie nicht sehr vorsichtig sind). MySQL garantiert auch, dass es
keine schmutzigen Lesezugriffe (Dirty Reads) gibt. Sie finden einige
Beispiele, wie man atomische Updates schreibt, im Abschnitt über Commits
-und Rollbacks. @xref{Commit-Rollback}.
+und Rollbacks.
+@c German FIX This section no longer exists
+@c @xref{Commit-Rollback}.
Wir haben reichlich über Integrität und Performance nachgedacht und
glauben, dass unser atomisches Paradigma sowohl Zuverlässigkeit als auch
@@ -4258,7 +3446,7 @@ sich darüber wundern, dass MySQL diese nicht unterstützt, gibt es eine
``MySQL-Art'', die wir weiter oben beschrieben haben. Denjenigen, denen
Sicherheit wichtiger als Geschwindigkeit ist, empfehlen wir die Benutzung
von @code{BDB}- oder @code{InnoDB}-Tabellen für alle kritischen Daten.
-@xref{Tabellentypen}.
+@xref\{Table types}.
Ein letzter Hinweis: Wir arbeiten zur Zeit an einem sicheren
Replikationsschema, vom dem wir glauben, dass es besser als jedes
@@ -4267,7 +3455,8 @@ dem atomischen, nicht-transaktionalen Paradigma mit höchster
Zuverlässigkeit laufen. Bleiben Sie dran!
-@node Fehlende Trigger, Fehlende Fremdschlüssel, Fehlende Transaktionen, Fehlende Funktionen
+@node ANSI diff Triggers, ANSI diff Foreign Keys, ANSI diff Transactions, Differences from ANSI
+@c German node Fehlende Trigger
@subsubsection Gespeicherte Prozeduren und Trigger
@cindex Fehlende Prozeduren und Trigger, Definition
@@ -4298,7 +3487,8 @@ Um festzustellen, ab wann MySQL gespeicherte Prozeduren bekommen wird, siehe
auch @ref{TODO}.
-@node Fehlende Fremdschlüssel, Beschädigte Fremdschlüssel, Fehlende Trigger, Fehlende Funktionen
+@node ANSI diff Foreign Keys, Beschädigte Fremdschlüssel, ANSI diff Triggers, Differences from ANSI
+@c German node Fehlende Fremdschlüssel
@subsubsection Fremdschlüssel
@cindex Fremdschlüssel
@@ -4314,14 +3504,14 @@ tun Sie dies, indem Sie Tabellen verknüpfen (Join):
SELECT * von tabelle1,tabelle2 where tabelle1.id = tabelle2.id;
@end example
-@xref{JOIN, , @code{JOIN}}. @xref{Beispiel Fremdschlüssel}.
+@xref{JOIN, , @code{JOIN}}. @xref\{example-Foreign keys}.
Die @code{FOREIGN KEY}-Syntax in MySQL existiert nur aus
Kompatibilitätsgründen mit den @code{CREATE TABLE}-Kommandos anderer
Hersteller; sie tut nichts. Die @code{FOREIGN KEY}-Syntax ohne @code{ON
DELETE ...} wird hauptsächlich für Dokumentationszwecke benutzt. Einige
ODBC-Applikationen benutzen dies vielleicht, um automatische
-@code{WHERE}-Klauseln zu erzeugen, aber das lässt sich üblicherweise leicht
+@code{WHERE}-Klauseln zu erzeugen, aber das läßt sich üblicherweise leicht
überschreiben. @code{FOREIGN KEY} wird manchmal als Restriktionsprüfung
benutzt, aber eine solche Überprüfung ist in der Praxis nicht notwendig,
wenn Zeilen in Tabellen in der richtigen Reihenfolge eingefügt werden.
@@ -4342,15 +3532,13 @@ abgefragt werden kann. Zu einem späteren Zeitpunkt werden wir
Fremdschlüssel-Restriktionen für Applikationen implementieren, die nicht
leicht durch entsprechendes Programmieren umgangen werden können.
-@menu
-* Beschädigte Fremdschlüssel:: Gründe, Fremdschlüssel-Restriktionen NICHT zu benutzen
-@end menu
-@node Beschädigte Fremdschlüssel, Fehlende Sichten, Fehlende Fremdschlüssel, Fehlende Funktionen
+@node Beschädigte Fremdschlüssel, ANSI diff Views, ANSI diff Foreign Keys, Differences from ANSI
+@c German node <no English equivalent>
@subsubsection Warum wir Fremdschlüssel nicht implementiert haben
-@cindex Fremdschlüsel, warum sie nicht implementiert sind
+@cindex Fremdschlüssel, warum sie nicht implementiert sind
Viele Leute, die Datenbanken unterrichten und programmieren, sind der
festen Meinung, dass referentielle Integrität durch den Datenbank-Server
@@ -4419,7 +3607,8 @@ wiederherzustellen.
@end itemize
-@node Fehlende Sichten, Fehlende Kommentare, Beschädigte Fremdschlüssel, Fehlende Funktionen
+@node ANSI diff Views, ANSI diff comments, Beschädigte Fremdschlüssel, Differences from ANSI
+@c German node Fehlende Sichten
@subsubsection Sichten (Views)
@cindex Sichten (Views)
@@ -4427,7 +3616,7 @@ wiederherzustellen.
MySQL unterstützt noch keine Sichten, aber wir planen, diese in Version 4.1
zu implementieren.
-Sichten sind äusserst nützlich, um Benutzern Zugang zu einem Satz von
+Sichten sind äußerst nützlich, um Benutzern Zugang zu einem Satz von
Beziehungen wie zu einer einzigen Tabelle zu gewähren (Lesezugriff). Viele
SQL-Datenbanken lassen es nicht zu, dass irgend welche Zeilen in einer
Sicht aktualisiert werden (Update). Statt dessen müssen die einzelnen
@@ -4441,10 +3630,11 @@ Sichten zu finanzieren.)
In MySQL werden Sichten nicht benötigt, um den Zugriff auf Spalten zu
beschränken, weil MySQL ein sehr ausgefeiltes System der
-Zugriffsberechtigungen hat. @xref{Berechtigungssystem}.
+Zugriffsberechtigungen hat. @xref\{Privilege system}.
-@node Fehlende Kommentare, , Fehlende Sichten, Fehlende Funktionen
+@node ANSI diff comments, , ANSI diff Views, Differences from ANSI
+@c German node Fehlende Kommentare
@subsubsection @samp{--} als Beginn eines Kommentars
@cindex Kommentare, Beginn
@@ -4454,9 +3644,9 @@ Einige andere SQL-Datenbanken benutzen @samp{--}, um Kommentare zu
beginnen. MySQL benutzt @samp{#} als Anfangszeichen, wenn auch das
@code{mysql}-Kommandozeilen-Werkzeug alle Zeilen entfernt, die mit @samp{--}
anfangen. Sie können in MySQL auch Kommentare im C-Stil verwenden @code{/*
-Das ist ein Kommentar */}. @xref{Kommentare}.
+Das ist ein Kommentar */}. @xref\{Comments}.
-MySQL ab Version 3.23.3 unterstüzt Kommentare, die mit @samp{--} beginnen,
+MySQL ab Version 3.23.3 unterstützt Kommentare, die mit @samp{--} beginnen,
allerdings nur, wenn der Kommentarbeginn von einem Leerzeichen gefolgt
wird. Der Grund liegt darin, dass dieser degenerierte Kommentar-Stil eine
Menge Probleme mit automatisch generierten SQL-Anfragen verursacht, die
@@ -4506,166 +3696,9 @@ shell> replace " #" " --" -- text-datei-mit-merkwuerdigen-kommentaren.sql
@end example
-@node Standards, Commit-Rollback, Fehlende Funktionen, Kompatibilität
-@subsection An welche Standards hält sich MySQL?
-
-Entry-Level-SQL92. ODBC-Levels 0-2.
-
-
-@node Commit-Rollback, Bugs, Standards, Kompatibilität
-@subsection Wie man ohne @code{COMMIT}/@code{ROLLBACK} zurechtkommt
-
-@findex COMMIT
-@findex ROLLBACK
-@cindex Transaktionssichere Tabellen
-@cindex Tabellen, aktualisieren
-@cindex Aktualisieren, Tabellen
-@cindex @code{BDB} Tabellen
-@cindex @code{InnoDB} Tabellen
-
-Das Folgende trifft hauptsächlich auf @code{ISAM}-, @code{MyISAM}- und
-@code{HEAP}-Tabellen zu. Wenn Sie bei einem Update nur transaktionssichere
-Tabellen des Typs (@code{BDB} oder @code{InnoDB} benutzen, können Sie auch
-mit MySQL @code{COMMIT} und @code{ROLLBACK} ausführen.
-@xref{COMMIT}.
-
-Um mit den oben genannten Tabellentypen @code{COMMIT}-@code{ROLLBACK}
-effizient zu benutzen, würde ein völlig anderes Tabellenlayout als das, was
-MySQL benutzt, notwendig sein. Der Tabellentyp würde darüber hinaus
-zusätzliche Threads benötigen, die ein automatisches Säubern (Cleanup) der
-Tabellen ausführen, und der Speicherbedarf auf der Festplatte würde
-erheblich höher ausfallen. Dies würde diese Tabellentypen etwa zwei- bis
-viermal langsamer machen als sie es heute sind.
-
-Momentan legen wir höhere Priorität darauf, die SQL-Server-Sprache zu
-implementieren (Dinge wie gespeicherte Prozeduren). Bei solchen Dingen wird
-man sehr selten @code{COMMIT}-@code{ROLLBACK} brauchen, und die Performance
-wäre ebenfalls besser.
-
-Schleifen, die Transaktionen benötigen, können normalerweise mit Hilfe von
-@code{LOCK TABLES} kodiert werden, und Cursor werden nicht benötigt, wenn
-man Datensätze on-the-fly aktualisieren kann.
-
-Wir bei TcX, dem Vorgänger von MySQL AB, brauchten damals eher eine
-wirklich schnelle Datenbank als eine 100%-ig allgemeine Datenbank. Wo immer
-sich eine Möglichkeit bietet, diese Features ohne jeden
-Geschwindigkeitsverlust zu implementieren, werden wir das wahrscheinlich
-tun. Momentan gibt es wichtigere Dinge zu tun. Schauen Sie in der @xref{TODO}
-nach, wie wir momentan Dinge priorisieren. (Kunden mit einem höheren
-Support-Grad können das ändern, daher kann es sein, dass diese Dinge anders
-priorisiert werden.).
-Das momentane Problem ist in der Tat @code{ROLLBACK}. Ohne @code{ROLLBACK}
-können Sie jede Art von @code{COMMIT}-Aktion mit @code{LOCK TABLES}
-durchführen. Um aber @code{ROLLBACK} mit den oben genannten Tabellentypen
-durchzuführen, müsste MySQL so abgeändert werden, dass alle alten
-Datensätze, die aktualisiert wurden, gespeichert werden, und dass dann
-alles bis zum Startpunkt wiederhergestellt würde, sobald @code{ROLLBACK}
-abgesetzt wird. Bei einfachen Fällen ist das nicht so schwer (das momentane
-@code{isamlog} könnte für diesen Zweck benutzt werden), aber es wäre sehr
-viel schwieriger, @code{ROLLBACK} für @code{ALTER/DROP/CREATE TABLE} zu
-implementieren.
-
-Um @code{ROLLBACK} zu umgehen, können Sie die folgende Strategie
-beschreiten:
-
-@enumerate
-@item
-Benutzen Sie @code{LOCK TABLES ...}, um alle Tabellen zu sperren, auf die
-Sie zugreifen wollen.
-
-@item
-Testen Sie die Bedingungen.
-@item
-Aktualisieren Sie (Update), wenn alles okay ist.
-@item
-Benutzen Sie @code{UNLOCK TABLES}, um die Sperren aufzuheben.
-@end enumerate
-
-Das ist normalerweise eine viel schnellere Methode, als wenn man
-Transaktionen mit möglichen @code{ROLLBACK}s benutzen würde, allerdings
-nicht immer. Die einzige Situation, in der diese Lösung nicht funktioniert,
-ist die, wenn jemand die Threads mitten während eines Updates killt. In
-diesem Fall werden alle Sperren aufgehoben, obwohl einige der Updates
-vielleicht noch nicht ausgeführt wurden.
-
-Sie können auch Funktionen benutzen, um Datensätze mit einer einzigen
-Operation zu aktualisieren (Update). Sie erhalten eine sehr effiziente
-Applikation, wenn Sie die folgenden Techniken benutzen:
-
-@itemize @bullet
-@item Ändern Sie Felder relativ in Bezug auf ihren aktuellen Wert.
-@item Aktualisieren (Update) Sie nur die Felder, die sich tatsächlich
-geändert haben.
-@end itemize
-
-Wenn wir zum Beispiel Informationen über Kunden aktualisieren (Update),
-aktualisieren wir nur die Kundendaten, die sich geändert haben, und testen
-nur, dass keine der geänderten Daten oder der Daten, die von den geänderten
-Daten abhängen, sich im Vergleich mit der Original-Zeile geändert haben.
-Der Test auf geänderte Daten wird mit der @code{WHERE}-Klausel im
-@code{UPDATE}-Statement durchgeführt. Falls der Datensatz nicht
-aktualisiert wurde, geben wir an den Client folgende Nachricht aus: "Einige
-der Daten, die Sie geändert haben, wurden von einem anderen Benutzer
-geändert". Dann zeigen wir die alte Zeile gegen die neue Zeile in einem
-Fenster an, damit der Benutzer entscheiden kann, welche Version des
-Kundendatensatzes benutzt werden soll.
-
-Damit erhalten wir etwas, dass Spaltensperren ähnlich ist, aber sogar noch
-besser, weil wir nur einen Teil der Spalten ändern, indem wir Werte
-benutzen, die relativ in Bezug auf ihre momentanen Werte sind. Damit werden
-typische @code{UPDATE}-Statements etwa wie folgt aussehen:
-
-@example
-UPDATE tabelle SET rueckzahlung=rueckzahlung+'relative_aenderung';
-
-UPDATE kunde
- SET
- kunde_datum='aktuelles_datum',
- adresse='neue_adresse',
- telefon='neues_telefon',
- geld_das_er_uns_schuldet=geld_das_er_uns_schuldet+'neues_geld'
- WHERE
- kunde_id=id AND adresse='alte_adresse' AND telefon='altes_telefon';
-@end example
-
-Wie Sie sehen, ist dies sehr effizient und funktioniert sogar dann, wenn
-ein anderer Client die Wert in den Spalten @code{rueckzahlung} oder
-@code{geld_das_er_uns_schuldet} geändert hat.
-
-@findex mysql_insert_id()
-@findex LAST_INSERT_ID()
-
-In vielen Fällen wollten Benutzer @code{ROLLBACK} und / oder @code{LOCK
-TABLES} für die Verwaltung eindeutiger Kennungen (Identifier) für einige
-Tabellen. So etwa kann effizienter gehandhabt werden, wenn man eine
-@code{AUTO_INCREMENT}-Spalte benutzt und entweder die SQL-Funktion
-@code{LAST_INSERT_ID()} oder die C-API-Funktion @code{mysql_insert_id()}.
-@xref{mysql_insert_id, , @code{mysql_insert_id()}}.
-
-@cindex Zeilen, sperren
-Bei MySQL AB haben wir Sperren auf Zeilenebene nie benötigt, weil wir immer
-darum herum kodieren konnten. In einigen Fällen kommt man ohne
-Zeilen-Sperren nicht aus, aber das sind sehr wenige. Wenn Sie Sperren auf
-Zeilen-Ebene benötigen, können Sie eine Flag-Spalte in der Tabelle benutzen
-und etwas wie das Folgende durchführen:
-
-@example
-UPDATE tabelle SET zeile_flag=1 WHERE id=ID;
-@end example
-MySQL gibt 1 als die Anzahl der betroffenen Zeilen zurück, wenn die Zeile
-gefunden wurde und wenn @code{zeile_flag} nicht schon in der Original-Zeile
-enthalten war.
-
-Sie können sich das so vorstellen, dass MySQL die oben genannte Anfrage wie
-folgt geändert hat:
-
-@example
-UPDATE tabelle SET zeile_flag=1 WHERE id=ID and zeile_flag <> 1;
-@end example
-
-
-@node Bugs, , Commit-Rollback, Kompatibilität
+@node Bugs, , Differences from ANSI, Compatibility
+@c German node Bugs
@subsection Bekannte Fehler und Design-Unzulänglichkeiten in MySQL
@cindex Bugs, bekannte
@@ -4707,7 +3740,7 @@ BDB-Tabellen lassen sich etwas langsam öffnen. Wenn Sie viele BDB-Tabellen
in einer Datenbank haben, kann es sehr lange dauern, bis Sie den
@code{mysql}-Client für diese Datenbank benutzen können, wenn Sie die
@code{-A}-Option oder @code{rehash} benutzen. Das macht sich speziell dann
-bemerkbar, wenn Sie einen grosse Tabellen-Cache benutzen.
+bemerkbar, wenn Sie einen große Tabellen-Cache benutzen.
@item
Das momentane Replikationsprotokoll kann nicht mit @code{LOAD DATA INFILE}
@@ -4752,14 +3785,14 @@ Funktion ab, welche Genauigkeit man erhält. Als allgemeine Regel gilt, dass
Bit-Funktionen mit @code{BIGINT}-Genauigkeit, @code{IF} und @code{ELT()}
mit @code{BIGINT}- oder @code{DOUBLE}-Genauigkeit und der Rest mit
@code{DOUBLE}-Genauigkeit durchgeführt werden. Man sollte vermeiden,
-vorzeichenlose Werte, die grösser als 63 Bits sind (9223372036854775807),
+vorzeichenlose Werte, die größer als 63 Bits sind (9223372036854775807),
zu verwenden, ausser für Bit-Felder!
MySQL 4.0 bietet eine bessere @code{BIGINT}-Handhabung als MySQL 3.23.
@item
Bei allen Zeichenketten-Spalten ausser bei @code{BLOB}- und
@code{TEXT}-Spalten werden Leerzeichen am Ende automatisch entfernt, wenn
-sie abgerufen werden. Bei @code{CHAR}-Typen ist das okay und kann gemäss
+sie abgerufen werden. Bei @code{CHAR}-Typen ist das okay und kann gemäß
ANSI-SQL92 als ein Feature betrachtet werden. Der Bug besteht darin, dass
in MySQL auch @code{VARCHAR}-Spalten auf dieselbe Art behandelt werden.
@@ -4770,7 +3803,7 @@ verwendet werden.
@item
@code{safe_mysqld} leitet alle Nachrichten von @code{mysqld} in die
@code{mysqld}-Logdatei um. Ein Problem ergibt sich, wenn Sie
-@code{mysqladmin refresh} benutzen, um die Logdatei zu schliessen und
+@code{mysqladmin refresh} benutzen, um die Logdatei zu schließen und
wieder zu öffnen. In diesem Fall werden @code{stdout} und @code{stderr}
immer noch in die alte Logdatei geleitet.
Wenn Sie @code{--log} umfangreich benutzen, sollten Sie @code{safe_mysqld}
@@ -4782,7 +3815,7 @@ ausführen.
@item
Im @code{UPDATE}-Statement, werden Spalten von links nach rechts
aktualisiert (Update). Wenn Sie sich auf eine aktualisierte Spalte
-beziehen, erhalten Sie den aktualierten Werte anstelle des ursprünglichen
+beziehen, erhalten Sie den aktualisierten Werte anstelle des ursprünglichen
Werts. Beispiel:
@example
@@ -4836,7 +3869,7 @@ Beachten Sie, dass dies nur für Anfragen zutrifft, bei denen die ORDER
BY-Spalten nicht im Ergebnis enthalten sind. ANSI-SQL erlaubt dies nicht
@item
-Weil MySQL es zulässt, mit Tabellentypen zu arbeiten, die keine
+Weil MySQL es zuläßt, mit Tabellentypen zu arbeiten, die keine
Transaktionen unterstützen (und folglich Daten nicht per @code{rollback} in
den vorherigen Zustand bringen können), verhalten sich einige Dinge in
MySQL etwas anderes als in anderen SQL-Servern. Das kann manchmal etwas
@@ -4853,7 +3886,7 @@ in der Spalte:
@item
Wenn Sie versuchen, in einer numerischen Spalte einen Wert ausserhalb des
Wertebereichs zu speichern, speichert MySQL statt dessen den kleinsten oder
-grössten möglichen Wert.
+größten möglichen Wert.
@item
Wenn Sie versuchen, eine Zeichenkette, die nicht mit einer Zahl beginnt, in
@@ -4861,12 +3894,12 @@ einer numerischen Spalte zu speichern, speichert MySQL 0.
@item
Wenn Sie versuchen, @code{NULL} in einer Spalte zu speichern, die keine
-@code{NULL}-Werte zulässt, speichert MySQL 0 oder @code{''} (leere
+@code{NULL}-Werte zuläßt, speichert MySQL 0 oder @code{''} (leere
Zeichenkette). (Man kann dieses Verhalten jedoch mit der
-DDONT_USE_DEFAULT_FIELDS-Kompilierungs-Option ändern.)
@item
-MySQL lässt zu, dass einige falsche Datumswerte in @code{DATE}- und
+MySQL läßt zu, dass einige falsche Datumswerte in @code{DATE}- und
@code{DATETIME}-Spalten gespeichert werden (wie 2000-02-31 oder
2000-02-00). Wenn das Datum völlig falsch ist, speichert MySQL den
speziellen Datumswert 0000-00-00 in der Spalte.
@@ -4891,10 +3924,10 @@ MySQL kann bislang nicht mit @code{NaN}-, @code{-Inf}- und
@code{Inf}-Werten in Doubles umgehen. Wenn Sie diese benutzen, gibt es
Probleme, wenn Daten importiert oder exportiert werden. Als Zwischenlösung
sollten Sie @code{NaN} in @code{NULL} umwandeln (falls möglich) und
-@code{-Inf} und @code{Inf} in den kleinsten bzw. grössten möglichen Wert.
+@code{-Inf} und @code{Inf} in den kleinsten bzw. größten möglichen Wert.
@item
-Negative Zahlen in der @code{LIMIT}-Klausel werden als grosse positive
+Negative Zahlen in der @code{LIMIT}-Klausel werden als große positive
Zahlen behandelt.
@item
@@ -4952,23 +3985,569 @@ Das funktioniert, weil MySQL auf Ausdrücke (Expressions) in der
@item
Vor MySQL-Version 3.23 wurden alle numerischen Typen als Festkomma-Felder
behandelt. Das bedeutet, dass Sie festlegen müssen, wie viele
-Dezimalstellen ein Fliesskomma-Feld haben soll. Alle Werte wurden mit der
+Dezimalstellen ein Fließkomma-Feld haben soll. Alle Werte wurden mit der
korrekten Anzahl von Dezimalstellen zurückgegeben.
@end itemize
Was Plattform-spezifische Bugs angeht, sehen Sie bitte im Abschnitt über
Kompilieren und Portieren nach.
-@node Vergleiche, TODO, Kompatibilität, Einführung
+
+@node TODO, Comparisons, Compatibility, Deutsch
+@c German node TODO
+@section MySQL und die Zukunft (das TODO)
+
+@cindex TODO-Liste für MySQL
+
+
+Dieser Anhang listet die Features auf, für die wir eine Implementierung in
+MySQL geplant haben.
+
+Alles auf dieser Liste gibt nur ungefähr die Reihenfolge wieder, in der es
+gemacht werden wird. Wenn Sie die Prioritäten beeinflussen wollen,
+registrieren Sie bitte eine Lizenz oder unterstützen Sie uns und teilen uns
+mit, was Sie schneller gemacht haben wollen. @xref{Lizenzpolitik}.
+
+Geplant ist, dass wir in Zukunft den kompletten ANSI-SQL99-Standard
+unterstützen, aber mit einer Menge nützlicher Erweiterungen. Die
+Herausforderung liegt darin, dass durchzuführen, ohne
+Geschwindigkeitsvorteile zu opfern oder den Code zu kompromittieren.
+
+
+@menu
+* TODO MySQL 4.0::
+* TODO future::
+* TODO sometime::
+* TODO unplanned::
+@end menu
+
+@node TODO MySQL 4.0, TODO future, TODO, TODO
+@c German node TODO MySQL 4.0
+@subsection Dinge, die in Version 4.0 enthalten sein sollten
+
+Wir haben uns der Entwicklung von MySQL Version 4.0 zugewandt. Die meisten
+grundsätzlichen Dinge, die wir in Version 4.0 haben wollen, sind bereits
+gemacht. Das Ziel ist, den Rest der folgenden Features schnell einzubauen
+und dann zur Entwicklung von MySQL 4.1 überzugehen. @xref\{MySQL 4\.0 In A Nutshell}
+
+Der News-Abschnitt für 4.0 beinhaltet eine Liste der Features, die wir
+bereits im 4.0-Baum implementiert haben. @xref\{News-4\.0\.x}.
+
+@itemize @bullet
+@item
+Benutzern erlauben, die Startoptionen zu ändern, ohne den Server herunter
+fahren zu müssen.
+@item
+Störsichere Replikation.
+@item
+Mehr Funktionen für die Volltextsuche.
+@xref{Volltext-Features in MySQL 4.0}.
+@item
+Neuer Schlüssel-Cache
+@item
+Neues Dateiformat für die Tabellendefinition (@code{.frm}-Dateien). Das
+versetzt uns in die Lage, nicht irgendwann keine Bits mehr zu haben, wenn
+wir weitere Tabellenoptionen hinzufügen. Es wird nach wie vor möglich sein,
+in 4.0 das alte @code{.frm}-Dateiformat zu benutzen. Alle neu erzeugten
+Tabellen werden jedoch das neue Format benutzen.
+
+Das neue Dateiformat versetzt uns in die Lage, neue Spaltentypen, mehr
+Optionen für Schlüssel und @code{FOREIGN KEY}-Support hinzuzufügen.
+@item
+Die Replikation sollte mit @code{RAND()} und Benutzer-Variablen
+@code{@@var} funktionieren.
+@item
+Online-Datensicherung mit sehr geringen Performance-Einbussen. Das Online-Backup
+wird das Hinzufügen eines neuen Replikations-Slaves erleichtern, ohne dass
+man den Master herunter fahren muss.
+@item
+Es zulassen, dass @code{DELETE} auf @code{MyISAM}-Tabellen den
+Datensatz-Cache benutzt. Um das zu tun, müssen wir den Thread-Cache für
+Datensätze aktualisieren, wenn wir die @code{.MYD}-Datei aktualisieren.
+@item
+Zeichensatz-Festlegungen (Casts) und Syntax für die Handhabung mehrerer
+Zeichensätze.
+@item
+Hilfe für alle Befehle des Clients.
+@item
+Sichere Verbindungen (mit SSL).
+@item
+@code{SHOW COLUMNS FROM tabelle} (der vom @code{mysql}-Client benutzt für
+die Erweiterung von Spaltennamen benutzt wird) sollte nicht die Tabelle
+öffnen, sondern nur die Definitionsdatei. Das wird weniger Speicher
+beanspruchen und sehr viel schneller sein.
+@item
+Bei der Benutzung von @code{SET CHARACTER SET} sollten wir die gesamte
+Anfrage übersetzen und nicht nur Zeichenketten. Das würde Benutzern
+ermöglichen, landesspezifische Zeichen auch in Datenbank-, Tabellen- und
+Spaltenamen zu benutzen.
+@item
+Hinzufügen einer portablen Schnittstelle zu @code{gethostbyaddr_r()},
+damit wir @code{ip_to_hostname()} davon abhalten können, andere Threads zu
+blockieren, während es DNS-Lookups durchführt.
+@item
+Hinzufügen der @code{record_in_range()}-Methode zu @code{MERGE}-Tabellen,
+um den richtigen Index auswählen zu können, wenn es viele gibt, aus denen
+ausgewählt werden kann. Wir sollten auch die info-Schnittstelle erweitern,
+um die Schlüsselverteilung für jeden Index zu erhalten, wenn @code{analyze}
+über alle Unter-Tabellen läuft.
+@item
+@code{SET SQL_DEFAULT_TABLE_TYPE=[MyISAM | INNODB | BDB | HEAP]}.
+@end itemize
+
+
+@node TODO future, TODO sometime, TODO MySQL 4.0, TODO
+@c German node TODO zukünftig
+@subsection Dinge, die in naher Zukunft erledigt werden müssen
+
+@itemize @bullet
+@item
+Unteranfragen (Subqueries).
+@code{select id from t where grp in (select grp from g where u > 100)}
+@item
+Atomische Multi-Tabellen-Updates, zum Beispiel @code{update items,month set
+items.price=month.price where items.id=month.id;};
+@item
+Abgeleitete Tabellen (Derived Tables).
+@example
+select a.col1, b.col2 from (select max(col1) as col1 from root_table ) a,
+other_table b where a.col1=b.col1
+@end example
+
+Das könnte erreicht werden, indem für die Dauer der Anfrage automatisch
+temporäre Tabellen für die abgeleiteten Tabellen erzeugt werden.
+@item
+Hinzufügen eines @code{PREPARE} von Statements und Senden von Parametern an
+@code{mysqld}.
+@item
+Erweiterung des Client-Server-Protokolls, um Warnungen (Warnings) zu
+unterstützen.
+@item
+Hinzufügen von Optionen zum Client-Server-Protokoll, um
+Fortschrittsanzeigen für lange laufende Kommandos zu erhalten.
+@item
+Hinzufügen von Datenbank und echtem Tabellennamen (im Falle von Alias) zur
+MYSQL_FIELD-Struktur.
+@item
+Nicht mehr als die festgelegte Anzahl von Threads zulassen, um MyISAM
+recover zeitgleich laufen zu lassen.
+@item
+@code{INSERT ... SELECT} ändern, um optional konkurrierende Inserts zu
+benutzen.
+@item
+@code{RENAME DATABASE} implementieren. Damit das sicher für alle
+Tabellen-Handler funktioniert, sollte es wie folgt laufen:
+@itemize @bullet
+@item
+Neue Datenbank anlegen.
+@item
+Für jede Tabelle ein Umbenennen der Tabelle zu einer anderen Datenbank
+durchführen, wie wir es schon mit dem @code{RENAME}-Befehl machen.
+@item
+Alte Datenbank löschen.
+@end itemize
+@item
+Die Original-Feldtypen zurückgeben, wenn @code{SELECT MIN(column)... GROUP
+BY} ausgeführt wird.
+@item
+Mehrfache Ergebnismengen (Multiple Result Sets).
+@item
+Änderung des Protokolls, um Binärübertragung von Werten zu ermöglichen. Um
+das effizient zu machen, müssen wir eine API hinzufügen, die Bindung
+(Binding) von Variablen erlaubt.
+
+
+@code{mysqld}.
+@item
+Es soll möglich sein, @code{long_query_time} mit einer Auflösung in
+Mikrosekunden festzulegen.
+@item
+Hinzufügen eines konfigurierbaren Prompts zum
+@code{mysql}-Kommandozeilen-Werkzeug, mit Optionen wie Datenbank in Benutzung,
+Zeit und Datum ...
+@item
+Hinzufügen von Bereichsüberprüfung (Range Checking) zu
+@code{MERGE}-Tabellen.
+@item
+@code{myisampack}-Code in den Server einlinken.
+@item
+Portierung von MySQL auf BeOS.
+@item
+Portierung von MySQL-Clients auf LynxOS.
+@item
+Hinzufügen eines temporären Schlüssel-Puffer-Caches während
+@code{INSERT/DELETE/UPDATE}, um den vorherigen Zustand elegant
+wiederherstellen zu können, wenn der Index voll wird.
+@item
+Wenn ein @code{ALTER TABLE} auf eine Tabelle durchgeführt wird, die per
+Symlink auf einer anderen Festplatte ist, temporäre Tabellen auf dieser
+Festplatte erzeugen.
+@item
+Implementierung eines @code{DATE/DATETIME}-Typs, der
+Zeitzonen-Informationen sauber handhabt, damit der Umgang mit Datumswerten
+in verschiedenen Zeitzonen leichter wird.
+@item
+FreeBSD- und MIT-pThreads; nehmen schlafende Threads CPU in Anspruch?
+@item
+Prüfen, ob gesperrte Threads CPU beanspruchen.
+@item
+Configure reparieren, so dass man alle Bibliotheken (wie @code{MyISAM})
+ohne Threads kompilieren kann.
+@item
+Hinzufügen einer Option, um regelmäßig die Schlüsselseiten (Key Pages) für
+Tabellen mit verzögerten Schlüsseln (Delayed Keys) zu löschen (flush), wenn
+Sie eine Weile nicht in Gebrauch waren.
+@item
+Verknüpfungen (Join) auf Teile des Schlüssels zulassen (Optimierungsthema).
+@item
+@code{INSERT SQL_CONCURRENT} und @code{mysqld --concurrent-insert} sollen
+ein konkurrierendes Insert am Ende der Datei machen, falls die Datei
+lese-gesperrt ist.
+@item
+@code{FOREIGN}-Key-Festlegungen in der @file{.frm}-Datei speichern.
+@item
+Kaskadierendes Löschen (@code{DELETE})
+@item
+Serverseitige Cursor.
+@item
+Prüfen, ob @code{lockd} mit modernen Linux-Kernels funktioniert; wenn
+nicht, müssen wir @code{lockd} überarbeiten! Um das zu testen, startet man
+@code{mysqld} mit @code{--enable-locking} und läßt die verschiedenen fork*
+test suits laufen. Sie sollten keine Fehler produzieren, wenn @code{lockd}
+funktioniert.
+@item
+SQL-Variablen in @code{LIMIT} zulassen, wie @code{LIMIT @@a,@@b}.
+@item
+Aktualisierung von Variablen in @code{UPDATE}-Statements zulassen, zum
+Beispiel: @code{UPDATE TABLE foo SET @@a=a+b,a=@@a, b=@@a+c}
+@item
+Wenn Benutzervariablen aktualisiert werden, so ändern, dass man sie mit
+@code{GROUP BY} benutzen kann wie in folgendem Beispiel:
+@code{SELECT id, @@a:=count(*), sum(sum_col)/@@a FROM tabelle GROUP BY id}.
+@item
+Keine automatischen @code{DEFAULT}-Werte zu Spalten hinzufügen. Fehler
+ausgeben, wenn ein @code{INSERT} benutzt wird, dass keine Spalte enthält,
+die keinen @code{DEFAULT}-Wert hat.
+@item
+Caching von Anfragen und Ergebnissen. Das sollte als separates Modul
+gemacht werden, das jede Anfrage prüft. Falls diese Anfrage im Cache ist,
+soll das Cache-Ergebnis zurückgegeben werden. Wenn man eine Tabelle
+aktualisiert, sollte man so wenige Anfragen wie möglich aus dem Cache
+entfernen. Das sollte eine große Geschwindigkeitssteigerung auf Maschinen
+geben, die viel RAM haben und wo Anfragen of wiederholt werden (wie
+WWW-Applikationen). Eine Idee wäre, nur Anfrage des Typs
+@code{SELECT CACHED ...}
+zu cachen.
+@item
+@file{libmysql.c} überarbeiten, damit zwei @code{mysql_query()}-Befehle in
+einer Zeile stehen können, ohne dass Ergebnisse gelesen werden oder man
+eine nette Fehlermeldung erhält, wenn man das tut.
+@item
+Optimierung des @code{BIT}-Typs, so dass er 1 Bit aufnimmt (momentan nimmt
+@code{BIT} 1 Zeichen auf).
+@item
+Prüfen, warum MIT-pThreads @code{ctime()} auf einigen FreeBSD-Systemen
+nicht funktioniert.
+@item
+Hinzufügen einer @code{IMAGE}-Option zu @code{LOAD DATA INFILE}, damit
+@code{TIMESTAMP}- und @code{AUTO_INCREMENT}-Felder nicht aktualisiert
+werden.
+@item
+@code{LOAD DATE INFILE.. UPDATE}-Syntax hinzufügen.
+@itemize @bullet
+@item
+Wenn Daten bei Tabellen mit Primärschlüssel den Primärschlüssel enthalten,
+werden Einträge, die zu diesem Primärschlüssel passen, vom Rest der Spalten
+aktualisert. Spalten, die im herein kommenden Datenstrom NICHT enthalten
+sind, werden jedoch nicht berührt.
+@item
+Bei Tabellen mit Primärschlüsseln, wo im herein kommenden Datenstrom ein
+Teil des Schlüssels fehlt, oder wenn kein Primärschlüssel eingegeben wird,
+wird die Eingabe so behandelt wie jetzt schon @code{LOAD DATA INFILE ...
+REPLACE INTO}.
+@end itemize
+@item
+@code{LOAD DATA INFILE} soll auch folgende Syntax verstehen:
+@example
+LOAD DATA INFILE 'datei.txt' INTO TABLE tabelle
+TEXT_FIELDS (text_feld1, text_feld2, text_feld3)
+SET tabelle_feld1=concatenate(text_feld1, text_feld2), tabelle_feld3=23
+IGNORE text_feld3
+
+Das kann benutzt werden, um zusätzliche Spalten in der Textdatei zu
+überspringen oder um Spalten basierend auf Ausdrücken in den gelesenen
+Daten zu aktualisieren ...
+@end example
+@item
+@code{LOAD DATA INFILE 'datei' INTO TABLE 'tabelle' ERRORS TO err_tabelle}
+Das würde bewirken, dass alle Fehler und Warnungen in der err_tabelle
+mitgeschrieben werden. Diese Tabelle hätte etwa folgende Struktur:
+
+@example
+zeile_nummer - Zeilennummer in der Datendatei
+fehler_nachricht - die Fehler-/Warnungs-Nachricht
+und vielleicht
+@cQuestion: ??? This is already logged in zeile_nummer (line_number)!
+daten_zeile - die Zeilennummer der Datendatei
+@end example
+@item
+Hinzufügen von echter @code{VARCHAR}-Unterstützung (gibt es schon in
+MyISAM).
+@item
+Automatische Ausgabe von @code{mysql} an Netscape.
+@item
+@code{LOCK DATABASES}. (mit vielerlei Optionen)
+@item
+
+
+Ändern wie Sortierung Speicher alloziert, um bessere
+Speicherausnutzung zu erhalten.
+@item
+@code{DECIMAL}- und @code{NUMERIC}-Typen können keine exponentiellen Zahlen
+lesen; @code{Field_decimal::store(const char *from,uint len)} muss neu
+kodiert werden, um das zu beheben.
+@item
+@code{mysql.cc} überarbeiten, damit weniger @code{malloc()}-Aufrufe
+durchgeführt werden, wenn Feldnamen gehasht werden.
+@item
+Funktionen:
+ADD_TO_SET(wert,set) und REMOVE_FROM_SET(wert,set)
+@item
+Benutzung von @code{t1 JOIN t2 ON ...} und @code{t1 JOIN t2 USING ...}
+hinzufügen. Momentan kann man diese Syntax nur mit @code{LEFT JOIN}
+benutzen.
+@item
+Volle Unterstützung für @code{unsigned long long}-Typen hinzufügen.
+@item
+Viele weitere Variablen für @code{show status}. Zähler für:
+@code{INSERT}-/@code{DELETE}-/@code{UPDATE}-Statements. Gelesene und
+aktualisierte Datensätze. Select auf 1 Tabelle und Selects mit Joins.
+Durchschnittliche Anzahl von Tabellen in Selects. Anzahl von @code{ORDER
+BY}- und @code{GROUP BY}-Anfragen.
+@item
+Wenn man @code{mysql} mitten in einer Anfrage abbricht, sollte man eine
+neue Verbindung herstellen und die alte, laufende Anfrage killen.
+Alternativ könnte man den Versuch unternehmen, so etwas im Server zu
+entdecken.
+@item
+Eine Handler-Schnittstelle für Tabelleninformation hinzufügen, damit man
+sie als Systemtabelle benutzen kann. Das wäre ein bisschen langsam, wenn
+man Informationen über alle Tabellen abfragt, aber sehr flexibel.
+@code{SHOW INFO FROM tabelle} für Basisinformationen über Tabellen sollte
+implementiert werden.
+@item
+Unterstützung für UNICODE hinzufügen.
+@item
+@code{NATURAL JOIN} und @code{UNION JOIN}.
+@item
+Anfragen wie @code{select a from crash_me left join crash_me2 using (a)}
+zulassen; in diesem Fall wird angenommen, dass a aus der crash_me-Tabelle
+kommt.
+@item
+Überarbeitung, damit @code{ON} und @code{USING} mit dem
+@code{JOIN}-Verknüpfungstyp funktioniert.
+@item
+Oracle-mäßiges @code{CONNECT BY PRIOR ...}, um hierarchische Strukturen zu
+durchsuchen.
+
+
+@item
+@code{mysqladmin copy datenbank neue_datenbank}. -- Erfordert, dass
+@code{mysqld} der COPY-Befehl hinzugefügt wird.
+@item
+Prozessliste sollte die Anzahl von Anfragen pro Thread zeigen.
+@item
+
+
+@code{SHOW HOSTS} zur Informationsausgaben über den Hostnamen-Cache.
+@item
+
+
+
+@item
+Format von @code{DATETIME} ändern, um Bruchteile von Sekunden zu speichern.
+@item
+Alle fehlenden ANSI92- und ODBC 3.0-Typen hinzufügen.
+@item
+Für berechnete Spalten Tabellennamen von leerer Zeichenkette zu @code{NULL}
+ändern.
+@item
+'Item_copy_string' nicht auf numerische Werte anwenden, um
+Zahl->Zeichenkette->Zahl-Umwandlung zu vermeiden, im Falle von:
+@code{SELECT COUNT(*)*(id+0) FROM tabelle GROUP BY id}
+@item
+Benutzung der neuen GNU-regexp-Bibliothek anstelle der aktuellen
+ermöglichen (die GNU-Bibliothek sollte viel schneller sein als die alte).
+@item
+@code{ALTER TABLE} sollte nicht mehr Clients abbrechen, die @code{INSERT
+DELAYED} ausführen.
+@item
+So überarbeiten, dass, wenn Spalten, auf die in einer @code{UPDATE}-Klausel
+verwiesen wird, die alten Werte enthalten, bevor das Update begonnen wird.
+@item
+@code{myisamchk}, @code{REPAIR} und @code{OPTIMIZE TABLE} sollten in der
+Lage sein, mit Fällen umzugehen, wo die Daten und / oder Indexdateien
+symbolische Links sind.
+@item
+Simulation von @code{pread()}/@code{pwrite()} auf Windows einarbeiten, um
+konkurrierende Inserts zu ermöglichen.
+@item
+Ein Logdatei-Analyzer, aus dem Informationen herausgefiltert (geparst)
+werden können, welche Tabellen am häufigsten angesprochen werden, wie oft
+Verknüpfungen (Joins) mit mehreren Tabellen ausgeführt werden usw. Es
+sollte Benutzern helfen, Bereiche oder Dinge im Tabellenentwurf zu
+erkennen, die optimiert werden können, um sehr viel effizientere Anfragen
+auszuführen.
+@item
+Add @code{SUM(DISTINCT)}
+@item
+@code{ANY()}-,@code{EVERY()}- und @code{SOME()}-Gruppierungsfunktionen
+hinzufügen. In ANSI-SQL funktionieren diese auf boolsche Spalten, aber wir
+können sie so erweitern, dass sie mit beliebigen Spalten / Ausdrücken
+funktionieren, indem wir folgendes anwenden: wert == 0 -> FALSE und
+wert <> 0 -> TRUE.
+@item
+So überarbeiten, dass @code{MAX(column)} vom selben Typ ist wie der
+Spaltentyp.
+@example
+create tabelle t1 (a DATE);
+insert into t1 values (now());
+create tabelle t2 select max(a) von t1;
+show columns from t2;
+@end example
+@item
+Eine nette Syntax für ein Statement entwickeln, dass auf eine Zeile ein
+@code{UPDATE} ausführt, wenn sie existiert, und eine neue Zeile einfügt
+(@code{INSERT}), wenn sie nicht existiert (so wie @code{REPLACE} bei
+@code{INSERT} / @code{DELETE} funktioniert).
+@end itemize
+
+
+@node TODO sometime, TODO unplanned, TODO future, TODO
+@c German node TODO irgendwann
+@subsection Dinge die irgendwann gemacht werden müssen
+
+@itemize @bullet
+@item
+Funktion implementieren: @code{get_changed_tables(timeout,table1,table2,...)}
+@item
+Lesen durch Tabellen so ändern, das memmap benutzt wird, falls möglich.
+Momentan benutzen nur komprimierte Tabellen memmap.
+@item
+Ein neues Zugriffsrecht @strong{'Show_priv'} für @code{SHOW}-Befehle
+hinzufügen.
+@item
+Den automatischen Zeitstempel-Code netter machen. Zeitstempel zum
+Update-Log hinzufügen mit @code{SET TIMESTAMP=#;}
+@item
+An manchen Stellen read/write mutex benutzen, um mehr Geschwindigkeit zu
+erhalten.
+@item
+Volle Unterstützung von Fremdschlüsseln. Wahrscheinlich wird man zuerst
+einmal eine prozedurale Sprache implementieren wollen.
+@item
+Einfache Sichten (Views; zunächst auf eine Tabelle, später auf jeden
+beliebigen Ausdruck).
+@item
+Automatisches Schließen einiger Tabellen, wenn eine Tabelle, eine
+temporäre Tabelle oder eine temporäre Datei einen Fehler 23 bekommt
+(nicht genug offene Dateien).
+@item
+Wenn ein Feld=# gefunden wird, alle Vorkommen von Feld auf # setzen.
+Momentan wird das nur in einigen einfachen Fällen gemacht.
+@item
+Alle konstanten Ausdrücke mit berechneten Ausdrücken austauschen, falls
+möglich.
+@item
+schlüssel = ausdruck optimieren. Momentan wird nur schlüssel = feld oder
+schlüssel = konstante optimiert.
+@item
+Einige der Copy-Funktionen verbinden, um netter Code zu erhalten.
+@item
+@file{sql_yacc.yy} in einen Inline-Parser umändern, um die Größe zu
+reduzieren und bessere Fehlermeldungen zu erhalten (5 Tage).
+@item
+Den Parser so ändern, dass er nur eine Regel pro unterschiedlicher Anzahl
+von Argumenten in Funktionen benutzt.
+@item
+Die Benutzung von vollen Berechnungsnamen (full calculation names) im
+ORDER-Teil (order part). (Für ACCESS97)
+@item
+@code{UNION}, @code{MINUS}, @code{INTERSECT} und @code{FULL OUTER JOIN}.
+(Momentan wird nur @code{LEFT OUTER JOIN} unterstützt.)
+@item
+@code{UNIQUE} bei Feldern zulassen, die @code{NULL} sein können.
+@item
+@code{SQL_OPTION MAX_SELECT_TIME=#} um einer Anfrage eine Zeitbeschränkung
+zu setzen.
+@item
+@cQuestion: Check translation!
+Make the update log to a Datenbank.
+Update soll in eine Datenbank loggen.
+@item
+Negative @code{LIMIT}-Parameter, um Daten vom Ende abrufen zu können.
+@item
+@cQuestion: Alarm? Wake up?
+Alarm around client connect/read/write Funktionen.
+@item
+Bitte beachten sie die Änderungen in @code{safe_mysqld}: Nach FSSTND (woran
+sich Debian versucht zu halten) sollten PID-Dateien als
+@file{/var/run/<progname>.pid} angelegt werden und Log-Datei in
+@file{/var/log}. Es wäre nett, wenn man "DATADIR" in die erste Deklaration
+von "pidfile" und "log" packen könnte, damit die Unterbringung dieser
+Dateien mit einem einzigen Statement geändert werden könnte.
+@item
+Einem Client erlauben, Mitloggen anzufordern.
+@item
+Benutzung von @code{zlib()} für @code{gzip}-te Dateien in @code{LOAD DATA
+INFILE} zulassen.
+@item
+Sortieren und Gruppieren von @code{BLOB}-Spalten in Ordnung bringen
+(teilweise bereits gelöst).
+@item
+Gespeicherte Prozeduren. Wird aktuell nicht als sehr wichtig erachtet, weil
+gespeicherte Prozeduren noch nicht sehr standardisiert sind. Ein weiteres
+Problem besteht darin, dass es echte gespeicherte Prozeduren dem Optimierer
+viel schwerer machen und dass in vielen Fällen das Ergebnis langsamer sein
+wird als vorher. Auf der anderen Seite werden wir versuchen, eine einfache
+(atomische) Update-Sprache hinzuzufügen, die benutzt werden kann, um
+Schleifen und ähnliches im MySQL-Server zu schreiben.
+@item
+So ändern, dass Semaphore benutzt werden, wenn Threads gezählt werden. Man
+sollte zuerst eine Semaphor-Bibliothek zu MIT-pThreads implementieren.
+@item
+Keinen neuen @code{AUTO_INCREMENT}-Wert zuweisen, wenn eine Spalte auf 0
+gesetzt wird. Statt dessen @code{NULL} setzen.
+@item
+Volle Unterstützung von Verknüpfungen (@code{JOIN}) mit Klammern.
+@item
+Als Alternative für einen Thread pro Verbindung einen Pool von Threads
+verwalten, der die Anfragen handhabt.
+@item
+Einem gestatten, mehr als eine Sperre (Lock) mit @code{GET_LOCK} zu
+erhalten. Wenn man das tut, muss man die möglichen Deadlocks handhaben, die
+diese Änderung einführen wird.
+@end itemize
+
+Zeitangaben stehen für den Umfang der Arbeit, nicht für echte Zeit.
+
+
+@node TODO unplanned, , TODO sometime, TODO
+@c German node TODO ungeplant
+@subsection Ein paar Dinge, für deren Umsetzung wir keine Pläne haben
+
+@itemize @bullet
+@item
+Nichts; auf lange Sicht planen wir, voll ANSI-92- / ANSI-99-kompatibel zu
+sein.
+@end itemize
+@node Comparisons, , TODO, Deutsch
+@c German node Vergleiche
@section MySQL im Vergleich mit anderen Datenbanken
@cindex Datenbanken, MySQL im Vergleich mit anderen
@cindex Vergleich, MySQL zu anderen
-@menu
-* Vergleich mit mSQL:: MySQL im Vergleich mit @code{mSQL}
-* Vergleich mit PostgreSQL:: MySQL im Vergleich mit @code{PostgreSQL}
-@end menu
Dieser Abschnitt vergleicht MySQL mit anderen populären Datenbanken.
@@ -4983,14 +4562,20 @@ der @code{crash-me}-Webseite auf
@uref{http://www.mysql.com/information/crash-me.php}.
-@node Vergleich mit mSQL, Vergleich mit PostgreSQL, Vergleiche, Vergleiche
+@menu
+* Compare mSQL::
+* Compare PostgreSQL::
+@end menu
+
+@node Compare mSQL, Compare PostgreSQL, Comparisons, Comparisons
+@c German node Vergleich mit mSQL
@subsection MySQL im Vergleich mit @code{mSQL}
@table @strong
@item Performance
Um einen echten Geschwindigkeitsvergleich zu sehen, schauen Sie bitte in
-der wachsenden Liste der MySQL-Benchmarks nach. @xref{MySQL-Benchmarks}.
+der wachsenden Liste der MySQL-Benchmarks nach. @xref\{MySQL Benchmarks}.
Weil es keinen Overhead für die Erzeugung von Threads besitzt, einen
kleineren Parser, weniger Features und einfache Sicherheitsmechanismen,
@@ -5014,7 +4599,7 @@ einfach.)
@end itemize
Weil diese Operationen so einfach sind, ist es schwer, hier besser zu sein,
-wenn man beim Starten einen grösseren Overhead hat. Nachdem die Verbindung
+wenn man beim Starten einen größeren Overhead hat. Nachdem die Verbindung
erst einmal aufgebaut ist, sollte MySQL wesentlich bessere Leistungsdaten
bringen.
@@ -5026,7 +4611,7 @@ anderen SQL-Implementationen) bei Folgendem:
Komplexe @code{SELECT}-Operationen.
@item
-Wenn grosse Ergebnismengen abgefragt werden (MySQL hat ein besseres,
+Wenn große Ergebnismengen abgefragt werden (MySQL hat ein besseres,
schnelleres und sichereres Protokoll).
@item
@@ -5037,13 +4622,13 @@ effizientere Handhabung und kann Indizes auf @code{VARCHAR}-Spalten haben.
Handhabung von Tabellen mit vielen Spalten.
@item
-Handhabung von Tabellen mit grosser Datensatzlänge.
+Handhabung von Tabellen mit großer Datensatzlänge.
@item
@code{SELECT} mit vielen Ausdrücken.
@item
-@code{SELECT} auf grosse Tabellen.
+@code{SELECT} auf große Tabellen.
@item
Handhabung vieler gleichzeitiger Verbindungen. MySQL ist voll
@@ -5065,7 +4650,7 @@ MySQL. Das liegt daran, dass @code{mSQL} keinen Verknüpfungs-Optimierer
Wenn Sie allerdings exakt die richtige Reihenfolge in @code{mSQL}2 benutzen
und wenn die @code{WHERE}-Klausel einfach ist und Spalten-Indexe benutzt,
wird die Verknüpfung relativ schnell sein!
-@xref{MySQL-Benchmarks}.
+@xref\{MySQL Benchmarks}.
@item
@code{ORDER BY} und @code{GROUP BY}.
@@ -5107,12 +4692,12 @@ Spalte in den benutzten Tabellen eindeutig ist.
@item @code{SELECT} mit Funktionen.
MySQL hat viele Funktionen (zu viele, um sie hier aufzulisten; siehe
-@ref{Funktionen}).
+@ref\{Functions}).
@end itemize
@item Effiziente Ausnutzung von Speicherplatz
-Das heisst, wie klein können Sie Ihre Tabellen machen?
+Das heißt, wie klein können Sie Ihre Tabellen machen?
MySQL hat sehr präzise Typen, deshalb können Sie Tabellen erzeugen, die
sehr wenig Platz brauchen. Ein Beispiel für einen nützlichen MySQL-Datentyp
@@ -5125,7 +4710,7 @@ schwieriger, kleine Tabellen zu erhalten.
@item Stabilität
Dieser Punkt ist schwieriger objektiv zu beurteilen. Eine Erörterung der
-Stabilität von MySQL finden Sie hier: @ref{Stabilität}.
+Stabilität von MySQL finden Sie hier: @ref\{Stability}.
Wir haben keine Erfahrungen mit der Stabilität von @code{mSQL}, daher
können wir nichts darüber sagen.
@@ -5139,11 +4724,11 @@ natürlich notwendigerweise eine Lizenz erwerben, wenn Sie MySQL in ein
Produkt einbeziehen, das Sie verkaufen.)
@item Perl-Schnittstellen
-MySQL hat prinzipiell dieselben Schnittstelles zu Perl wie @code{mSQL}, mit
+MySQL hat prinzipiell dieselben Schnittstelle zu Perl wie @code{mSQL}, mit
einigen zusätzlichen Features.
@item JDBC (Java)
-MySQL hat aktuell eine grosse Anzahl von JDBC-Treibern:
+MySQL hat aktuell eine große Anzahl von JDBC-Treibern:
@itemize @bullet
@item
@@ -5183,7 +4768,7 @@ mit C und C++ und sind daher sehr schnell. Weil Threads, Funktionen,
eine Menge aufzuholen. Um das in den richtigen Blickwinkel zu rücken,
können Sie sich die @code{mSQL} @file{HISTORY}-Datei des letzten Jahres
ansehen und sie mit dem News-Abschnitt des MySQL Referenzhandbuchs
-vergleichen (@pxref{Neuigkeiten}). Es ist ziemlich offensichtlich, welches System
+vergleichen (@pxref\{News}). Es ist ziemlich offensichtlich, welches System
sich schneller entwickelt hat.
@item Utilities
@@ -5200,14 +4785,16 @@ Es ändert zum Beispiel Instanzen von @code{msqlConnect()} zu
konvertieren, erfordert meist nur geringe Anstrengung.
@end table
+
+
@menu
-* mSQL-Werkzeuge benutzen:: Wie man @code{mSQL}-Werkzeuge für MySQL konvertiert
-* Protokollunterschiede:: Wie sich @code{mSQL}- und MySQL-Client/Server-Kommunikationsprotokolle unterscheiden
-* Syntaxunterschiede:: Wie @code{mSQL} 2.0 SQL-Syntax von MySQL abweicht
+* Using mSQL tools::
+* Protocol differences::
+* Syntax differences::
@end menu
-
-@node mSQL-Werkzeuge benutzen, Protokollunterschiede, Vergleich mit mSQL, Vergleich mit mSQL
+@node Using mSQL tools, Protocol differences, Compare mSQL, Compare mSQL
+@c German node mSQL-Werkzeuge benutzen
@subsubsection Wie man @code{mSQL}-Werkzeuge für MySQL konvertiert
@cindex MySQL-Werkzeuge, Konvertierung
@@ -5262,7 +4849,8 @@ demselben Prozess aus unterstützt, existieren einige Inkompatibilitäten.
@end itemize
-@node Protokollunterschiede, Syntaxunterschiede, mSQL-Werkzeuge benutzen, Vergleich mit mSQL
+@node Protocol differences, Syntax differences, Using mSQL tools, Compare mSQL
+@c German node Protokollunterschiede
@subsubsection Wie sich @code{mSQL}- und MySQL-Client/Server-Kommunikationsprotokolle unterscheiden
@cindex Kommunikationsprotokolle
@@ -5279,8 +4867,8 @@ sind folgende:
Ein Nachrichtenpuffer (Message Buffer) darf viele Ergebniszeilen enthalten.
@item
-Die Nachrichtenpuffer werden dynamisch vergrössert, wenn die Anfrage oder
-das Ergebnis grösser sind als der aktuelle Puffer, bis hin zu einer
+Die Nachrichtenpuffer werden dynamisch vergrößert, wenn die Anfrage oder
+das Ergebnis größer sind als der aktuelle Puffer, bis hin zu einer
konfigurierbaren Server- und Client-Grenze.
@item
@@ -5298,19 +4886,17 @@ Client speichern zu müssen).
@item
Wenn ein einzelner Lese- / Schreibvorgang mehr als 30 Sekunden in Anspruch
-nimmt, schliesst der Server die Verbindung.
+nimmt, schließt der Server die Verbindung.
@item
-Wenn eine Verbindung länger als 8 Stunden im Leerlauf ist, schliesst der
+Wenn eine Verbindung länger als 8 Stunden im Leerlauf ist, schließt der
Server die Verbindung.
@end itemize
-@menu
-* Syntaxunterschiede:: Wie sich die @code{mSQL} 2.0 SQL-Syntax von MySQL unterscheidet
-@end menu
@cQuestion Steve: Check this node for the English original!
-@node Syntaxunterschiede, , Protokollunterschiede, Vergleich mit mSQL
+@node Syntax differences, , Protocol differences, Compare mSQL
+@c German node Syntaxunterschiede
@subsubsection Wie sich die @code{mSQL} 2.0 SQL-Syntax von MySQL unterscheidet
@noindent
@@ -5355,7 +4941,7 @@ Und @code{LIKE} funktioniert.
@item @code{REAL} @tab @code{REAL}. Or @code{FLOAT}. Beide 4- und
8-Byte-Versionen sind verfügbar.
@item @code{UINT} @tab @code{INT UNSIGNED}
-@item @code{DATE} @tab @code{DATE}. Benutzt ANSI-SQL-Format statt
+@item @code{DATE} @tab @code{DATE}. Benutzt ANSI-SQL-Format statt
@code{mSQL}'s eigenem Format.
@item @code{TIME} @tab @code{TIME}
@item @code{MONEY} @tab @code{DECIMAL(12,2)}. Ein Festkomma-Wert mit zwei
@@ -5437,7 +5023,7 @@ von @code{mSQL} zu MySQL portieren.
@table @code
@item MySQL
Normalerweise werden Zeichenketten-Vergleiche so durchgeführt, dass sie
-unabhängig von der verwendeten Gross-/Kleinschreibung laufen, wobei die
+unabhängig von der verwendeten Groß-/Kleinschreibung laufen, wobei die
Sortierreihenfolge vom aktuell verwendeten Zeichensatz abhängt (ISO-8859-1
Latin1 als Vorgabewert). Wenn Sie das nicht wollen, deklarieren Sie Ihre
Spalten mit dem @code{BINARY}-Attribut, was bewirkt, dass Vergleiche nach
@@ -5445,17 +5031,17 @@ der ASCII-Reihenfolge durchgeführt werden, wobei der ASCII-Zeichensatz
gilt, den der MySQL-Server-Host verwendet.
@item mSQL
Alle Zeichenketten-Vergleiche werden so durchgeführt, dass sie abhängig von
-der verwendeten Gross-/Kleinschreibung laufen. Die Sortierung erfolgt in
+der verwendeten Groß-/Kleinschreibung laufen. Die Sortierung erfolgt in
ASCII-Reihenfolge.
@end table
@noindent
-@strong{Suche, die unabhängig von Gross-/Kleinschreibung läuft}
+@strong{Suche, die unabhängig von Groß-/Kleinschreibung läuft}
@table @code
@item MySQL
@code{LIKE} ist ein Operator, der abhängig oder unabhängig von der
-Gross-/Kleinschreibung läuft, was davon abhängt, welche Spalten verwendet
+Groß-/Kleinschreibung läuft, was davon abhängt, welche Spalten verwendet
werden. Wenn möglich, benutzt MySQL Indexe, wenn das @code{LIKE}-Argument
nicht mit einem Platzhalterzeichen (Wildcard) beginnt.
@item mSQL
@@ -5485,7 +5071,7 @@ Sie Klammern (wie im unten stehenden Beispiel gezeigt).
@item mSQL
Wertet alles von links nach rechts aus. Das bedeutet, dass einige logische
Berechnungen mit mehr als drei Argumenten überhaupt nicht ausgedrückt
-werden können. Das heisst auch, dass Sie einige Anfragen ändern müssen,
+werden können. Das heißt auch, dass Sie einige Anfragen ändern müssen,
wenn Sie auf MySQL umsteigen. Das einfachste ist, Klammern hinzuzufügen.
Nehmen wir an, Sie haben die folgende @code{mSQL}-Anfrage:
@example
@@ -5504,7 +5090,7 @@ mysql> SELECT * FROM tabelle WHERE (a=1 AND (b=2 OR (a=3 AND (b=4))));
@table @code
@item MySQL
Hat Tabellen, in denen Berechtigungsoptionen pro Benutzer, Host, und
-Datenbank gespeichert werden. @xref{Berechtigungen}.
+Datenbank gespeichert werden. @xref\{Privileges}.
@item mSQL
Hat eine Datei @file{mSQL.acl}, in der Sie Lese-/Schreibrechte für Benutzer
gewähren können.
@@ -5512,7 +5098,8 @@ gewähren können.
@end table
-@node Vergleich mit PostgreSQL, , Vergleich mit mSQL, Vergleiche
+@node Compare PostgreSQL, , Compare mSQL, Comparisons
+@c German node Vergleich mit PostgreSQL
@subsection MySQL im Vergleich mit PostgreSQL
@cindex PostgreSQL im Vergleich mit MySQL, Überblick
@@ -5520,8 +5107,8 @@ gewähren können.
Wenn Sie das Folgende lesen, beachten Sie bitte, dass sich beide Produkte
stetig entwickeln. Wir bei MySQL AB und die PostgreSQL-Entwickler geben
sich alle Mühe, unsere jeweilige Datenbank so gut wie möglich zu machen.
-Daher sind beide Produkte bei der Wahl einer kommerziellen Datenbank
-ernsthaft in Betracht gezogen werden.
+Daher sind es beide Produkte wert bei der Wahl einer kommerziellen Datenbank
+ernsthaft in Betracht gezogen zu werden.
Der folgende Vergleich wurde von uns bei MySQL AB durchgeführt. Wir haben
uns bemüht, so akkurat und fair wie möglich zu sein. Da wir aber keine
@@ -5541,21 +5128,23 @@ Merkmale brauchen, die nur PostgreSQL anbieten kann, sollten Sie
@code{PostgreSQL} benutzen.
@cindex PostgreSQL/MySQL, Strategien
+
+
@menu
-* MySQL-PostgreSQL-Ziele:: Entwicklungsstragien von MySQL und PostgreSQL
-* MySQL-PostgreSQL-Features:: Feature-Vergleich von MySQL und PostgreSQL
-* MySQL-PostgreSQL-Benchmarks:: Benchmark-Vergleiche von MySQL und PostgreSQL
+* MySQL-PostgreSQL goals::
+* MySQL-PostgreSQL features::
+* MySQL-PostgreSQL benchmarks::
@end menu
-
-@node MySQL-PostgreSQL-Ziele, MySQL-PostgreSQL-Features, Vergleich mit PostgreSQL, Vergleich mit PostgreSQL
+@node MySQL-PostgreSQL goals, MySQL-PostgreSQL features, Compare PostgreSQL, Compare PostgreSQL
+@c German node MySQL-PostgreSQL-Ziele
@subsubsection Entwicklungsstragien von MySQL und PostgreSQL
Wenn wir MySQL Dinge hinzufügen, ist es für uns eine Sache der Ehre, eine
optimale, definitive Lösungen zu schaffen. Der Code sollte so gut sein,
dass wir keine Notwendigkeit erkennen, ihn in der absehbaren Zukunft zu
ändern. Wir wollen auch nicht Geschwindigkeit für Features opfern, sondern
-sind aufs Äusserste bestrebt, eine Lösung zu finden, die maximalen
+sind aufs Äußerste bestrebt, eine Lösung zu finden, die maximalen
Durchsatz bietet. Das bedeutet, dass die Entwicklung ein bisschen länger
dauert, aber die Endergebnisse sind es wert. Diese Art von Entwicklung ist
nur möglich, weil der gesamte Server-Code nur von wenigen Leuten geprüft
@@ -5563,7 +5152,7 @@ wird (aktuell zwei), bevor er in den MySQL-Server aufgenommen wird.
Wir bei MySQL AB halten viel von häufigen Releases, um in der Lage zu sein,
neue Features schnell an unsere Benutzer heraus zu geben. Deshalb bringen
-wir etwa alle drei Wochen ein kleines Release heraus und einen grösseren
+wir etwa alle drei Wochen ein kleines Release heraus und einen größeren
Zweig (Branch) einmal im Jahr. Alle Releases werden gründlich mit unseren
Testwerkzeugen auf vielen verschiedenen Plattformen getestet.
@@ -5573,14 +5162,14 @@ neuer Features Priorität einzuräumen, statt sie optimal zu implementieren,
denn man kann immer noch später Dinge optimieren, wenn sich die
Notwendigkeit hierfür ergibt.
-Ein weiterer grosser Unterschied zwischen MySQL und PostgreSQL besteht
+Ein weiterer großer Unterschied zwischen MySQL und PostgreSQL besteht
darin, dass praktisch der gesamte Code des MySQL-Servers von Entwicklern
kodiert wurde, die bei MySQL AB angestellt sind und die immer noch am
Server-Code arbeiten. Ausnahmen bilden die Transaktions-Engines und die
Regexp-Bibliothek.
-Das steht in scharfem Kontrast zum PostgreSQL-Code, wo der grösste Teil des
-Codes von einer grossen Gruppe von Leuten mit unterschiedlichem Hintergrund
+Das steht in scharfem Kontrast zum PostgreSQL-Code, wo der größte Teil des
+Codes von einer großen Gruppe von Leuten mit unterschiedlichem Hintergrund
kodiert wird. Erst kürzlich gaben die PostgreSQL-Entwickler bekannt, dass
ihre aktuelle Entwicklergruppe endlich Zeit gefunden hat, einen Blick auf
all den Code der aktuellen PostgreSQL-Version zu werfen.
@@ -5593,7 +5182,8 @@ Meinung weniger Bugs. Weil wir die Autoren des MySQL-Server-Codes sind,
sind wir besser im Stande, neue Features und Releases zu koordinieren.
-@node MySQL-PostgreSQL-Features, MySQL-PostgreSQL-Benchmarks, MySQL-PostgreSQL-Ziele, Vergleich mit PostgreSQL
+@node MySQL-PostgreSQL features, MySQL-PostgreSQL benchmarks, MySQL-PostgreSQL goals, Compare PostgreSQL
+@c German node MySQL-PostgreSQL-Features
@subsubsection Feature-Vergleich von MySQL und PostgreSQL
@cindex PostgreSQL/MySQL, Features
@@ -5603,7 +5193,7 @@ crash-me} finden Sie eine Liste der Datenbank-Konstrukte und
-Beschränkungen, die man automatisch mit einem Programm entdecken kann.
Beachten Sie jedoch, dass sich etliche numerische Beschränkungen mit
Start-Optionen der jeweiligen Datenbank ändern lassen. Die genannte Seite
-ist jedoch äusserst nützlich, wenn Sie sicher stellen wollen, dass Ihre
+ist jedoch äußerst nützlich, wenn Sie sicher stellen wollen, dass Ihre
Applikationen mit vielen unterschiedlichen Datenbanken funktionieren, oder
wenn Sie Ihre Applikation von einer Datenbank zu einer anderen konvertieren
wollen.
@@ -5613,10 +5203,10 @@ MySQL bietet folgende Vorzüge gegenüber PostgreSQL:
@itemize @bullet
@item
@code{MySQL} ist generell viel schneller als PostgreSQL.
-@xref{MySQL-PostgreSQL-Benchmarks}.
+@xref\{MySQL-PostgreSQL benchmarks}.
@item
-MySQL hat eine viel grössere Benutzer-Basis als PostgreSQL, deshalb ist der
+MySQL hat eine viel größere Benutzer-Basis als PostgreSQL, deshalb ist der
Code besser getestet und hat sich historisch als stabiler erwiesen als der
von PostgreSQL. MySQL wird sehr viel mehr in Produktionsumgebungen
eingesetzt als PostgreSQL, hauptsächlich dank der Tatsache, dass MySQL AB,
@@ -5646,7 +5236,7 @@ erzielen. @code{VACUUM()} wird auch benötigt nach dem Hinzufügen vieler
Zeilen in eine Tabelle. Auf einem ausgelasteten System mit vielen
Änderungen muss @code{VACUUM()} sehr häufig laufen gelassen werden, im
schlimmsten Fall mehrmals täglich. Während @code{VACUUM()} läuft, was
-Stunden dauern kann, wenn die Datenbank gross ist, ist die Datenbank vom
+Stunden dauern kann, wenn die Datenbank Groß ist, ist die Datenbank vom
Produktionsstandpunkt her gesehen praktisch tot. Das PostgreSQL-Team hat
die Behebung dessen auf seiner TODO-Liste, aber wir vermuten, dass es nicht
einfach sein wird, das dauerhaft zu beheben.
@@ -5674,7 +5264,7 @@ hohen Standard gehalten wird.
@item
Es gibt wesentlich mehr gedruckte Bücher über MySQL als über PostgreSQL.
-Alle grossen Verlage wie O'Reilly, Sams, Que und New Riders bieten Bücher
+Alle großen Verlage wie O'Reilly, Sams, Que und New Riders bieten Bücher
über MySQL an. Alle MySQL-Features werden ausserdem im
MySQL-Online-Handbuch dokumentiert, denn wenn ein neues Feature
implementiert wird, sind die MySQL-Entwickler gehalten, es zu
@@ -5690,14 +5280,14 @@ MySQL hat ein technisch ausgereifteres @code{ALTER TABLE}.
MySQL unterstützt Tabellen ohne Transaktionen für Applikationen, die so
viel Geschwindigkeit brauchen, wie sie bekommen können. Tabellen können
Arbeitsspeicher-basierend, @code{HEAP}-Tabellen oder Festplatten-basierend
-@code{MyISAM} sein. @xref{Tabellentypen}.
+@code{MyISAM} sein. @xref\{Table types}.
@item
MySQL unterstützt zwei verschiedene Tabellen-Handler, die Transaktionen
unterstützen: @code{BerkeleyDB} und @code{InnoDB}. Weil jede
Transaktions-Engine unter unterschiedlichen Bedingungen unterschiedlich
leistungsfähig ist, gibt das dem Applikationsschreiber mehr Optionen, die
-optimale Lösung für seinen Bedarf zu finden. @xref{Tabellentypen}.
+optimale Lösung für seinen Bedarf zu finden. @xref\{Table types}.
@item
@code{MERGE}-Tabellen geben Ihnen eine einzigartige Möglichkeit, eine
@@ -5712,7 +5302,7 @@ Performance, dass Festplattenzugriffe minimiert werden. Das ist sehr
nützlich, wenn Sie Dinge archivieren. @xref{myisampack}.
@item
-MySQL hat internen Support für Volltextsuche. @xref{Volltextsuche}.
+MySQL hat internen Support für Volltextsuche. @xref\{Fulltext Search}.
@item
Sie können von derselben Verbindung aus auf viele Datenbanken zugreifen
@@ -5723,7 +5313,7 @@ MySQL wurde von Anfang an multi-threaded kodiert, während PostgreSQL
Prozesse benutzt. Umschalten zwischen unterschiedlichen Zusammenhängen
(Context Switching) und Zugriff auf allgemeine Speicherbereiche geht
zwischen Threads wesentlich schneller als zwischen separaten Prozessen. Das
-bringt MySQL einen grossen Geschwindigkeitsvorteil in
+bringt MySQL einen großen Geschwindigkeitsvorteil in
Mehrbenutzer-Applikationen und macht es obendrein für MySQL einfacher, den
vollen Nutzen aus symmetrischen Multiprozessor-Systemen (SMP) zu ziehen.
@@ -5759,7 +5349,7 @@ wirklich einfach werden, selbst wenn der Server herunter gefahren ist.
Werkzeuge, um @strong{MyISAM}-Tabellen (der meistbenutzte MySQL-Tabellentyp) zu
reparieren und zu optimieren. Ein Reparaturwerkzeug wird nur dann benötigt,
wenn eine Datendatei physikalisch beschädigt wurde, was üblicherweise bei
-Hardwareproblemen der Fall ist. Das Werkzeug kann meist den grössten Teil der
+Hardwareproblemen der Fall ist. Das Werkzeug kann meist den größten Teil der
Daten retten.
@item
@@ -5773,7 +5363,7 @@ Nachteile von MySQL im Vergleich zu PostgreSQL:
@itemize @bullet
@item
-Die Transaktionsunterstützung in MySQL ist noch nicht so gut getested wie
+Die Transaktionsunterstützung in MySQL ist noch nicht so gut getestet wie
das System von PostgreSQL.
@item
@@ -5795,13 +5385,13 @@ laufende Anfrage eine Tabelle lange Zeit für Updates blockieren kann. Das
kann gewöhnlich durch entsprechenden Entwurf der Applikation vermieden
werden. Falls nicht, kann man immer noch die Tabelle, die das Problem
verursacht, zu einem der transaktionalen Tabellentypen umändern.
-@xref{Tabellensperren}.
+@xref\{Table locking}.
@item
Mit UDF (User Defined Functions, Benutzerdefinierten Funktionen) kann man
MySQL sowohl hinsichtlich SQL-Funktionen als auch Aggregaten erweitern,
aber das ist noch nicht so einfach und flexibel wie in PostgreSQL.
-@xref{Hinzufügen von Funktionen}.
+@xref\{MySQL internals}.
@item
Updates, die über mehrere Tabellen laufen, sind in MySQL schwieriger
@@ -5847,7 +5437,7 @@ Man kann PostgreSQL beschleunigen, indem man Dinge als gespeicherte
Prozeduren kodiert.
@item
-PostgreSQL hat ein grösseres Entwicklerteam, das Code zum Server
+PostgreSQL hat ein größeres Entwicklerteam, das Code zum Server
beisteuert.
@end itemize
@@ -5868,12 +5458,10 @@ Viel langsamere @code{INSERT}, @code{DELETE} und @code{UPDATE} Anweisungen.
Eine vollständige Aufstellung der Nachteile finden Sie in der ersten
Tabelle dieses Abschnitts.
-@menu
-* MySQL-PostgreSQL-Benchmarks:: Benchmark-Vergleiche von MySQL und PostgreSQL
-@end menu
-@node MySQL-PostgreSQL-Benchmarks, , MySQL-PostgreSQL-Features, Vergleich mit PostgreSQL
+@node MySQL-PostgreSQL benchmarks, , MySQL-PostgreSQL features, Compare PostgreSQL
+@c German node MySQL-PostgreSQL-Benchmarks
@subsubsection Benchmark-Vergleiche von MySQL und PostgreSQL
@cindex PostgreSQL im Vergleich mit MySQL, Benchmarks
@@ -5905,7 +5493,7 @@ der Server läuft, wenn der Applikationsentwickler Erweiterungen im Server
nutzt, um seine Applikation schneller laufen zu lassen.
Wenn wir PostgreSQL mit der @code{--fast}-Option laufen lassen, machen wir
-ein @code{VACUUM()} nach jedem grösseren Tabellen-@code{UPDATE} und
+ein @code{VACUUM()} nach jedem größeren Tabellen-@code{UPDATE} und
@code{DROP TABLE}, um die Datenbank in beste Verfassung für die folgenden
@code{SELECT}s zu bringen. Die Zeit für @code{VACUUM()} wird separat
gemessen.
@@ -5952,7 +5540,7 @@ auf andere Weise machen sollten.
Wir kennen zwei Benchmark-Tests, die behaupten, dass PostgreSQL bessere
Leistungsdaten bringt als MySQL. Beide waren Mehrbenutzer-Tests, ein Test,
den zu schreiben wir bei MySQL AB nie die Zeit hatten, hauptsächlich, weil
-es eine wirklich grosse Aufgabe ist, wenn man will, dass der Test fair zu
+es eine wirklich große Aufgabe ist, wenn man will, dass der Test fair zu
allen Datenbanken ist.
Einer der Tests ist derjenige, für den Great Bridge bezahlt hat, und über
@@ -5979,17 +5567,17 @@ für ein Open-Source-Unternehmen wie uns unmöglich macht, den Benchmark zu
verifizieren, selbst einfach nur zu überprüfen, wie der Benchmark
eigentlich durchgeführt wurde. Das Werkzeug ist nicht einmal ein echtes
Benchmark-Werkzeug, sondern vielmehr ein Applikations-/Setup-Test-Werkzeug. Darauf
-als ``Standard''-Benchmark-Werkzeug Bezug zu nehmen heisst, es mit der Wahrheit
+als ``Standard''-Benchmark-Werkzeug Bezug zu nehmen heißt, es mit der Wahrheit
nicht so genau zu nehmen.
@item
Great Bridge hat zugegeben, dass sie die PostgreSQL-Datenbank optimiert
haben (mit @code{VACUUM()} vor dem Test) und dass sie das Starten vor dem
Test getuned haben, etwas, das sie für keine der anderen getesteten
-Datenbanken gemacht haben. Dazu heisst es: ``Dieser Prozess optimiert
+Datenbanken gemacht haben. Dazu heißt es: ``Dieser Prozess optimiert
Indexe und gibt etwas Festplattenspeicher frei. Die optimierten Indexe
steigern die Performance um etliches.'' Unsere Benchmarks zeigen deutlich,
-dass der Unterschied bei einer grossen Menge von Selects auf eine Datenbank
+dass der Unterschied bei einer großen Menge von Selects auf eine Datenbank
mit und ohne @code{VACUUM()} leicht Faktor zehn betragen kann.
@item
@@ -6006,7 +5594,7 @@ weiter unten wird erläutert, wie es zu den schlechten Ergebnissen für MySQL
kam.
@item
-Sie liessen den so genannten Benchmark von einer Windows-Maschine zu einer
+Sie ließen den so genannten Benchmark von einer Windows-Maschine zu einer
Linux-Maschine über ODBC laufen, was ein normaler Datenbankbenutzer nie
machen würde, wenn er eine unter hoher Last laufende
Mehrbenutzer-Applikation laufen lassen würde. Dadurch wurde eher der
@@ -6017,7 +5605,7 @@ getestet als die Datenbank selbst.
Als Sie die Datenbank mit Oracle und MS-SQL betrieben (Great Bridge hat
indirekt angedeutet, dass das die Datenbanken waren, die im Test benutzt
wurden), benutzten sie nicht das native Protokoll, sondern statt dessen
-ODBC. Jeder, der jemals Oracle benutzt hat, weiss, dass alle echten
+ODBC. Jeder, der jemals Oracle benutzt hat, weiß, dass alle echten
Applikationen die native Schnittstelle anstatt ODBC benutzen. Einen Test
mit ODBC fahren und erklären, dass das irgend etwas mit Situationen des
echten Lebens zu tun hat, kann kaum als fair erachtet werden. Sie hätten
@@ -6057,7 +5645,7 @@ empfohlene neuere bereits verfügbar war.
@item
Sie haben MySQL nicht mit den richtigen Optionen für hohe Last und
-Mehrbenutzerbetrieb gestartet (die vorgabemässige Installation von MySQL
+Mehrbenutzerbetrieb gestartet (die vorgabemäßige Installation von MySQL
ist auf minimalen Ressourcenverbrauch eingestellt).
@end itemize
@@ -6082,7 +5670,7 @@ machen).
Tim Perdue, seit langer Zeit PostgreSQL-Fan und ein widerwilliger
MySQL-Benutzer, hat einen Vergleich auf
-@uref{http://www.phpbuilder.com/columns/tim20001112.php3,phpbuider}
+@uref{http://www.phpbuilder.com/columns/tim20001112.php3,phpbuilder}
veröffentlicht.
Als wir von diesem Vergleich erfuhren, telefonierten wir mit Tim Perdue zu
@@ -6118,7 +5706,7 @@ Im Zeitverlauf haben sich die Dinge auch geändert und die genannten
Benchmarks sind nicht mehr so relevant. MySQL hat mittlerweile eine Reihe
unterschiedlicher Tabellen-Handler mit unterschiedlichen Verhältnissen
zwischen Geschwindigkeit und Anzahl gleichzeitiger Zugriffe
-(Speed/Concurrency Tradeoffs). @xref{Tabellentypen}. Es wäre interessant zu
+(Speed/Concurrency Tradeoffs). @xref\{Table types}. Es wäre interessant zu
sehen, wie die obigen Tests mit den verschiedenen transaktionalen Tabellen
von MySQL laufen würden. PostgreSQL hat natürlich auch neue Features
erhalten, seit die Tests durchgeführt wurden. Weil die genannten Tests
@@ -6147,570 +5735,18 @@ schneller ist als MySQL. Wir würden nur gern einen fairen Test sehen, der
zeigt, worin PostgreSQL sehr gut ist, damit wir einen freundlichen
Wettbewerb anzetteln können!
-Mehr Informationen über unsere Benchmark-Suite finden Sie unter @xref{MySQL-Benchmarks}.
+Mehr Informationen über unsere Benchmark-Suite finden Sie unter @xref\{MySQL Benchmarks}.
Wir arbeiten an einer noch besseren Benchmark-Suite, die Mehrbenutzer-Tests
beinhaltet sowie eine bessere Dokumentation dessen, was die einzelnen Tests
genau tun und wie man weitere Tests zur Suite hinzufügt.
-
-@node TODO, , Vergleiche, Einführung
-@section MySQL und die Zukunft (das TODO)
-
-@cindex TODO-Liste für MySQL
-
-@menu
-* TODO MySQL 4.0:: Dinge, die in Version 4.0 enthalten sein sollten
-* TODO zukünftig:: Dinge, die in naher Zukunft gemacht werden müssen
-* TODO irgendwann:: Dinge, die irgendwann getan werden müssen
-* TODO ungeplant:: Ein paar Dinge, für deren Umsetzung wir keine Pläne haben
-@end menu
-
-Dieser Anhang listet die Features auf, für die wir eine Implementierung in
-MySQL geplant haben.
-
-Alles auf dieser Liste gibt nur ungefähr die Reihenfolge wieder, in der es
-gemacht werden wird. Wenn Sie die Prioritäten beeinflussen wollen,
-registrieren Sie bitte eine Lizenz oder unterstützen Sie uns und teilen uns
-mit, was Sie schneller gemacht haben wollen. @xref{Lizensierung und Support}.
-
-Geplant ist, dass wir in Zukunft den kompletten ANSI-SQL99-Standard
-unterstützen, aber mit einer Menge nützlicher Erweiterungen. Die
-Herausforderung liegt darin, dass durchzuführen, ohne
-Geschwindigkeitsvorteile zu opfern oder den Code zu kompromittieren.
-
-
-@node TODO MySQL 4.0, TODO zukünftig, TODO, TODO
-@subsection Dinge, die in Version 4.0 enthalten sein sollten
-
-Wir haben uns der Entwicklung von MySQL Version 4.0 zugewandt. Die meisten
-grundsätzlichen Dinge, die wir in Version 4.0 haben wollen, sind bereits
-gemacht. Das Ziel ist, den Rest der folgenden Features schnell einzubauen
-und dann zur Entwicklung von MySQL 4.1 überzugehen.
-
-Der News-Abschnitt für 4.0 beinhaltet eine Liste der Features, die wir
-bereits im 4.0-Baum implementiert haben. @xref{Neuigkeiten-4.0.x}.
-
-@itemize @bullet
-@item
-Benutzern erlauben, die Startoptionen zu ändern, ohne den Server herunter
-fahren zu müssen.
-@item
-Störsichere Replikation.
-@item
-Mehr Funktionen für die Volltextsuche.
-@xref{Volltext-Features in MySQL 4.0}.
-@item
-Neuer Schlüssel-Cache
-@item
-Neues Dateiformat für die Tabellendefinition (@code{.frm}-Dateien). Das
-versetzt uns in die Lage, nicht irgendwann keine Bits mehr zu haben, wenn
-wir weitere Tabellenoptionen hinzufügen. Es wird nach wie vor möglich sein,
-in 4.0 das alte @code{.frm}-Dateiformat zu benutzen. Alle neu erzeugten
-Tabellen werden jedoch das neue Format benutzen.
-
-Das neue Dateiformat versetzt uns in die Lage, neue Spaltentypen, mehr
-Optionen für Schlüssel und @code{FOREIGN KEY}-Support hinzuzufügen.
-@item
-Die Replikation sollte mit @code{RAND()} und Benutzer-Variablen
-@code{@@var} funktionieren.
-@item
-Online-Datensicherung mit sehr geringen Performance-Einbussen. Das Online-Backup
-wird das Hinzufügen eines neuen Replikations-Slaves erleichtern, ohne dass
-man den Master herunter fahren muss.
-@item
-Es zulassen, dass @code{DELETE} auf @code{MyISAM}-Tabellen den
-Datensatz-Cache benutzt. Um das zu tun, müssen wir den Thread-Cache für
-Datensätze aktualisieren, wenn wir die @code{.MYD}-Datei aktualisieren.
-@item
-Zeichensatz-Festlegungen (Casts) und Syntax für die Handhabung mehrerer
-Zeichensätze.
-@item
-Hilfe für alle Befehle des Clients.
-@item
-Sichere Verbindungen (mit SSL).
-@item
-@code{SHOW COLUMNS FROM tabelle} (der vom @code{mysql}-Client benutzt für
-die Erweiterung von Spaltennamen benutzt wird) sollte nicht die Tabelle
-öffnen, sondern nur die Definitionsdatei. Das wird weniger Speicher
-beanspruchen und sehr viel schneller sein.
-@item
-Bei der Benutzung von @code{SET CHARACTER SET} sollten wir die gesamte
-Anfrage übersetzen und nicht nur Zeichenketten. Das würde Benutzern
-ermöglichen, landesspezifische Zeichen auch in Datenbank-, Tabellen- und
-Spaltenamen zu benutzen.
-@item
-Hinzufügen einer portablen Schnittstelle zu @code{gethostbyaddr_r()},
-damit wir @code{ip_to_hostname()} davon abhalten können, andere Threads zu
-blockieren, während es DNS-Lookups durchführt.
-@item
-Hinzufügen der @code{record_in_range()}-Methode zu @code{MERGE}-Tabellen,
-um den richtigen Index auswählen zu können, wenn es viele gibt, aus denen
-ausgewählt werden kann. Wir sollten auch die info-Schnittstelle erweitern,
-um die Schlüsselverteilung für jeden Index zu erhalten, wenn @code{analyze}
-über alle Unter-Tabellen läuft.
-@item
-@code{SET SQL_DEFAULT_TABLE_TYPE=[MyISAM | INNODB | BDB | HEAP]}.
-@end itemize
-
-
-@node TODO zukünftig, TODO irgendwann, TODO MySQL 4.0, TODO
-@subsection Dinge, die in naher Zukunft erledigt werden müssen
-
-@itemize @bullet
-@item
-Unteranfragen (Subqueries).
-@code{select id from t where grp in (select grp from g where u > 100)}
-@item
-Atomische Multi-Tabellen-Updates, zum Beispiel @code{update items,month set
-items.price=month.price where items.id=month.id;};
-@item
-Abgeleitete Tabellen (Derived Tables).
-@example
-select a.col1, b.col2 from (select max(col1) as col1 from root_table ) a,
-other_table b where a.col1=b.col1
-@end example
-
-Das könnte erreicht werden, indem für die Dauer der Anfrage automatisch
-temporäre Tabellen für die abgeleiteten Tabellen erzeugt werden.
-@item
-Hinzufügen eines @code{PREPARE} von Statements und Senden von Parametern an
-@code{mysqld}.
-@item
-Erweiterung des Client-Server-Protokolls, um Warnungen (Warnings) zu
-unterstützen.
-@item
-Hinzufügen von Optionen zum Client-Server-Protokoll, um
-Fortschrittsanzeigen für lange laufende Kommandos zu erhalten.
-@item
-Hinzufügen von Datenbank und echtem Tabellennamen (im Falle von Alias) zur
-MYSQL_FIELD-Struktur.
-@item
-Nicht mehr als die festgelegte Anzahl von Threads zulassen, um MyISAM
-recover zeitgleich laufen zu lassen.
-@item
-@code{INSERT ... SELECT} ändern, um optional konkurrierende Inserts zu
-benutzen.
-@item
-@code{RENAME DATABASE} implementieren. Damit das sicher für alle
-Tabellen-Handler funktioniert, sollte es wie folgt laufen:
-@itemize @bullet
-@item
-Neue Datenbank anlegen.
-@item
-Für jede Tabelle ein Umbenennen der Tabelle zu einer anderen Datenbank
-durchführen, wie wir es schon mit dem @code{RENAME}-Befehl machen.
-@item
-Alte Datenbank löschen.
-@end itemize
-@item
-Die Original-Feldtypen zurückgeben, wenn @code{SELECT MIN(column)... GROUP
-BY} ausgeführt wird.
-@item
-Mehrfache Ergebnismengen (Multiple Result Sets).
-@item
-Änderung des Protokolls, um Binärübertragung von Werten zu ermöglichen. Um
-das effizient zu machen, müssen wir eine API hinzufügen, die Bindung
-(Binding) von Variablen erlaubt.
-
-
-@code{mysqld}.
-@item
-Es soll möglich sein, @code{long_query_time} mit einer Auflösung in
-Mikrosekunden festzulegen.
-@item
-Hinzufügen eines konfigurierbaren Prompts zum
-@code{mysql}-Kommandozeilen-Werkzeug, mit Optionen wie Datenbank in Benutzung,
-Zeit und Datum ...
-@item
-Hinzufügen von Bereichsüberprüfung (Range Checking) zu
-@code{MERGE}-Tabellen.
-@item
-@code{myisampack}-Code in den Server einlinken.
-@item
-Portierung von MySQL auf BeOS.
-@item
-Portierung von MySQL-Clients auf LynxOS.
-@item
-Hinzufügen eines temporären Schlüssel-Puffer-Caches während
-@code{INSERT/DELETE/UPDATE}, um den vorherigen Zustand elegant
-wiederherstellen zu können, wenn der Index voll wird.
-@item
-Wenn ein @code{ALTER TABLE} auf eine Tabelle durchgeführt wird, die per
-Symlink auf einer anderen Festplatte ist, temporäre Tabellen auf dieser
-Festplatte erzeugen.
-@item
-Implementierung eines @code{DATE/DATETIME}-Typs, der
-Zeitzonen-Informationen sauber handhabt, damit der Umgang mit Datumswerten
-in verschiedenen Zeitzonen leichter wird.
-@item
-FreeBSD- und MIT-pThreads; nehmen schlafende Threads CPU in Anspruch?
-@item
-Prüfen, ob gesperrte Threads CPU beanspruchen.
-@item
-Configure reparieren, so dass man alle Bibliotheken (wie @code{MyISAM})
-ohne Threads kompilieren kann.
-@item
-Hinzufügen einer Option, um regelmässig die Schlüsselseiten (Key Pages) für
-Tabellen mit verzögerten Schlüsseln (Delayed Keys) zu löschen (flush), wenn
-Sie eine Weile nicht in Gebrauch waren.
-@item
-Verknüpfungen (Join) auf Teile des Schlüssels zulassen (Optimierungsthema).
-@item
-@code{INSERT SQL_CONCURRENT} und @code{mysqld --concurrent-insert} sollen
-ein konkurrierendes Insert am Ende der Datei machen, falls die Datei
-lese-gesperrt ist.
-@item
-@code{FOREIGN}-Key-Festlegungen in der @file{.frm}-Datei speichern.
-@item
-Kaskadierendes Löschen (@code{DELETE})
-@item
-Serverseitige Cursor.
-@item
-Prüfen, ob @code{lockd} mit modernen Linux-Kernels funktioniert; wenn
-nicht, müssen wir @code{lockd} überarbeiten! Um das zu testen, startet man
-@code{mysqld} mit @code{--enable-locking} und lässt die verschiedenen fork*
-test suits laufen. Sie sollten keine Fehler produzieren, wenn @code{lockd}
-funktioniert.
-@item
-SQL-Variablen in @code{LIMIT} zulassen, wie @code{LIMIT @@a,@@b}.
-@item
-Aktualisierung von Variablen in @code{UPDATE}-Statements zulassen, zum
-Beispiel: @code{UPDATE TABLE foo SET @@a=a+b,a=@@a, b=@@a+c}
-@item
-Wenn Benutzervariablen aktualisiert werden, so ändern, dass man sie mit
-@code{GROUP BY} benutzen kann wie in folgendem Beispiel:
-@code{SELECT id, @@a:=count(*), sum(sum_col)/@@a FROM tabelle GROUP BY id}.
-@item
-Keine automatischen @code{DEFAULT}-Werte zu Spalten hinzufügen. Fehler
-ausgeben, wenn ein @code{INSERT} benutzt wird, dass keine Spalte enthält,
-die keinen @code{DEFAULT}-Wert hat.
-@item
-Caching von Anfragen und Ergebnissen. Das sollte als separates Modul
-gemacht werden, das jede Anfrage prüft. Falls diese Anfrage im Cache ist,
-soll das Cache-Ergebnis zurückgegeben werden. Wenn man eine Tabelle
-aktualisiert, sollte man so wenige Anfragen wie möglich aus dem Cache
-entfernen. Das sollte eine grosse Geschwindigkeitssteigerung auf Maschinen
-geben, die viel RAM haben und wo Anfragen of wiederholt werden (wie
-WWW-Applikationen). Eine Idee wäre, nur Anfrage des Typs
-@code{SELECT CACHED ...}
-zu cachen.
-@item
-@file{libmysql.c} überarbeiten, damit zwei @code{mysql_query()}-Befehle in
-einer Zeile stehen können, ohne dass Ergebnisse gelesen werden oder man
-eine nette Fehlermeldung erhält, wenn man das tut.
-@item
-Optimierung des @code{BIT}-Typs, so dass er 1 Bit aufnimmt (momentan nimmt
-@code{BIT} 1 Zeichen auf).
-@item
-Prüfen, warun MIT-pThreads @code{ctime()} auf einigen FreeBSD-Systemen
-nicht funktioniert.
-@item
-Hinzufügen einer @code{IMAGE}-Option zu @code{LOAD DATA INFILE}, damit
-@code{TIMESTAMP}- und @code{AUTO_INCREMENT}-Felder nicht aktualisiert
-werden.
-@item
-@code{LOAD DATE INFILE.. UPDATE}-Syntax hinzugefügen.
-@itemize @bullet
-@item
-Wenn Daten bei Tabellen mit Primärschlüssel den Primärschlüssel enthalten,
-werden Einträge, die zu diesem Primärschlüssel passen, vom Rest der Spalten
-aktualisert. Spalten, die im herein kommenden Datenstrom NICHT enthalten
-sind, werden jedoch nicht berührt.
-@item
-Bei Tabellen mit Primärschlüsseln, wo im herein kommenden Datenstrom ein
-Teil des Schlüssels fehlt, oder wenn kein Primärschlüssel eingegeben wird,
-wird die Eingabe so behandelt wie jetzt schon @code{LOAD DATA INFILE ...
-REPLACE INTO}.
-@end itemize
-@item
-@code{LOAD DATA INFILE} soll auch folgende Syntax verstehen:
-@example
-LOAD DATA INFILE 'datei.txt' INTO TABLE tabelle
-TEXT_FIELDS (text_feld1, text_feld2, text_feld3)
-SET tabelle_feld1=concatenate(text_feld1, text_feld2), tabelle_feld3=23
-IGNORE text_feld3
-
-Das kann benutzt werden, um zusätzliche Spalten in der Textdatei zu
-überspringen oder um Spalten basierend auf Ausdrücken in den gelesenen
-Daten zu aktualisieren ...
-@end example
-@item
-@code{LOAD DATA INFILE 'datei' INTO TABLE 'tabelle' ERRORS TO err_tabelle}
-Das würde bewirken, dass alle Fehler und Warnungen in der err_tabelle
-mitgeschrieben werden. Diese Tabelle hätte etwa folgende Struktur:
-
-@example
-zeile_nummer - Zeilennummer in der Datendatei
-fehler_nachricht - die Fehler-/Warnungs-Nachricht
-und vielleicht
-@cQuestion: ??? This is already logged in zeile_nummer (line_number)!
-daten_zeile - die Zeilennummer der Datendatei
-@end example
-@item
-Hinzufügen von echter @code{VARCHAR}-Unterstützung (gibt es schon in
-MyISAM).
-@item
-Automatische Ausgabe von @code{mysql} an Netscape.
-@item
-@code{LOCK DATABASES}. (mit vielerlei Optionen)
-@item
-
-
-Ändern wie Sortierung Speicher alloziert, um bessere
-Speicherausnutzung zu erhalten.
-@item
-@code{DECIMAL}- und @code{NUMERIC}-Typen können keine exponentiellen Zahlen
-lesen; @code{Field_decimal::store(const char *from,uint len)} muss neu
-kodiert werden, um das zu beheben.
-@item
-@code{mysql.cc} überarbeiten, damit weniger @code{malloc()}-Aufrufe
-durchgeführt werden, wenn Feldnamen gehasht werden.
-@item
-Funktionen:
-ADD_TO_SET(wert,set) und REMOVE_FROM_SET(wert,set)
-@item
-Benutzung von @code{t1 JOIN t2 ON ...} und @code{t1 JOIN t2 USING ...}
-hinzufügen. Momentan kann man diese Syntax nur mit @code{LEFT JOIN}
-benutzen.
-@item
-Volle Unterstützung für @code{unsigned long long}-Typen hinzufügen.
-@item
-Viele weitere Variablen für @code{show status}. Zähler für:
-@code{INSERT}-/@code{DELETE}-/@code{UPDATE}-Statements. Gelesene und
-aktualisierte Datensätze. Select auf 1 Tabelle und Selects mit Joins.
-Durchschnittliche Anzahl von Tabellen in Selects. Anzahl von @code{ORDER
-BY}- und @code{GROUP BY}-Anfragen.
-@item
-Wenn man @code{mysql} mitten in einer Anfrage abbricht, sollte man eine
-neue Verbindung herstellen und die alte, laufende Anfrage killen.
-Alternativ könnte man den Versuch unternehmen, so etwas im Server zu
-entdecken.
-@item
-Eine Handler-Schnittstelle für Tabelleninformation hinzufügen, damit man
-sie als Systemtabelle benutzen kann. Das wäre ein bisschen langsam, wenn
-man Informationen über alle Tabellen abfragt, aber sehr flexibel.
-@code{SHOW INFO FROM tabelle} für Basisinformationen über Tabellen sollte
-implementiert werden.
-@item
-Unterstützung für UNICODE hinzufügen.
-@item
-@code{NATURAL JOIN} und @code{UNION JOIN}.
-@item
-Anfragen wie @code{select a from crash_me left join crash_me2 using (a)}
-zulassen; in diesem Fall wird angenommen, dass a aus der crash_me-Tabelle
-kommt.
-@item
-Überarbeitung, damit @code{ON} und @code{USING} mit dem
-@code{JOIN}-Verknüpfungstyp funktioniert.
-@item
-Oracle-mässiges @code{CONNECT BY PRIOR ...}, um hierarchische Strukturen zu
-durchsuchen.
-
-
-@item
-@code{mysqladmin copy datenbank neue_datenbank}. -- Erfordert, dass
-@code{mysqld} der COPY-Befehl hinzugefügt wird.
-@item
-Prozessliste sollte die Anzahl von Anfragen pro Thread zeigen.
-@item
-
-
-@code{SHOW HOSTS} zur Informationsausgaben über den Hostnamen-Cache.
-@item
-
-
-
-@item
-Format von @code{DATETIME} ändern, um Bruchteile von Sekunden zu speichern.
-@item
-Alle fehlenden ANSI92- und ODBC 3.0-Typen hinzufügen.
-@item
-Für berechnete Spalten Tabellennamen von leerer Zeichenkette zu @code{NULL}
-ändern.
-@item
-'Item_copy_string' nicht auf numerische Werte anwenden, um
-Zahl->Zeichenkette->Zahl-Umwandlung zu vermeiden, im Falle von:
-@code{SELECT COUNT(*)*(id+0) FROM tabelle GROUP BY id}
-@item
-Benutzung der neuen GNU-regexp-Bibliothek anstelle der aktuellen
-ermöglichen (die GNU-Bibliothek sollte viel schneller sein als die alte).
-@item
-@code{ALTER TABLE} sollte nicht mehr Clients abbrechen, die @code{INSERT
-DELAYED} ausführen.
-@item
-So überarbeiten, dass, wenn Spalten, auf die in einer @code{UPDATE}-Klausel
-verwiesen wird, die alten Werte enthalten, bevor das Update begonnen wird.
-@item
-@code{myisamchk}, @code{REPAIR} und @code{OPTIMIZE TABLE} sollten in der
-Lage sein, mit Fällen umzugehen, wo die Daten und / oder Indexdateien
-symbolische Links sind.
-@item
-Simulation von @code{pread()}/@code{pwrite()} auf Windows einarbeiten, um
-konkurrierende Inserts zu ermöglichen.
-@item
-Ein Logdatei-Analyzer, aus dem Informationen herausgefiltert (geparst)
-werden können, welche Tabellen am häufigsten angesprochen werden, wie oft
-Verknüpfungen (Joins) mit mehreren Tabellen ausgeführt werden usw. Es
-sollte Benutzern helfen, Bereiche oder Dinge im Tabellenentwurf zu
-erkennen, die optimiert werden können, um sehr viel effizientere Anfragen
-auszuführen.
-@item
-Add @code{SUM(DISTINCT)}
-@item
-@code{ANY()}-,@code{EVERY()}- und @code{SOME()}-Gruppierungsfunktionen
-hinzufügen. In ANSI-SQL funktionieren diese auf boolsche Spalten, aber wir
-können sie so erweitern, dass sie mit beliebigen Spalten / Ausdrücken
-funktionieren, indem wir folgendes anwenden: wert == 0 -> FALSE und
-wert <> 0 -> TRUE.
-@item
-So überarbeiten, dass @code{MAX(column)} vom selben Typ ist wie der
-Spaltentyp.
-@example
-create tabelle t1 (a DATE);
-insert into t1 values (now());
-create tabelle t2 select max(a) von t1;
-show columns from t2;
-@end example
-@item
-Eine nette Syntax für ein Statement entwickeln, dass auf eine Zeile ein
-@code{UPDATE} ausführt, wenn sie existiert, und eine neue Zeile einfügt
-(@code{INSERT}), wenn sie nicht existiert (so wie @code{REPLACE} bei
-@code{INSERT} / @code{DELETE} funktioniert).
-@end itemize
-
-
-@node TODO irgendwann, TODO ungeplant, TODO zukünftig, TODO
-@subsection Dinge die irgendwann gemacht werden müssen
-
-@itemize @bullet
-@item
-Funktion implementieren: @code{get_changed_tables(timeout,table1,table2,...)}
-@item
-Lesen durch Tabellen so ändern, das memmap benutzt wird, falls möglich.
-Momentan benutzen nur komprimierte Tabellen memmap.
-@item
-Ein neues Zugriffsrecht @strong{'Show_priv'} für @code{SHOW}-Befehle
-hinzufügen.
-@item
-Den automatischen Zeitstempel-Code netter machen. Zeitstempel zum
-Update-Log hinzufügen mit @code{SET TIMESTAMP=#;}
-@item
-An manchen Stellen read/write mutex benutzen, um mehr Geschwindigkeit zu
-erhalten.
-@item
-Volle Unterstützung von Fremdschlüsseln. Wahrscheinlich wird man zuerst
-einmal eine prozedurale Sprache implementieren wollen.
-@item
-Einfache Sichten (Views; zunächst auf eine Tabelle, später auf jeden
-beliebigen Ausdruck).
-@item
-Automatisches Schliessen einiger Tabellen, wenn eine Tabelle, eine
-temporäre Tabelle oder eine temporäre Datei einen Fehler 23 bekommt
-(nicht genug offene Dateien).
-@item
-Wenn ein Feld=# gefunden wird, alle Vorkommen von Feld auf # setzen.
-Momentan wird das nur in einigen einfachen Fällen gemacht.
-@item
-Alle konstanten Ausdrücke mit berechneten Ausdrücken austauschen, falls
-möglich.
-@item
-schlüssel = ausdruck optimieren. Momentan wird nur schlüssel = feld oder
-schlüssel = konstante optimiert.
-@item
-Einige der Copy-Funktionen verbinden, um netter Code zu erhalten.
-@item
-@file{sql_yacc.yy} in einen Inline-Parser umändern, um die Grösse zu
-reduzieren und bessere Fehlermeldungen zu erhalten (5 Tage).
-@item
-Den Parser so ändern, dass er nur eine Regel pro unterschiedlicher Anzahl
-von Argumenten in Funktionen benutzt.
-@item
-Die Benutzung von vollen Berechnungsnamen (full calculation names) im
-ORDER-Teil (order part). (Für ACCESS97)
-@item
-@code{UNION}, @code{MINUS}, @code{INTERSECT} und @code{FULL OUTER JOIN}.
-(Momentan wird nur @code{LEFT OUTER JOIN} unterstützt.)
-@item
-@code{UNIQUE} bei Feldern zulassen, die @code{NULL} sein können.
-@item
-@code{SQL_OPTION MAX_SELECT_TIME=#} um einer Anfrage eine Zeitbeschränkung
-zu setzen.
-@item
-@cQuestion: Check translation!
-Make the update log to a Datenbank.
-Update soll in eine Datenbank loggen.
-@item
-Negative @code{LIMIT}-Parameter, um Daten vom Ende abrufen zu können.
-@item
-@cQuestion: Alarm? Wake up?
-Alarm around client connect/read/write Funktionen.
-@item
-Bitte beachten sie die Änderungen in @code{safe_mysqld}: Nach FSSTND (woran
-sicht Debian versucht zu halten) sollten PID-Dateien als
-@file{/var/run/<progname>.pid} angelegt werden und Log-Datei in
-@file{/var/log}. Es wäre nett, wenn man "DATADIR" in die erste Deklaration
-von "pidfile" und "log" packen könnte, damit die Unterbringung dieser
-Dateien mit einem einzigen Statement geändert werden könnte.
-@item
-Einem Client erlauben, Mitloggen anzufordern.
-@item
-Benutzung von @code{zlib()} für @code{gzip}-te Dateien in @code{LOAD DATA
-INFILE} zulassen.
-@item
-Sortieren und Gruppieren von @code{BLOB}-Spalten in Ordnung bringen
-(teilweise bereits gelöst).
-@item
-Gespeicherte Prozeduren. Wird aktuell nicht als sehr wichtig erachtet, weil
-gespeicherte Prozeduren noch nicht sehr standardisiert sind. Ein weiteres
-Problem besteht darin, dass es echte gespeicherte Prozeduren dem Optimierer
-viel schwerer machen und dass in vielen Fällen das Ergebnis langsamer sein
-wird als vorher. Auf der anderen Seite werden wir versuchen, eine einfache
-(atomische) Update-Sprache hinzuzufügen, die benutzt werden kann, um
-Schleifen und ähnliches im MySQL-Server zu schreiben.
-@item
-So ändern, dass Semaphore benutzt werden, wenn Threads gezählt werden. Man
-sollte zuerst eine Semaphor-Bibliothek zu MIT-pThreads implementieren.
-@item
-Keinen neuen @code{AUTO_INCREMENT}-Wert zuweisen, wenn eine Spalte auf 0
-gesetzt wird. Statt dessen @code{NULL} setzen.
-@item
-Volle Unterstützung von Verknüpfungen (@code{JOIN}) mit Klammern.
-@item
-Als Alternative für einen Thread pro Verbindung einen Pool von Threads
-verwalten, der die Anfragen handhabt.
-@item
-Einem gestatten, mehr als eine Sperre (Lock) mit @code{GET_LOCK} zu
-erhalten. Wenn man das tut, muss man die möglichen Deadlocks handhaben, die
-diese Änderung einführen wird.
-@end itemize
-
-Zeitangaben stehen für den Umfang der Arbeit, nicht für echte Zeit.
-
-
-@node TODO ungeplant, , TODO irgendwann, TODO
-@subsection Ein paar Dinge, für deren Umsetzung wir keine Pläne haben
-
-@itemize @bullet
-@item
-Nichts; auf lange Sicht planen wir, voll ANSI-92- / ANSI-99-kompatibel zu
-sein.
-@end itemize
-
-
-@node Installation, Tutorial, Einführung, Top
+@node Installing, Tutorial, Deutsch, Top
+@c German node Installation
@chapter Installation von MySQL
@cindex Installation, Überblick
-@menu
-* Schnelle Standard-Installation:: Schnelle Standard-Installation von MySQL
-* Allgemeine Installationsthemen:: Allgemeine Installationsthemen
-* Installation der Quelldistribution:: Installation der Quelldistribution
-* Nach der Installation:: Einrichtung und Tests nach der Installation
-* Upgrade:: MySQL aktualisieren oder die Aktualisierung rückgängig machen (Upgrade / Downgrade)
-* Welches Betriebssystem:: Betriebssystemspezifische Anmerkungen
-@end menu
Dieses Kapitel beschreibt, woher man MySQL bezieht und wie man MySQL
installiert:
@@ -6718,13 +5754,15 @@ installiert:
@itemize @bullet
@item
Eine Liste der Site, von denen Sie MySQL beziehen können, finden Sie unter
-@ref{Wie man MySQL erhält, , Wie man MySQL erhält}.
+@ref\{Getting MySQL, , Wie man MySQL erhält}.
@item
-Um festzustellen, welche Plattformen unterstützt werden, siehe @ref{Welches
-Betriebssystem}. Beachten Sie bitte, dass nicht alle unterstützten Systeme gleich gut
+@c German FIX unsplit @ref
+Um festzustellen, welche Plattformen unterstützt werden, siehe
+@ref\{Which OS}. Beachten Sie bitte, dass nicht alle
+unterstützten Systeme gleich gut
sind, um MySQL laufen zu lassen. Auf einigen läuft es sehr viel robuster
-und effizienter als auf anderen - siehe @ref{Welches Betriebssystem} für
+und effizienter als auf anderen - siehe @ref\{Which OS} für
Details.
@item
@@ -6733,33 +5771,46 @@ Quellcode-Distributionen erhältlich. Wir stellen auch öffentlichen Zugriff
auf unseren aktuellen Quellcode-Baum für diejenigen zur Verfügung, die die
aktuellsten Entwicklungen sehen und uns helfen wollen, neuen Code zu
testen. Um festzustellen, welche Version und welche Art von Distribution Sie
-benutzen sollten, siehe @ref{Welche Version}. Im Zweifelsfall benutzen Sie
+benutzen sollten, siehe @ref\{Which version}. Im Zweifelsfall benutzen Sie
die Binärdistribution.
@item
Installationsanleitungen für Binär- und Quelldistributionen sind
-beschrieben in @ref{MySQL-Binärdistributionen} und @ref{Installation der Quelldistribution}. Jede
+beschrieben in @ref\{MySQL binaries} und @ref\{Installing source}. Jede
Anleitung enthält einen Abschnitt über System-spezifische Probleme, denen
Sie begegnen können.
@item
Prozeduren, die nach der Installation durchgeführt werden sollen / müssen,
-finden Sie unter @ref{Nach der Installation}. Diese Prozeduren gelten, egal ob
+finden Sie unter @ref\{Post-installation}. Diese Prozeduren gelten, egal ob
Sie MySQL von einer Binär- oder einer Quellcode-Distribution installieren.
@end itemize
-@node Schnelle Standard-Installation, Allgemeine Installationsthemen, Installation, Installation
+@menu
+* Quick Standard Installation::
+* General Installation Issues::
+* Installing source::
+* Post-installation::
+* Upgrade::
+* Operating System Specific Notes::
+* Perl support::
+@end menu
+
+@node Quick Standard Installation, General Installation Issues, Installing, Installing
+@c German node Schnelle Standard-Installation
@section Schnelle Standard-Installation von MySQL
@c This node name ist special
+
+
@menu
-* Linux-RPM:: MySQL auf Linux installieren
-* Windows-Installation:: MySQL auf Windows installieren
+* Linux-RPM::
+* Windows installation::
@end menu
-
-@node Linux-RPM, Windows-Installation, Schnelle Standard-Installation, Schnelle Standard-Installation
+@node Linux-RPM, Windows installation, Quick Standard Installation, Quick Standard Installation
+@c German node Linux-RPM
@subsection MySQL auf Linux installieren
@cindex RPM-Datei
@@ -6831,54 +5882,106 @@ vorgenommen haben, damit Sie diese Änderungen nicht verlieren.)
Nach der Installation der RPM-Datei(en) sollte der @code{mysqld}-Daemon
laufen und Sie sollten jetzt in der Lage sein, mit der Benutzung von MySQL
-zu beginnen. @xref{Nach der Installation}.
+zu beginnen. @xref\{Post-installation}.
Wenn etwas schief geht, finden Sie weitere Informationen im Kapitel über
-die Binär-Installationen. @xref{MySQL-Binärdistributionen}.
+die Binär-Installationen. @xref\{MySQL binaries}.
+@node Windows installation, , Linux-RPM, Quick Standard Installation
+@c German node Windows-Installation
+@subsection Installation von MySQL unter Windows
-@node Windows-Installation, , Linux-RPM, Schnelle Standard-Installation
-@subsection MySQL auf Windows installieren
+Der MySQL-Server für Windows ist in zwei Distributionstypen erhältlich:
+@enumerate
+@item
+Die Binärdistribution enthält ein Setup-Programm, das alles Benötigte
+installiert, so dass Sie den Server sofort starten können.
+@item
+Die Quelldistribution enthält den gesamten Code und
+Unterstützungsdateien, um die ausführbaren Dateien unter Benutzung des
+VC++-6.0-Kompilers zu bauen.
+@xref\{Windows source build}.
+@end enumerate
+
+Im Allgemeinen sollten Sie die Binärdistribution benutzen.
+
+Sie benötigen folgendes:
+@itemize @bullet
+@item
+Ein Windows-32-Bit-Betriebssystem der Familien Windows 9x, ME, NT oder
+Windows 2000. Die NT-Familie gestattet, den MySQL-Server als
+Systemdienst laufen zu lassen. @xref\{NT start}.
+
+Wenn Sie Tabellen benutzen, die größer als 4 GB sind, sollten Sie MySQL
+auf NTFS oder einem neueren Dateisystem installieren. Vergessen Sie bei
+der Erzeugung der Tabellen nicht, @code{MAX_ROWS} und
+@code{AVG_ROW_LENGTH} zu benutzen. @xref{CREATE TABLE}.
+@item
+TCP/IP-Protokollunterstützung.
+@item
+Die MySQL-Binär- oder Quelldistribution für Windows kann von
+@uref{http://www.mysql.com/downloads/} herunter geladen werden.
+
+Hinweis: Die Distributionsdateien werden in einem komprimierten Format
+zur Verfügung gestellt. Wir empfehlen die Benutzung eines FTP-Clients,
+der in der Lage ist, abgebrochene FTP-Downloads wieder aufzunehmen
+(resume).
+@item
+Ein @code{ZIP}-Programm, um die Distributionsdatei zu entpacken.
+@item
+Genug Platz auf der Festplatte, um die Datenbanken entsprechend Ihren
+Anforderungen zu entpacken, zu installieren und zu erzeugen.
+@item
+Wenn Sie planen, sich über @code{ODBC} mit dem MySQL-Server zu
+verbinden, benötigen Sie zusätzlich den @code{MyODBC}-Treiber.
+@xref{ODBC}.
+@end itemize
-Die folgenden Anweisungen betreffen die vorkompilierten
-Binärdistributionen. Wenn Sie eine Quellcode-Distribution herunter laden,
-müssen Sie diese selbst kompilieren und installieren.
-Wenn Sie keine MySQL-Distribution haben, müssen Sie zunächst eine von
-@uref{http://www.mysql.com/downloads/mysql-3.23.html} herunter laden.
-Wenn Sie vorhaben, sich von einem anderen Programm aus mit MySQL zu
-verbinden, werden Sie wahrscheinlich auch den @strong{MyODBC}-Treiber
-benötigen. Diesen finden Sie auf der @strong{MyODBC}-Download-Seite
-(@uref{http://www.mysql.com/downloads/api-myodbc.html}).
+@node Windows binary installation, , Windows installation, Windows installation
+@c German node Windows-Binärinstallation
+Installation, Windows-Installation
+@subsubsection Binärdateien installieren
+
+@enumerate
+@item
+Wenn Sie auf einem NT- oder Windows-2000-Server arbeiten, melden Sie
+sich als Benutzer mit Administrationsrechten an.
+@item
+Wenn Sie ein Upgrade einer früheren MySQL-Installation durchführen,
+müssen Sie den Server anhalten. Wenn Sie den Server als Systemdienst
+laufen lassen, geben Sie ein:
+
+@example
+C:\> NET STOP MySQL
+@end example
+
+Ansonsten geben Sie folgendes ein:
-Um die Distribution zu installieren, entpacken Sie sie in ein leeres
-Verzeichnis und führen Sie dann das @code{Setup.exe}-Programm aus.
+@example
+C:\mysql\bin> mysqladmin -u root shutdown
+@end example
-Per Vorgabe wird MySQL-Windows in @file{C:\mysql} installiert. Wenn Sie
-MySQL anderswo installieren wollen, installieren Sie es zuerst in
-@file{C:\mysql} und verschieben Sie dann die Installation, wohin Sie sie
-haben möchten. Wenn Sie MySQL tatsächlich verschieben, müssen Sie angeben,
-wo alles liegt, indem Sie die @code{--basedir}-Option benutzen, wenn Sie
-den Server starten. Wenn Sie die Installatin zum Beispiel nach
-@file{D:\Programme\mysql} verschoben haben, müssen Sie @code{mysqld} wie
-folgt starten:
+@item
+Auf NT-/Windows-2000-Maschinen müssen Sie auch den Systemdienst
+entfernen, wenn Sie die ausführbare Datei des Servers (z. B. -max or -nt) austauschen wollen:
@example
-C:\> D:\Programme\mysql\bin\mysqld --basedir D:\Programme\mysql
+C:\mysql\bin> mysqld-max-nt --remove
@end example
-Benutzen Sie @code{mysqld --help}, um alle Optionen anzuzeigen, die
-@code{mysqld} versteht!
+@item
+Entpacken Sie die Distributionsdatei in ein temporäres Verzeichnis.
+@item
+Starten Sie @file{setup.exe}, um den Installationsprozess zu beginnen.
+Wenn Sie in ein anderes Verzeichnis als das vorgabemäßige
+(@file{c:\mysql}) installieren wollen, legen Sie mit der Schaltfläche
+@code{Durchsuchen} das gewünschte Verzeichnis fest.
+@item
+Beenden Sie den Installationsprozess.
+@end enumerate
-Bei allen neueren MySQL-Versionen können Sie auch eine
-@file{C:\my.cnf}-Datei anlegen, die jegliche Vorgabewerte für den
-MySQL-Server enthält. Kopieren Sie die Date @file{\mysql\my-xxxxx.cnf} nach
-@file{C:\my.cnf} und bearbeiten Sie diese, um sie Ihrer Konfiguration
-anzupassen. Beachten Sie, dass Sie alle Pfadangaben mit @samp{/} anstelle
-von @samp{\} angeben sollten. Wenn Sie dennoch @samp{\} benutzen, müssen
-Sie es doppelt festlegen, denn @samp{\} ist das Fluchtzeichen (Escape
-Character) in MySQL. @xref{Optionsdateien}.
Seit MySQL 3.23.38 enthält die Windows-Distribution sowohl die normalen als
auch die @strong{MySQL-Max}-Binärdateien. Der wichtigste Vorteil der
@@ -6888,10 +5991,10 @@ etwas schneller ist und weniger Ressourcen belegt.
Hier ist eine Liste der unterschiedlichen MySQL-Server, die Sie benutzen
können:
@multitable @columnfractions .25 .75
-@item @code{mysqld} @tab Kompiliert mit komplettem Debugging und automatischer Überprüfung der Speicherzuordnung (memory allocation), symbolischen Links, BDB- und InnoDB-Tabellen.
+@item @code{mysqld} @tab Kompiliert mit komplettem Debugging und automatischer Überprüfung der Speicherzuordnung (memory allocation), symbolischen Links, InnoDB- und BDB-Tabellen.
@item @code{mysqld-opt} @tab Optimierte Binärdistribution ohne Unterstützung von Transaktionstabellen.
@item @code{mysqld-nt} @tab Optimierte Binärdatei für NT mit Unterstützung von Named Pipes. Man kann diese Version auf Windows 98 laufen lassen, aber in diesem Fall werden keine Named Pipes angelegt und man muss TCP/IP installiert haben.
-@item @code{mysqld-max} @tab Optimierte Binärdistribution mit Unterstützung symbolischer Links, BDB und InnoDB-Tabellen.
+@item @code{mysqld-max} @tab Optimierte Binärdistribution mit Unterstützung symbolischer Links, InnoDB und BDB-Tabellen.
@item @code{mysqld-max-nt} @tab Wie @code{mysqld-max}, aber mit Unterstützung von Named Pipes kompiliert.
@end multitable
@@ -6899,10 +6002,11 @@ Alle genannten Binärdistributionen sind für den Pentium Pro Prozessor
optimiert, sollten aber auf jedem Intel-Prozessor >= 386 laufen.
ACHTUNG: Wenn Sie InnoDB-Tabellen benutzen wollen, müssen Sie bestimmte
-Start-Optionen in Ihrer @file{my.ini}-Datei festlegen! @xref{Mit InnoDB anfangen}.
+Start-Optionen in Ihrer @file{my.ini}-Datei festlegen! @xref\{InnoDB start}.
-@node Allgemeine Installationsthemen, Installation vom Entwicklungs-Source-Tree, Schnelle Standard-Installation, Installation
+@node General Installation Issues, Installing source, Quick Standard Installation, Installing
+@c German node Allgemeine Installationsthemen
@section Allgemeine Installationsthemen
@c @node Methods of Installation, , ,
@@ -6910,17 +6014,19 @@ Start-Optionen in Ihrer @file{my.ini}-Datei festlegen! @xref{Mit InnoDB anfangen
@c FIX: this needs to be written?
+
+
@menu
-* Wie man MySQL erhält:: Wie man MySQL erhält
-* Welches Betriebssystem:: Betriebssysteme, die von MySQL unterstützt werden
-* Welche Version:: Welche MySQL-Version Sie benutzen sollten
-* Installationslayouts:: Installationslayouts
-* Viele Versionen:: Wann und wie Updates veröffentlicht werden
-* MySQL-Binärdistributionen:: MySQL-Binärdistributionen, die von MySQL AB kompiliert wurden
+* Getting MySQL::
+* Which OS::
+* Which version::
+* Installation layouts::
+* Many versions::
+* MySQL binaries::
@end menu
-
-@node Wie man MySQL erhält, Welches Betriebssystem, Allgemeine Installationsthemen, Allgemeine Installationsthemen
+@node Getting MySQL, Which OS, General Installation Issues, General Installation Issues
+@c German node Wie man MySQL erhält
@subsection Wie man MySQL erhält
@cindex Download
@@ -6948,7 +6054,7 @@ Wenn Sie Probleme beim Download von unserer Hauptseite aus haben, probieren
Sie eine der unten stehenden Mirror-Sites.
Geben Sie bitte @email{webmaster@@mysql.com} Bescheid, wenn Sie auf
-schlechte oder veraltete Mirror-Sites stossen.
+schlechte oder veraltete Mirror-Sites stoßen.
@c START_OF_MIRROR_LISTING
@@ -7307,36 +6413,36 @@ schlechte oder veraltete Mirror-Sites stossen.
@c @item
@c Not ok 20000919; Non-existent (Matt)
@c simon@oyster.co.uk (Simon Gornall)
-@c @image{Flags/great-britain} Grossbritannien [Oyster/Grossbritannien] @
+@c @image{Flags/great-britain} Großbritannien [Oyster/Großbritannien] @
@c @uref{ftp://ftp.oyster.co.uk/pub/mysql, FTP}
@item
@c EMAIL: keet@mordor.plig.net (Christiaan Keet)
-@image{Flags/great-britain} Grossbritannien [PLiG/Grossbritannien] @
+@image{Flags/great-britain} Großbritannien [PLiG/Großbritannien] @
@uref{http://ftp.plig.org/pub/mysql/, WWW}
@uref{ftp://ftp.plig.org/pub/mysql/, FTP}
@c @item
@c Not ok 20010808; Non-existent (Matt)
@c EMAIL: sean@telekon.co.uk (Sean Gibson)
-@c @image{Flags/great-britain} Grossbritannien [Telekon Internet/Grossbritannien] @
+@c @image{Flags/great-britain} Großbritannien [Telekon Internet/Großbritannien] @
@c @uref{ftp://ftp.telekon.co.uk/pub/mysql/, FTP}
@c @item
@c lance@uklinux.net (Lance)
-@c @image{Flags/great-britain} Grossbritannien [uklinux.net] @
+@c @image{Flags/great-britain} Großbritannien [uklinux.net] @
@c @uref{http://mirror.uklinux.net/mysql/, WWW}
@c @uref{ftp://mirror.uklinux.net/pub/mysql/, FTP}
@c @item
@c unknown
-@c @image{Flags/great-britain} Grossbritannien [MicroMuse] @
+@c @image{Flags/great-britain} Großbritannien [MicroMuse] @
@c @uref{ftp://ftp.micromuse.co.uk/pub/packages/unix/Datenbanken/mysql/, FTP}
@c @item
@c Not ok 20000919; Old site (Matt)
@c lmjm@icparc.ic.ac.uk (Lee McLoughlin)
-@c @image{Flags/great-britain} Grossbritannien [SunSITE] @
+@c @image{Flags/great-britain} Großbritannien [SunSITE] @
@c @uref{http://sunsite.org.uk/packages/mysql/, WWW}
@c @uref{ftp://sunsite.org.uk/packages/mysql/, FTP}
@@ -7778,7 +6884,8 @@ schlechte oder veraltete Mirror-Sites stossen.
@c END_OF_MIRROR_LISTING
-@node Welches Betriebssystem, Welche Version, Wie man MySQL erhält, Allgemeine Installationsthemen
+@node Which OS, Which version, Getting MySQL, General Installation Issues
+@c German node Welches Betriebssystem
@subsection Betriebssysteme, die von MySQL unterstützt werden
@cindex Betriebssysteme, unterstützte
@@ -7845,7 +6952,7 @@ Tru64 Unix
Windows 95, Windows 98, NT und Windows 2000. @xref{Windows}.
@end itemize
-Beachten Sie, dass nicht alle Plattformen gleichermassen gut geeignet sind,
+Beachten Sie, dass nicht alle Plattformen gleichermaßen gut geeignet sind,
um MySQL laufen zu lassen. Wie gut eine bestimmte Plattform für hohe Last
und geschäftskritische Anwendungen geeignet ist, hängt von folgenden
Faktoren ab:
@@ -7876,8 +6983,8 @@ Prozessoren MySQL in der Tat langsamer.
Allgemeine Stabilität und Performance des Dateisystems.
@item
-Fähigkeit des Dateisystems, überhaupt mit grossen Dateien umgehend zu
-können, und zwar effizient, wenn Ihre Tabellen gross sind.
+Fähigkeit des Dateisystems, überhaupt mit großen Dateien umgehend zu
+können, und zwar effizient, wenn Ihre Tabellen Groß sind.
@item
Unser Grad von Erfahrung, hier bei MySQL AB, mit der Plattform. Wenn wir
@@ -7892,7 +6999,7 @@ haben.
@item
Anzahl von Benutzern, die MySQL auf dieser Plattform erfolgreich mit
-ähnlichen Konfigurationen haben laufen lassen. Wenn diese Zahl gross ist,
+ähnlichen Konfigurationen haben laufen lassen. Wenn diese Zahl Groß ist,
ist die Wahrscheinlichkeit viel geringer, plattformspezifische
Überraschungen zu erleben.
@end itemize
@@ -7900,7 +7007,7 @@ ist die Wahrscheinlichkeit viel geringer, plattformspezifische
Nach den genannten Kriterien sind die besten Plattformen für MySQL bislang
x86 mit SuSE Linux 7.1, 2.4 Kernel und ReiserFS (oder jede ähnliche
Linux-Distribution) und Sparc mit Solaris 2.7 oder 2.8. FreeBSD kommt als
-drittes, aber wir hoffen wirklich, dass es zur Spitze aufschliesst, sobald
+drittes, aber wir hoffen wirklich, dass es zur Spitze aufschließt, sobald
erst einmal die Thread-Bibliothek verbessert ist. Wir hoffen auch, dass wir
alle anderen Plattformen, auf denen MySQL kompiliert werden kann und
korrekt läuft, die aber nicht ganz denselben Grad an Stabilität und
@@ -7927,7 +7034,8 @@ bei der Entscheidung zu helfen, auf welcher Plattform Sie MySQL benutzen
sollten.
-@node Welche Version, Installationslayouts, Welches Betriebssystem, Allgemeine Installationsthemen
+@node Which version, Installation layouts, Which OS, General Installation Issues
+@c German node Welche Version
@subsection Welche MySQL-Version Sie benutzen sollten
@cindex MySQL-Binärdistribution
@@ -7961,7 +7069,7 @@ beseitigen und kleine, relativ sichere Änderungen zu machen.
Als nächstes müssen Sie entscheiden, ob Sie eine Quelldistribution oder
eine Binärdistribution nehmen wollen. In den meisten Fällen ist es ratsam,
eine Binärdistribution zu nehmen, wenn eine für Ihre Plattform existiert,
-weil sich diese im Allgemeinen leichter installieren lässt als eine
+weil sich diese im Allgemeinen leichter installieren läßt als eine
Quelldistribution.
In folgenden Fällen fahren Sie mit einer Quellinstallation wahrscheinlich
@@ -8005,7 +7113,7 @@ nutzen wollen:
@end itemize
@item
-Die vorgabemässige Binärdistribution wird normalerweise mit Unterstützung
+Die vorgabemäßige Binärdistribution wird normalerweise mit Unterstützung
für alle Zeichensätze kompiliert und sollte auf einer Vielzahl von
Prozessoren derselben Prozessorfamilie laufen.
@@ -8029,7 +7137,7 @@ Tests und Beispiele als Binärdistributionen.
@cindex naming, releases of MySQL
@cindex Releases, Benennungsschema
-The MySQL Benennungsschema benutzt Release-Nummern, die aus drei Zahlen und
+Das MySQL Benennungsschema benutzt Release-Nummern, die aus drei Zahlen und
einem Suffix bestehen. Ein Release-Name wie @code{mysql-3.21.17-beta} zum
Beispiel wird wie folgt interpretiert:
@@ -8058,12 +7166,12 @@ Mögliche Suffixe sind:
@itemize @minus
@item
-@code{alpha} zeigt an, dass das Release grössere Abschnitte von neuem Code
+@code{alpha} zeigt an, dass das Release größere Abschnitte von neuem Code
enthält, der noch nicht zu 100% getestet wurde. Bekannte Bugs
(üblicherweise gibt es keine) sind im News-Abschnitt dokumentiert.
-@xref{Neuigkeiten}. In den meisten Alpha-Releases gibt es neue Befehle und
+@xref\{News}. In den meisten Alpha-Releases gibt es neue Befehle und
Erweiterungen. Bei einem Alpha-Release können durch aktive
-Weiterentwicklung grössere Code-Änderungen vorkommen, aber alles wird
+Weiterentwicklung größere Code-Änderungen vorkommen, aber alles wird
getestet, bevor ein Release veröffentlicht wird. Es sollte in keinem
MySQL-Release bekannte Bugs geben.
@@ -8106,14 +7214,14 @@ Diese ist Teil unseres Produktionssystems für einen Kunden. Sie besitzt
viele Tabellen mit Hunderten Megabytes an Daten.
@item Mit der MySQL-Benchmark-Suite
-Diese lässt eine Reihe gebräuchlicher Anfragen laufen. Das ist zusätzlich
+Diese läßt eine Reihe gebräuchlicher Anfragen laufen. Das ist zusätzlich
ein Test darauf, ob die letzten Optimierungen den Code tatsächlich
schneller gemacht haben.
-@xref{MySQL-Benchmarks}.
+@xref\{MySQL Benchmarks}.
@item Mit dem @code{crash-me}-Test
Dieser Test versucht festzustellen, welche Features die Datenbank
-unterstützt und was ihre Fähigkeiten und Beschränkungen sind. @xref{MySQL-Benchmarks}.
+unterstützt und was ihre Fähigkeiten und Beschränkungen sind. @xref\{MySQL Benchmarks}.
@end table
Ein weiterer Test besteht darin, dass wir die neueste MySQL-Version in
@@ -8121,16 +7229,17 @@ unserer internen Entwicklungsumgebung einsetzen, mindestens auf einer
Maschine. Wir arbeiten hierbei mit mehr als 100 Gigabytes an Daten.
-@node Installationslayouts, Viele Versionen, Welche Version, Allgemeine Installationsthemen
+@node Installation layouts, Many versions, Which version, General Installation Issues
+@c German node Installationslayouts
@subsection Installationslayouts
@cindex Installationslayouts
@cindex Layout der Installation
@cindex Verzeichnisstruktur, Vorgabe
-@cindex Vorgabemässiger Installationsort
+@cindex Vorgabemäßiger Installationsort
-Dieser Abschnitt beschreibt das vorgabemässige Layout der Verzeichnisse,
-die durch die Installation von Binär- und Quelldistributionen angegelegt
+Dieser Abschnitt beschreibt das vorgabemäßige Layout der Verzeichnisse,
+die durch die Installation von Binär- und Quelldistributionen angelegt
werden.
Eine Binärdistribution wird installiert, indem sie an die
@@ -8151,7 +7260,7 @@ an dieser Stelle:
@end multitable
Eine Quelldistribution wird installiert, nachdem Sie sie konfiguriert und
-kompiliert haben. Vorgabemässig werden Dateien unter @file{/usr/local}
+kompiliert haben. Vorgabemäßig werden Dateien unter @file{/usr/local}
installiert, und zwar in den folgenden Unterverzeichnissen:
@multitable @columnfractions .3 .7
@@ -8191,7 +7300,8 @@ Quelldistribution erzeugen, indem Sie das Skript
@file{Skripts/make_binary_Distribution} ausführen.
-@node Viele Versionen, MySQL-Binärdistributionen, Installationslayouts, Allgemeine Installationsthemen
+@node Many versions, MySQL binaries, Installation layouts, General Installation Issues
+@c German node Viele Versionen
@subsection Wann und wie Updates veröffentlicht werden
@cindex Releases, Updates
@@ -8210,15 +7320,15 @@ bieten.
Niemand muss einen neuen Release herunter laden. Im News-Abschnitt steht
stets, ob das neue Release etwas beinhaltet, was Sie wirklich brauchen.
-@xref{Neuigkeiten}.
+@xref\{News}.
Wenn wir MySQL aktualisieren, fahren wir folgende Politik:
@itemize @bullet
@item
Bei kleineren Updates wird die letzte Zahl (von rechts) in der
-Versionsnummer herauf gezählt (Minor Release). Wenn es grössere neue
-Features gibt oder kleinere Imkompatibilitäten mit vorherigen Versionen,
+Versionsnummer herauf gezählt (Minor Release). Wenn es größere neue
+Features gibt oder kleinere Inkompatibilitäten mit vorherigen Versionen,
wird die zweite Zahl der Versionsnummer herauf gezählt (Major Release).
Wenn sich das Dateiformat ändert, wird die erste Zahl herauf gezählt.
@@ -8236,7 +7346,7 @@ mit Bug-Fixes heraus gegeben.
Funktionierende Releases sollten etwa alle 1 bis 8 Wochen erscheinen.
@item
-Binärdistributionen für einige Plattformen werden von uns für grössere
+Binärdistributionen für einige Plattformen werden von uns für größere
Releases (Major) heraus gegeben. Andere Leute stellen vielleicht auch
Binärdistributionen für andere Systeme her, aber nicht so häufig.
@@ -8247,7 +7357,7 @@ ausfindig gemacht und behoben haben.
@item
Für nicht kritische, aber störende Bugs machen wir Patches verfügbar, wenn
sie uns zugesandt werden. Ansonsten kombinieren wir mehrere davon in einem
-grösseren Patch.
+größeren Patch.
@item
Wenn durch unglückliche Umstände ein Release einen schweren Fehler enthält,
@@ -8265,7 +7375,8 @@ add small things that ``almost surely will not affect anything that's
already working.''
-@node MySQL-Binärdistributionen, , Viele Versionen, Allgemeine Installationsthemen
+@node MySQL binaries, , Many versions, General Installation Issues
+@c German node MySQL-Binärdistributionen
@subsection MySQL-Binärdistributionen, die von MySQL AB kompiliert wurden
@cindex Binärdistributionen
@@ -8326,7 +7437,8 @@ oben genannten Kompilierzeilen @code{--with-debug} oder
@code{-fomit-frame-pointer}-Optionen entfernen.
-@node Installation der Quelldistribution, Installation vom Entwicklungs-Source-Tree, Nach der Installation, Allgemeine Installationsthemen, Installation
+@node Installing source, Post-installation, General Installation Issues, Installing
+@c German node Installation der Quelldistribution
@section Installation der Quelldistribution
@cindex Installation, Quelldistribution
@@ -8343,7 +7455,7 @@ und zu installieren:
@itemize @bullet
@item
-GNU @code{gunzip}, um die Distribution zu entzippen.
+GNU @code{gunzip}, um die Distribution zu entpacken.
@item
Ein vernünftiges @code{tar}, um die Distribution zu entpacken. Von GNU
@@ -8397,19 +7509,22 @@ sammelt @code{mysqlbug} Systeminformationen, die anderen helfen werden, Ihr
Problem zu lösen. Wenn Sie @code{mysqlbug} nicht benutzen, verringern Sie
die Möglichkeit, eine Lösung Ihres Problems zu bekommen! @code{mysqlbug}
finden Sie im @file{scripts}-Verzeichnis, nachdem Sie die Distribution
-entpackt haben. @xref{Bug-Berichte}.
+entpackt haben. @xref\{Bug reports}.
+
+
@menu
-* Schnellinstallation:: Schnellinstallation, Überblick
-* Patches anwenden:: Wie man Patches anwendet
-* Optionen konfigurieren:: Typische @code{configure}-Optionen
-* Installation vom Entwicklungs-Source-Tree:: Installation vom Entwicklungs-Source-Tree
-* Kompilierungsprobleme:: Probleme beim Kompilieren?
-* MIT-pThreads:: Anmerkungen zu MIT-pThreads
+* Quick install::
+* Applying patches::
+* configure options::
+* Installing source tree::
+* Compilation problems::
+* MIT-pthreads::
+* Windows source build::
@end menu
-
-@node Schnellinstallation, Patches anwenden, Installation vom Entwicklungs-Source-Tree, Installation vom Entwicklungs-Source-Tree
+@node Quick install, Applying patches, Installing source, Installing source
+@c German node Schnellinstallation
@subsection Schnellinstallation, Überblick
Die grundlegenden Befehle, die Sie ausführen müssen, um eine
@@ -8433,8 +7548,8 @@ shell> /usr/local/mysql/bin/safe_mysqld --user=mysql &
Wenn Sie Unterstützung für InnoDB-Tabellen haben wollen, sollten Sie die
Datei @code{/etc/my.cnf} editieren und die {#}-Zeichen vor den Parametern
-entfernen, der mit @code{innodb_...} beginnen. @xref{Optionsdateien}.
-@xref{Mit InnoDB anfangen}.
+entfernen, der mit @code{innodb_...} beginnen. @xref\{Option files}.
+@xref\{InnoDB start}.
Wenn Sie mit einem Quell-RPM anfangen, gehen Sie wie folgt vor:
@@ -8451,7 +7566,7 @@ und @code{Msql-Mysql-modules}-Perl-Module installieren.
Eine detailliertere Beschreibung folgt.
Um eine Quelldistribution zu installieren, führen Sie die unten stehenden
-Schritte aus und gehen dann weiter zu @ref{Nach der Installation}, um die
+Schritte aus und gehen dann weiter zu @ref\{Post-installation}, um die
Schritte nach der Installation und ein paar Tests durchzuführen.
@enumerate
@@ -8461,7 +7576,7 @@ und wechseln Sie dort hinein.
@item
Holen Sie sich eine Distributionsdatei von einer der Sites, die unter
-@ref{Wie man MySQL erhält, , Wie man MySQL erhält} aufgelistet sind.
+@ref\{Getting MySQL, , Wie man MySQL erhält} aufgelistet sind.
@item
Wenn Sie Berkeley-DB-Tabellen mit MySQL verwenden wollen, müssen Sie sich
@@ -8484,7 +7599,7 @@ shell> useradd -g mysql mysql
Diese Befehle fügen den Benutzer @code{mysql} und die Gruppe @code{mysql}
hinzu. Die Syntax für @code{useradd} und @code{groupadd} kann sich auf
unterschiedlichen Unix-Systemen geringfügig unterscheiden. Die Befehle
-können @code{adduser} und @code{addgroup} heissen. Wenn Sie wollen, können
+können @code{adduser} und @code{addgroup} heißen. Wenn Sie wollen, können
Sie Benutzer und Gruppe auch anders nennen als @code{mysql}.
@item
@@ -8516,7 +7631,7 @@ shell> make
Wenn Sie @code{configure} laufen lassen, können Sie dabei einige Optionen
angeben. Geben Sie @code{./configure --help} ein, um eine Liste von
-Optionen zu erhalten. @ref{Optionen konfigurieren, , @code{configure}-Optionen}
+Optionen zu erhalten. @ref\{configure options, , @code{configure}-Optionen}
erörtert einige der nützlicheren Optionen.
Wenn @code{configure} fehlschlägt und Sie sich wegen Hilfe an
@@ -8525,10 +7640,10 @@ Wenn @code{configure} fehlschlägt und Sie sich wegen Hilfe an
Problembehebung hilfreich sein könnten. Fügen Sie auch die letzten Zeilen
der Ausgabe von @code{configure} hinzu, wenn @code{configure} abbricht.
Schicken Sie den Bug-Bericht ein, indem Sie das @code{mysqlbug}-Skript
-benutzen. @xref{Bug-Berichte}.
+benutzen. @xref\{Bug reports}.
Wenn das Kompilieren fehlschlägt, sehen Sie unter
-@ref{Kompilierungsprobleme} nach, was bei einer Reihe geläufiger Probleme
+@ref\{Compilation problems} nach, was bei einer Reihe geläufiger Probleme
hilft.
@item
@@ -8577,7 +7692,7 @@ Wenn Sie wollen, dass MySQL automatisch startet, wenn Sie Ihre Maschine
hoch fahren, kopieren Sie @code{support-files/mysql.server} an die Stelle,
wo Ihr System seine Startdateien hat. Weitere Informationen finden Sie im
@code{support-files/mysql.server}-Skript selbst sowie unter
-@ref{Automatischer Start}.
+@ref\{Automatic start}.
@end enumerate
Nachdem alles installiert wurde, sollten Sie Ihre Distribution
@@ -8590,12 +7705,13 @@ shell> /usr/local/mysql/bin/safe_mysqld --user=mysql &
Wenn dieser Befehl sofort mit @code{mysqld daemon ended} fehlschlägt,
finden Sie einige Informationen dazu in der Datei
@file{mysql-Daten-Verzeichnis/'hostname'.err}. Der wahrscheinliche Grund ist
-der, dass bereits ein anderer @code{mysqld}-Server läuft. @xref{Mehrere Server}.
+der, dass bereits ein anderer @code{mysqld}-Server läuft. @xref\{Multiple servers}.
-@xref{Nach der Installation}.
+@xref\{Post-installation}.
-@node Patches anwenden, Optionen konfigurieren, Schnellinstallation, Installation vom Entwicklungs-Source-Tree
+@node Applying patches, configure options, Quick install, Installing source
+@c German node Patches anwenden
@subsection Wie man Patches anwendet
@cindex Patches, anwenden
@@ -8641,7 +7757,8 @@ neue Programmversion installiert wird, wenn diese eine Version ersetzt, die
momentan ausgeführt wird.
-@node Optionen konfigurieren, Installation vom Entwicklungs-Source-Tree, Patches anwenden, Installation vom Entwicklungs-Source-Tree
+@node configure options, Installing source tree, Applying patches, Installing source
+@c German node Optionen konfigurieren
@subsection Typische @code{configure}-Optionen
@findex without-server-Option
@@ -8651,12 +7768,12 @@ momentan ausgeführt wird.
@cindex Log-Dateien
@cindex Dateien, Log
-Das @code{configure}-Skript gibt Ihnen in grossem Umfang Kontrolle über die
+Das @code{configure}-Skript gibt Ihnen in großem Umfang Kontrolle über die
Konfigurationsmöglichkeiten Ihrer MySQL-Distribution. Typischerweise machen
Sie das unter Verwendung der Optionen auf der
@code{configure}-Kommandozeile. Sie können ausserdem @code{configure}
beeinflussen, indem Sie bestimmte Umgebungsvariablen benutzen.
-@xref{Umgebungsvariablen}. Um eine Liste der Optionen zu erhalten, die
+@xref\{Environment variables}. Um eine Liste der Optionen zu erhalten, die
@code{configure} unterstützt, geben Sie folgendes ein:
@example
@@ -8700,8 +7817,8 @@ shell> ./configure --prefix=/usr/local \
Der erste Befehl ändert das Installationspräfix, so dass alles unter
@file{/usr/local/mysql} statt unter @file{/usr/local} installiert wird. Der
-zweite Befehl bewahrt das vorgabemässige Installationspräfix, aber
-überschreibt die vorgabemässige Stelle für Datenbankverzeichnisse
+zweite Befehl bewahrt das vorgabemäßige Installationspräfix, aber
+überschreibt die vorgabemäßige Stelle für Datenbankverzeichnisse
(normalerweise @file{/usr/local/var}) und ändert sie zu
@code{/usr/local/mysql/data}.
@@ -8711,7 +7828,7 @@ zweite Befehl bewahrt das vorgabemässige Installationspräfix, aber
@item
Wenn Sie Unix benutzen und wollen, dass der MySQL-Socket an anderer Stelle
-liegt als vorgabemässig (normalerweise im Verzeichnis @file{/tmp} oder
+liegt als vorgabemäßig (normalerweise im Verzeichnis @file{/tmp} oder
@file{/var/run}), benutzen Sie ein @code{configure}-Kommando wie folgendes:
@example
@@ -8721,7 +7838,7 @@ shell> ./configure --with-unix-socket-path=/usr/local/mysql/tmp/mysql.sock
Beachten Sie, dass die angegebene Datei mit einem absoluten Pfadnamen
angegeben werden muss! Sie können den Speicherort von @file{mysql.sock}
auch später noch ändern, indem Sie die MySQL Optionsdateien benutzen.
-@xref{Probleme mit mysql.sock}.
+@xref\{Problems with mysql\.sock}.
@cindex Kompilieren, statisch
@cindex Statisch, Kompilieren
@@ -8791,9 +7908,9 @@ CFLAGS="-O3 -mpentiumpro" CXX=gcc CXXFLAGS="-O3 -mpentiumpro -felide-constructor
Die Binärdistributionen, die wir auf der MySQL-Website unter
@uref{http://www.mysql.com} zur Verfügung stellen, sind allesamt mit voller
Optimierung kompiliert und sollten daher für die meisten Benutzer perfekt
-sein. @xref{MySQL-Binärdistributionen}. Einiges können Sie noch fein justieren, um
+sein. @xref\{MySQL binaries}. Einiges können Sie noch fein justieren, um
noch schnellere Binärdistributionen zu erhalten, aber das ist nur etwas für
-fortgeschrittene Benutzer. @xref{Kompilier- und Link-Optionen}.
+fortgeschrittene Benutzer. @xref\{Compile and link options}.
Wenn der Build fehlschlägt und Fehler produziert, die aussagen, dass Ihr
Kompiler oder Linker nicht in der Lage ist, die gemeinsam benutzte
@@ -8835,7 +7952,7 @@ shell> ./configure --with-charset=CHARSET
@code{hungarian}, @code{koi8_ru}, @code{koi8_ukr}, @code{latin1},
@code{latin2}, @code{sjis}, @code{swe7}, @code{tis620}, @code{ujis},
@code{usa7} oder @code{win1251ukr}.
-@xref{Zeichensätze}.
+@xref\{Character sets}.
Wenn Sie Zeichen zwischen Server und Client konvertieren wollen, sollten
Sie sich den @code{SET OPTION CHARACTER SET}-Befehl ansehen.
@@ -8854,8 +7971,8 @@ Zeichensätze definieren, die in den Server einkompiliert werden sollen.
Hierbei ist @code{LIST} entweder eine Liste eines Zeichensatzes, die durch
Leerzeichen getrennt ist, oder @code{complex}, um alle Zeichen
-einzuschliessen, die nicht dynamisch geladen werden können, oder
-@code{all}, um alle Zeichensätze in die Binärdateien einzuschliessen.
+einzuschließen, die nicht dynamisch geladen werden können, oder
+@code{all}, um alle Zeichensätze in die Binärdateien einzuschließen.
@item
Um MySQL mit Debug-Code zu konfigurieren, benutzen Sie die
@@ -8865,22 +7982,23 @@ shell> ./configure --with-debug
@end example
Das bewirkt, dass eine sichere Speicherzuweisung (Memory Allocator)
eingeschlossen wird, die einige Fehler finden kann und die Ausgaben
-liefert, was passiert ist. @xref{Server debuggen}.
+liefert, was passiert ist. @xref\{Debugging server}.
@item
Wenn Ihre Client-Programme Threads benutzen, müssen Sie zusätzlich eine
Thread-sichere Version der MySQL-Client-Bibliothek mit der
@code{--enable-Thread-safe-client}-configure-Option kompilieren. Hierdurch
wird eine @code{libmysqlclient_r}-Bibliothek angelegt, mit der Sie Ihre
-threaded Applikationen linken können. @xref{Threaded Clients}.
+threaded Applikationen linken können. @xref\{Threaded clients}.
@item
Optionen, die zu bestimmten Systemen gehören, finden sich im
-systemspezifischen Abschnitt dieses Handbuchs. @xref{Welches Betriebssystem, , Betriebssystemspezifische Anmerkungen}.
+systemspezifischen Abschnitt dieses Handbuchs. @xref\{Which OS, , Betriebssystemspezifische Anmerkungen}.
@end itemize
-@node Installation vom Entwicklungs-Source-Tree, Kompilierungsprobleme, Optionen konfigurieren
+@node Installing source tree, Compilation problems, configure options, Installing source
+@c German node Installation vom Entwicklungs-Source-Tree
@subsection Installation vom Entwicklungs-Source-Tree
@cindex Entwicklungs-Source-Tree
@@ -8958,7 +8076,7 @@ die neuen Features zum Absturz zu bringen. Fangen Sie an, indem Sie
@item
Wenn Sie bis zum @code{make}-Stadium gekommen sind und die Distribution
-sich nicht kompilieren lässt, berichten Sie das bitte an
+sich nicht kompilieren läßt, berichten Sie das bitte an
@email{bugs@@lists.mysql.com}. Wenn Sie die letzten Versionen der
erforderlichen GNU-Werkzeuge installiert haben und sie abstürzen, wenn Sie
versuchen, Ihre Konfigurationsdateien zu verarbeiten, berichten Sie das
@@ -8970,7 +8088,7 @@ finden kann.
@item
Nach der erstmaligen @code{bk clone}-Operation, um den Source-Tree zu
-erhalten, sollten Sie in regelmässigen Abständen @code{bk pull} laufen
+erhalten, sollten Sie in regelmäßigen Abständen @code{bk pull} laufen
lassen, um Aktualisierungen zu erhalten.
@item
@@ -8991,7 +8109,8 @@ helptool} zugreifen können.
@end enumerate
-@node Kompilierungsprobleme, MIT-pThreads, Installation vom Entwicklungs-Source-Tree, Installation vom Entwicklungs-Source-Tree
+@node Compilation problems, MIT-pthreads, Installing source tree, Installing source
+@c German node Kompilierungsprobleme
@subsection Probleme beim Kompilieren?
@cindex Kompilieren, Probleme
@@ -9002,7 +8121,7 @@ helptool} zugreifen können.
Alle MySQL-Programme lassen sich sauber ohne Warnungen auf Solaris mit
@code{gcc} kompilieren. Auf anderen Systemen können Warnungen wegen
-Unterschieden in System-Include-Dateien auftreten. Siehe @ref{MIT-pThreads}
+Unterschieden in System-Include-Dateien auftreten. Siehe @ref\{MIT-pthreads}
wegen Warnungen, die auftreten können, wenn Sie MIT-pThreads verwenden.
Wegen anderer Probleme sehen Sie bitte in der unten stehenden Liste nach.
@@ -9077,12 +8196,12 @@ hinzugefügt wird, wenn Sie @code{gcc} benutzen, bzw. @code{-O0}, wenn Sie
etwas anderes benutzen. Sie sollten die @code{--with-low-memory}-Option
selbst dann benutzen, wenn Sie glauben, so viel Arbeitsspeicher und
Swap-Platz zu haben, dass Ihnen diese unmöglich ausgehen können. Das
-Problem wurde selbst auf Systemen mit grosszügiger Hardware-Ausstattung
+Problem wurde selbst auf Systemen mit großzügiger Hardware-Ausstattung
beobachtet, und die @code{--with-low-memory}-Option behebt es
üblicherweise.
@item
-Vorgabemässig sucht @code{configure} @code{c++} als Kompiler-Namen aus und
+Vorgabemäßig sucht @code{configure} @code{c++} als Kompiler-Namen aus und
GNU @code{c++} linkt mit @code{-lg++}. Wenn Sie @code{gcc} benutzen, kann
dieses Verhalten Probleme bei Konfigurationen wie dieser verursachen:
@@ -9094,7 +8213,7 @@ c++ compiler cannot create executables.
@tindex CXX-Umgebungsvariable
@tindex Umgebungsvariable, CXX
-Eventuell stossen Sie beim Kompilieren auch auf Probleme, die mit
+Eventuell stoßen Sie beim Kompilieren auch auf Probleme, die mit
@code{g++}, @code{libg++} oder @code{libstdc++} zu tun haben.
Eine Ursache dieser Probleme liegt darin, dass Sie kein @code{g++} haben
@@ -9112,7 +8231,7 @@ shell> CXX="gcc -O3" ./configure
@end example
Das funktioniert, weil @code{gcc} C++-Quellen genau so gut wie @code{g++}
-kompiliert, aber vorgabemässig weder @code{libg++} noch @code{libstdc++}
+kompiliert, aber vorgabemäßig weder @code{libg++} noch @code{libstdc++}
linkt.
Eine andere Möglichkeit, das Problem zu beheben, besteht natürlich darin,
@@ -9139,7 +8258,7 @@ pThread.h: No such file or directory
Von Solaris und FreeBSD ist bekannt, dass sie problembehaftete
@code{make}-Programme haben.
-GNU @code{make} Version 3.75 funktioniert bekanntermassen.
+GNU @code{make} Version 3.75 funktioniert bekanntermaßen.
@tindex CC-Umgebungsvariable
@tindex Umgebungsvariable, CC
@@ -9164,7 +8283,7 @@ shell> CXXFLAGS=-O3
shell> export CC CFLAGS CXX CXXFLAGS
@end example
-Siehe @ref{MySQL-Binärdistributionen}: Eine Liste von Flag-Definitionen, die sich
+Siehe @ref\{MySQL binaries}: Eine Liste von Flag-Definitionen, die sich
auf verschiedenen Systemen als nützlich erwiesen haben.
@item
@@ -9175,7 +8294,7 @@ Wenn Sie einen Fehler wie den folgenden erhalten, müssen Sie Ihren
client/libmysql.c:273: parse error before `__attribute__'
@end example
-@code{gcc} 2.8.1 funktioniert bekanntermassen, aber wir empfehlen statt
+@code{gcc} 2.8.1 funktioniert bekanntermaßen, aber wir empfehlen statt
dessen @code{gcc} 2.95.2 oder @code{egcs} 1.0.3a.
@item
@@ -9222,10 +8341,11 @@ Sie müssen statt dessen wahrscheinlich @code{bison} (die GNU-Version von
Wenn Sie @code{mysqld} oder einen MySQL-Client debuggen wollen, lassen Sie
@code{configure} mit der @code{--with-debug}-Option laufen. Kompilieren Sie
danach neu und linken Sie Ihre Clients mit der neuen Client-Bibliothek.
-@xref{Clients debuggen}.
+@xref\{Debugging client}.
@end itemize
-@node MIT-pThreads, , Kompilierungsprobleme, Installation vom Entwicklungs-Source-Tree
+@node MIT-pthreads, Windows source build, Compilation problems, Installing source
+@c German node MIT-pThreads
@subsection Anmerkungen zu MIT-pThreads
@cindex MIT-pThreads
@@ -9240,7 +8360,7 @@ dessen LinuxThreads installieren sollten!
Wenn Ihr System keine native Thread-Unterstützung bietet, müssen Sie MySQL
unter Verwendung des MIT-pThread-Pakets bauen. Das betrifft ältere
FreeBSD-Systeme, SunOS 4.x, Solaris 2.4 und früher und einige andere.
-@xref{Welches Betriebssystem}.
+@xref\{Which OS}.
@itemize @bullet
@item
@@ -9261,14 +8381,14 @@ oder nicht, finden nur in dem Teil des Konfigurationsprozesses statt, der
mit dem Server-Code zu tun hat. Wenn Sie die Distribution mit
@code{--without-server} konfigurieren, um nicht den Client-Code zu bauen,
wissen die Clients nicht, ob sie MIT-pThreads benutzen sollen oder nicht
-und werden vorgabemässig Unix-Socket-Verbindungen benutzen. Weil
-Unix-Sockets unter MIT-pThreads nicht laufen, heisst das, dass Sie
+und werden vorgabemäßig Unix-Socket-Verbindungen benutzen. Weil
+Unix-Sockets unter MIT-pThreads nicht laufen, heißt das, dass Sie
@code{-h} oder @code{--host} benutzen müssen, wenn Sie Client-Programme
laufen lassen.
@item
Wenn MySQL so kompiliert wird, dass es MIT-pThreads benutzt, wird
-System-Sperren (System Locking) vorgabemässig aus Performance-Gründen
+System-Sperren (System Locking) vorgabemäßig aus Performance-Gründen
ausgeschaltet. Mit der @code{--use-locking}-Option können Sie dem Server
mitteilen, System-Sperren zu benutzen.
@@ -9289,7 +8409,7 @@ haben, herunter zu fahren und sofort danach einen Neustart durchgeführt
haben.
@item
-Bei MIT-pThreads lässt sich der @code{sleep()}-Systemaufruf nicht mit
+Bei MIT-pThreads läßt sich der @code{sleep()}-Systemaufruf nicht mit
@code{SIGINT} (break) unterbrechen. Das merken Sie nur, wenn Sie
@code{mysqladmin --sleep} ausführen. Sie müssen dann warten, bis der
@code{sleep()}-Aufruf beendet wurde, bevor die Unterbrechungsanforderung
@@ -9324,19 +8444,94 @@ Laufen zu bringen. (Das wird zwar nicht benötigt, mag aber für einige
interessant sein.)
@end itemize
+@menu
+* Windows-Umgebung vorbereiten::
+@end menu
+
+@node Windows-Umgebung vorbereiten, , MIT-pthreads, MIT-pthreads
+@c German node <no English equivalent>
+@subsubsection Vorbereitung der Windows-Umgebung
+
+@node Windows source build, , MIT-pthreads, Installing source
+@c German node Windows-Quelldistribution
+@subsection Windows-Quelldistribution
+
+Sie benötigen folgendes:
+
+@itemize @bullet
+@item
+VC++-6.0-Kompiler (aktualisiert mit Service-Pack 4 oder 5 und dem
+Präprozessor-Paket). Das Präprozessor-Paket wird für den Makro-Assembler
+benötigt. Weitere Details finden Sie unter:
+@uref{http://msdn.microsoft.com/vstudio/sp/vs6sp5/faq.asp}.
+@item
+Die MySQL-Quelldistribution für Windows, die von
+@uref{http://www.mysql.com/downloads/} herunter geladen werden kann.
+@end itemize
+
+MySQL bauen
+
+@enumerate
+@item
+Erzeugen Sie ein Arbeitsverzeichnis (z. B. workdir).
+@item
+Entpacken Sie die Quelldistribution in dieses Verzeichnis.
+@item
+Starten Sie den VC++-6.0-Kompiler.
+@item
+Wählen Sie im @code{File}-Menü @code{Open Workspace}.
+@item
+Öffnen Sie den @file{mysql.dsw}-Workspace, den Sie im Arbeitsverzeichnis
+finden.
+@item
+Wählen Sie im @code{Build}-Menü das @code{Set Active Configuration}-
+Menü.
+@item
+Wählen Sie @code{mysqld - Win32 Debug} und klicken Sie auf OK.
+@item
+Drücken Sie @code{F7}, um mit dem Bauen des Debug-Servers, der
+Bibliotheken und einiger Client-Applikationen zu beginnen.
+@item
+Wenn das Kompilieren beendet ist, kopieren Sie die Bibliotheken und die
+ausführbaren Dateien in ein separates Verzeichnis.
+@item
+Kompilieren Sie die Release-Versionen, die Sie haben wollen, auf
+dieselbe Art.
+@item
+Erzeugen Sie das Verzeichnis für die MySQL-Dateien, z. B.
+@file{c:\mysql}.
+@item
+Kopieren Sie aus dem Arbeitsverzeichnis folgende Verzeichnisse in das
+c:\mysql-Verzeichnis:
+
+@itemize @bullet
+@item Data
+@item Docs
+@item Share
+@end itemize
+
+@item
+Erzeugen Sie das Verzeichnis @file{c:\mysql\bin} und kopieren Sie alle
+Server und Clients, die Sie vorher kompiliert haben, hinein.
+@item
+Wenn Sie wollen, können Sie auch das @file{lib}-Verzeichnis erzeugen und
+die vorher kompilierten Bibliotheken hinein kopieren.
+@item
+Führen Sie mit Visual Studio ein Clean durch.
+@end enumerate
+
+Konfigurieren und starten Sie den Server auf dieselbe Weise wie bei der
+Windows-Binärdistribution. @xref{Windows-Umgebung vorbereiten}.
-@node Nach der Installation, Upgrade, Installation vom Entwicklungs-Source-Tree, Installation
+
+@node Post-installation, Upgrade, Installing source, Installing
+@c German node Nach der Installation
@section Einstellungen und Tests nach der Installation
@cindex Nach der Installation, Einstellungen und Tests
@cindex Testen, nach der Installation
@cindex Setup, nach der Installation
-@menu
-* mysql_install_db:: Probleme bei der Ausführung von @code{mysql_install_db}
-* Server starten:: Probleme beim Start des MySQL-Servers
-* Automatischer Start:: MySQL automatisch starten und anhalten
-@end menu
Wenn Sie MySQL erst einmal installiert haben (aus einer Binär- oder einer
Quelldistribution), müssen Sie die Berechtigungstabellen (Grant Tables)
@@ -9377,7 +8572,7 @@ deshalb sollte es unter allen Umständen sicher sein. Wenn Sie die
@code{test}-Datenbank nicht haben wollen, können Sie sie mit
@code{mysqladmin -u root drop test} entfernen.
-Am einfachsten lässt sich das Durchtesten vom obersten Verzeichnis der
+Am einfachsten läßt sich das Durchtesten vom obersten Verzeichnis der
MySQL-Distribution durchführen. Bei einer Binärdistribution ist das Ihr
Installationsverzeichnis (üblicherweise etwas wie @file{/usr/local/mysql}).
Bei einer Quelldistribution ist es das Hauptverzeichnis Ihres
@@ -9392,7 +8587,7 @@ Binärdistribution ist das @file{bin}-Verzeichnis innerhalb der
Distribution. Bei einer Quelldistribution ist @code{BINDIR} wahrscheinlich
@file{/usr/local/bin}, es sei denn, Sie haben ein anderes
Installationsverzeichnis als @file{/usr/local} angegeben, als Sie
-@code{configure} laufen liessen. @code{EXECDIR} ist der Speicherort, in dem
+@code{configure} laufen ließen. @code{EXECDIR} ist der Speicherort, in dem
der @code{mysqld}-Server installiert ist. Bei einer Binärdistribution ist
das derselbe wie @code{BINDIR}. Bei einer Quelldistribution ist
@code{EXECDIR} wahrscheinlich @file{/usr/local/libexec}.
@@ -9422,7 +8617,7 @@ Zweifel immer @code{mysql_install_db} laufen lassen.)
@code{mysql_install_db} erzeugt sechs Tabellen (@code{user}, @code{db},
@code{host}, @code{tables_priv}, @code{columns_priv} und @code{func}) in
der @code{mysql}-Datenbank. Eine Beschreibung der anfänglichen
-Zugriffsrechte wird in @ref{Berechtigungen} festgelegt. Kurz gesagt
+Zugriffsrechte wird in @ref\{Privileges} festgelegt. Kurz gesagt
erlauben diese Zugriffsrechte dem MySQL-Benutzer @code{root}, alles zu tun,
und jedem, Datenbanken anzulegen oder zu benutzen, deren Name @code{'test'}
ist oder mit @code{'test_'} beginnt.
@@ -9445,7 +8640,7 @@ Wenn Sie wollen, können Sie jedoch den MySQL-Server als unprivilegierter
(non-@code{root})-Benutzer laufen lassen, vorausgesetzt, dieser Benutzer
darf Dateien im Datenbank-Verzeichnis lesen und schreiben. Anweisungen, wie
Sie MySQL als unprivilegierter Benutzer laufen lassen können, finden Sie in
-@ref{Berechtigungsänderungen, , Den MySQL-Benutzer ändern}.
+@ref\{Privilege changes, , Den MySQL-Benutzer ändern}.
Wenn Sie Probleme mit @code{mysql_install_db} bekommen, sehen Sie bitte
unter @ref{mysql_install_db, , @code{mysql_install_db}} nach.
@@ -9458,7 +8653,7 @@ mitgeliefert wird:
@item
Sie können @code{mysql_install_db} editieren, bevor Sie es laufen lassen,
um die anfänglichen Zugriffsrechte zu ändern, die in die Rechtetabellen
-installiert werden. Das ist nützlich, wenn Sie MySQL auf einer grossen Zahl
+installiert werden. Das ist nützlich, wenn Sie MySQL auf einer großen Zahl
von Maschinen mit denselben Zugriffsrechten installieren wollen. In diesem
Fall müssen Sie wahrscheinlich nur ein paar zusätzliche
@code{INSERT}-Statements für die @code{mysql.user}- und
@@ -9480,7 +8675,7 @@ Tabellen bereits angelegt haben, Sie nun aber neu anlegen wollen, weil Sie
@end itemize
Zu weiteren Informationen über diese Alternativen siehe
-@ref{Berechtigungssystem}.
+@ref\{Privilege system}.
@item
Starten Sie den MySQL-Server wie folgt:
@@ -9491,7 +8686,7 @@ shell> bin/safe_mysqld &
@end example
Wenn Sie Probleme haben, den Server zu starten, sehen Sie unter
-@ref{Server starten} nach.
+@ref\{Starting server} nach.
@item
Benutzen Sie @code{mysqladmin}, um sicherzustellen, dass der Server läuft.
@@ -9551,7 +8746,7 @@ shell> BINDIR/safe_mysqld --log &
Wenn @code{safe_mysqld} fehlschlägt, versuchen Sie, es vom
MySQL-Installationsverzeichnis aus zu starten (falls Sie noch nicht dort
-sind). Wenn das nicht funktioniert, sehen Sie unter see @ref{Server starten} nach.
+sind). Wenn das nicht funktioniert, sehen Sie unter see @ref\{Starting server} nach.
@item
Lassen Sie ein paar einfache Tests ablaufen um sicherzustellen, dass der
@@ -9619,7 +8814,14 @@ Die Ergebnisse stehen dann in der @file{./tests/auto_increment.res}-Datei.
@end enumerate
-@node mysql_install_db, Server starten, Nach der Installation, Nach der Installation
+@menu
+* mysql_install_db::
+* Starting server::
+* Automatic start::
+@end menu
+
+@node mysql_install_db, Starting server, Post-installation, Post-installation
+@c German node mysql_install_db
@subsection Probleme mit @code{mysql_install_db}
@cindex @code{mysql_install_db}-Skript
@cindex Skripte, @code{mysql_install_db}
@@ -9658,7 +8860,7 @@ Diese sollte sich im Verzeichnis @file{XXXXXX} befinden, das in der
Fehlermeldung ausgegeben wird, und sollte anzeigen, warum @code{mysqld}
nicht startete. Wenn Sie nicht verstehen, was passiert ist, schicken Sie
einen Bug-Bericht inklusive Log. Benutzen Sie hierfür @code{mysqlbug}!
-@xref{Bug-Berichte}.
+@xref\{Bug reports}.
@item Es läuft bereits ein @code{mysqld}-Daemon.
@@ -9678,7 +8880,7 @@ laufen zu lassen, dass der zweite Server versucht, denselben Socket und
Port wie der alte zu benutzen. In diesem Fall erhalten Sie als
Fehlermeldung: @code{Can't start server: Bind on TCP/IP port: Address
already in use} oder @code{Can't start server : Bind on unix socket...}.
-@xref{Mehrere Server}.
+@xref\{Multiple servers}.
@item Sie haben keinen Schreibzugriff auf @file{/tmp}.
@cindex Schreibzugriff, tmp
@@ -9686,7 +8888,7 @@ already in use} oder @code{Can't start server : Bind on unix socket...}.
@cindex Dateien, @code{tmp}
Wenn Sie keinen Schreibzugriff haben, um eine Socket-Datei am
-vorgabemässigen Ort anzulegen (in @file{/tmp}) oder keine Berechtigung, um
+vorgabemäßigen Ort anzulegen (in @file{/tmp}) oder keine Berechtigung, um
temporäre Dateien in @file{/tmp} anzulegen, erhalten Sie einen Fehler, wenn
Sie @code{mysql_install_db} laufen lassen oder starten oder wenn Sie
@code{mysqld} benutzen.
@@ -9704,11 +8906,11 @@ shell> MYSQL_UNIX_PORT=/irgendein_temporaeres_verzeichnis/mysqld.sock
shell> export TMPDIR MYSQL_UNIX_PORT
@end example
-@xref{Probleme mit mysql.sock}.
+@xref\{Problems with mysql\.sock}.
@file{irgendein_temporaeres_verzeichnis} sollte der Pfad zu einem
Verzeichnis sein, für das Sie Schreibberechtigung haben.
-@xref{Umgebungsvariablen}.
+@xref\{Environment variables}.
Danach sollten Sie in der Lage sein, @code{mysql_install_db} laufen zu
lassen und den Server zu starten, und zwar mit folgenden Befehlen:
@@ -9744,15 +8946,16 @@ lassen, um dem Server mitzuteilen, die Berechtigungstabellen neu zu laden.
@end table
-@node Server starten, Automatischer Start, mysql_install_db, Nach der Installation
+@node Starting server, Automatic start, mysql_install_db, Post-installation
+@c German node Server starten
@subsection Probleme mit dem Start des MySQL-Servers
@cindex Server, Startprobleme
@cindex Probleme, beim Starten des Servers
-Wenn Sie Tabellen einsetzen werden, die Transaktionen unterstützen (BDB,
-InnoDB), sollten Sie zuerst eine my.cnf-Datei anlegen und die
+Wenn Sie Tabellen einsetzen werden, die Transaktionen unterstützen (InnoDB,
+BDB), sollten Sie zuerst eine my.cnf-Datei anlegen und die
Startoptionen für die Tabellentypen setzen, die Sie einsetzen wollen.
-@xref{Tabellentypen}.
+@xref\{Table types}.
Im allgemeinen starten Sie den @code{mysqld}-Server auf eine der drei
folgenden Weisen:
@@ -9761,11 +8964,11 @@ folgenden Weisen:
@item
Indem Sie @code{mysql.server} aufrufen. Dieses Skript wird hauptsächlich
beim Systemstart und -herunterfahren eingesetzt. Es wird ausführlicher in
-@ref{Automatischer Start} beschrieben.
+@ref\{Automatic start} beschrieben.
@item
Indem Sie @code{safe_mysqld} aufrufen. Dieses Skript versucht die korrekten
-Optionen für @code{mysqld} festzustellen und lässt den Server dann mit
+Optionen für @code{mysqld} festzustellen und läßt den Server dann mit
diesen Optionen laufen. @xref{safe_mysqld, ,@code{safe_mysqld}}.
@item
@@ -9803,7 +9006,7 @@ Daten-Verzeichnis irgendwo sonst als an der Stelle zu finden, wo es auf
Ihrem System tatsächlich ist, funktioniert er nicht richtig. Wenn Sie
Probleme mit fehlerhaften Pfaden haben, können Sie durch den Aufruf von
@code{mysqld} mit der @code{--help}-Option herausfinden, welche Optionen
-@code{mysqld} erlaubt und was die vorgabemässigen Pfad-Einstellung sind.
+@code{mysqld} erlaubt und was die vorgabemäßigen Pfad-Einstellung sind.
Sie können die Vorgaben überschreiben, indem Sie die korrekten Pfadnamen
als Kommandozeilen-Argumente für @code{mysqld} festlegen. (Diese Optionen
können auch bei @code{safe_mysqld} benutzt werden.)
@@ -9876,7 +9079,7 @@ Sie den Befehl @code{telnet ihr-host-name tcp-ip-port-nummer} eingeben und
mehrere Male @code{EINGABE} drücken. Wenn Sie keine Fehlermeldung wie
@code{telnet: Unable to connect to remote host: Connection refused}
erhalten, benutzt irgend etwas anderes den TCP/IP-Port, den @code{mysqld}
-versucht zu benutzen. Siehe @ref{mysql_install_db} und @ref{Mehrere Server}.
+versucht zu benutzen. Siehe @ref{mysql_install_db} und @ref\{Multiple servers}.
Wenn @code{mysqld} gerade läuft, können Sie herausfinden, welche
Pfadeinstellungen er benutzt, indem Sie folgenden Befehl ausführen:
@@ -9904,16 +9107,17 @@ Thread-Bibliothek besitzen, und für die MySQL so konfiguriert werden muss,
dass es MIT-pThreads benutzt.
Wenn Sie es nicht schaffen, @code{mysqld} zu starten, können Sie versuchen,
-eine Trace-Datei anzulegen, um das Problem zu finden. @xref{Trace-Dateien}.
+eine Trace-Datei anzulegen, um das Problem zu finden. @xref\{Making trace files}.
Wenn Sie InnoDB-Tabellen benutzen, sehen Sie bei den InnoDB-spezifischen
-Startoptionen nach. @xref{Mit InnoDB anfangen}.
+Startoptionen nach. @xref\{InnoDB start}.
Wenn Sie BDB-(Berkeley DB)-Tabellen benutzen, sollten Sie sich mit den
-verschiedenen Startoptionenen von BDB vertraut machen. @xref{BDB starten}.
+verschiedenen Startoptionen von BDB vertraut machen. @xref\{BDB start}.
-@node Automatischer Start, , Server starten, Nach der Installation
+@node Automatic start, , Starting server, Post-installation
+@c German node Automatischer Start
@subsection MySQL automatisch starten und anhalten
@cindex Start, Server automatisch starten
@@ -9941,7 +9145,7 @@ des MySQL-Source-Trees.
Bevor @code{mysql.server} den Server startet, wechselt es in das
MySQL-Installationsverzeichnis. Dann ruft es @code{safe_mysqld} auf.
Eventuell müssen Sie @code{mysql.server} editieren, wenn Sie eine
-Binärdistribution haben, die Sie an eine nicht stardardmässige Stelle
+Binärdistribution haben, die Sie an eine nicht stardardmäßige Stelle
installiert haben. Ändern Sie es so ab, dass es in das richtige Verzeichnis
wechselt (@code{cd}), bevor es @code{safe_mysqld} startet. Wenn Sie wollen,
dass der Server unter einem bestimmten Benutzer läuft, fügen Sie eine
@@ -9995,10 +9199,11 @@ den Optionsdateien liest:
@item @code{safe_mysqld} @tab @code{mysql.server}, @code{mysqld}, und @code{server}
@end multitable
-@xref{Optionsdateien}.
+@xref\{Option files}.
-@node Upgrade, Clientseitig, Nach der Installation, Installation
+@node Upgrade, Operating System Specific Notes, Post-installation, Installing
+@c German node Upgrade
@section MySQL aktualisieren (Upgrade / Downgrade)
@cindex Upgrade
@@ -10021,7 +9226,7 @@ Wenn Sie ein Upgrade vornehmen, sollte Sie natürlich Ihre alten Datenbanken
sichern.
Wenn Sie nach einem Upgrade auf Probleme mit neu kompilierten
-Client-Programmen stossen, zum Beispiel @code{Commands out of sync} oder
+Client-Programmen stoßen, zum Beispiel @code{Commands out of sync} oder
unerwartete Speicherauszüge (Core Dumps), haben sie wahrscheinlich einen
alten Header oder eine alte Bibliotheksdatei benutzt, als Sie die Programme
kompilierten. In diesem Fall sollten Sie das Datum Ihrer
@@ -10043,17 +9248,19 @@ installieren, speziell dann, wenn Sie Symptome wie die bemerken, dass alle
Ihre @code{DBI}-Skripte mit Core-Dumps abbrechen, nachdem Sie MySQL
aktualisiert haben.
-@menu
-* Upgrading-from-3.23:: Upgrade von einer Version 3.23 auf 4.0
-* Upgrading-from-3.22:: Upgrade von einer Version 3.22 auf 3.23
-* Upgrading-from-3.21:: Upgrade von einer Version 3.21 auf 3.22
-* Upgrading-from-3.20:: Upgrade von einer Version 3.20 auf 3.21
-* Upgrading-to-arch:: Upgrade auf eine andere Architektur
-@end menu
@cindex Kompatibilität, zwischen MySQL-Versionen
@cindex Upgrade, 3.23 auf 4.0
+@menu
+* Upgrading-from-3.23::
+* Upgrading-from-3.22::
+* Upgrading-from-3.21::
+* Upgrading-from-3.20::
+* Upgrading-to-arch::
+@end menu
+
@node Upgrading-from-3.23, Upgrading-from-3.22, Upgrade, Upgrade
+@c German node Upgrading-from-3.23
@subsection Upgrade von 3.23 auf Version 4.0
Sie können Ihre alten data-Dateien ohne jede Änderung mit Version 4.0
@@ -10089,9 +9296,10 @@ benutzen, aber die Benutzung von Ganzzahlen ist viel effizienter.
Das Format von @code{SHOW OPEN TABLE} hat sich geändert.
@item
Multithreaded Clients sollten @code{mysql_thread_init()} und
-@code{mysql_thread_end()} benutzen. @xref{Threaded Clients}.
+@code{mysql_thread_end()} benutzen. @xref\{Threaded clients}.
@end itemize
@node Upgrading-from-3.22, Upgrading-from-3.21, Upgrading-from-3.23, Upgrade
+@c German node Upgrading-from-3.22
@subsection Upgrade von einer Version 3.22 auf 3.23
@cindex Kompatibilität, zwischen MySQL-Versionen
@@ -10099,7 +9307,7 @@ Multithreaded Clients sollten @code{mysql_thread_init()} und
MySQL-Version 3.23 unterstützt Tabellen des neuen @code{MyISAM}-Typs und
des alten @code{ISAM}-Typs. Sie müssen Ihre alten Tabellen nicht
-konvertieren, um sie mit Version 3.23 einsetzen zu können. Vorgabemässig
+konvertieren, um sie mit Version 3.23 einsetzen zu können. Vorgabemäßig
werden alle neuen Tabellen mit dem Typ @code{MyISAM} angelegt (es sei denn,
Sie starten @code{mysqld} mit der @code{--default-table-type=isam}-Option).
Sie können eine @code{ISAM}-Tabelle zu einer @code{MyISAM}-Tabelle mit
@@ -10130,7 +9338,7 @@ Tabelle zu optimieren. Während der Ausführung von @code{OPTIMIZE TABLE}
wird die Tabelle jetzt vor dem Zugriff anderer Threads gesperrt.
@item
-Der MySQL-Client @code{mysql} wir jetzt vorgabemässig mit der Option
+Der MySQL-Client @code{mysql} wir jetzt vorgabemäßig mit der Option
@code{--no-named-commands (-g)} gestartet. Diese Option kann mit
@code{--enable-named-commands (-G)} abgeschaltet werden. Dies kann ein paar
Inkompatibilitätsprobleme verursachen, zum Beispiel in SQL-Skripten, die
@@ -10163,7 +9371,7 @@ wenn Sie einige Zeilen aus der Tabelle löschen.
reservierte Wörter.
@item
-@code{FLOAT(X)} ist jetzt ein echter Fliesskomma-Typ und kein Wert mit
+@code{FLOAT(X)} ist jetzt ein echter Fließkomma-Typ und kein Wert mit
einer festen Anzahl von Dezimalstellen.
@item
@@ -10185,7 +9393,7 @@ kompilieren.
@item
@code{REGEXP} arbeitet jetzt bei normalen (nicht binären) Zeichenketten
-unabhängig von der Gross-/Kleinschreibung.
+unabhängig von der Groß-/Kleinschreibung.
@item
Wenn Sie Tabellen prüfen / reparieren, sollten Sie @code{CHECK TABLE} oder
@@ -10200,7 +9408,7 @@ und Version 3.23 kompatibel sind, sollten Sie nicht die @code{--opt}- oder
@item
Überprüfen Sie Ihre Aufrufe von @code{DATE_FORMAT()} und stellen Sie
sicher, dass vor jedem Formatierungszeichen ein @samp{%} steht. (Spätere
-MySQL-Versionen 3.22 liessen diese Syntax zu.)
+MySQL-Versionen 3.22 ließen diese Syntax zu.)
@item
@code{mysql_fetch_fields_direct} ist jetzt eine Funktion (es war ein Makro)
@@ -10232,6 +9440,7 @@ länger als das Längen-Argument ist.
@end itemize
@node Upgrading-from-3.21, Upgrading-from-3.20, Upgrading-from-3.22, Upgrade
+@c German node Upgrading-from-3.21
@subsection Upgrade von Version 3.21 auf Version 3.22
@cindex Kompatibilität, zwischen MySQL-Versionen
@@ -10267,6 +9476,7 @@ den alten Namen verwenden.
@node Upgrading-from-3.20, Upgrading-to-arch, Upgrading-from-3.21, Upgrade
+@c German node Upgrading-from-3.20
@subsection Upgrade von Version 3.20 auf Version 3.21
@cindex Upgrade, 3.20 auf 3.21
@@ -10325,7 +9535,7 @@ müssen, wenn Sie @code{mysqlperl} benutzen, ist, die Argumente für die
@code{connect()}-Funktion zu ändern. Die neuen Argumente sind: @code{host},
@code{database}, @code{user} und @code{password} (die @code{user}- und
@code{password}-Argumente haben die Plätze getauscht.
-@xref{Perl-DBI-Klasse, , Perl-@code{DBI}-Klasse}.
+@xref\{Perl DBI Class, , Perl-@code{DBI}-Klasse}.
Folgende Änderungen können Anfragen in alten Applikationen betreffen:
@@ -10342,13 +9552,14 @@ Es gibt einige neue reservierte Wörter. Die wichtigsten sind @code{DATE},
@node Upgrading-to-arch, , Upgrading-from-3.20, Upgrade
+@c German node Upgrading-to-arch
@subsection Upgrade auf eine andere Architektur
@cindex Upgrade, auf andere Architektur
Wenn Sie MySQL-Version 3.23 benutzen, können Sie die @code{.frm}-,
@code{.MYI}- und @code{.MYD}-Dateien zwischen verschiedenen Architekturen
-kopieren, die dasselbe Fliesskomma-Format unterstützen. (MySQL kümmert sich
+kopieren, die dasselbe Fließkomma-Format unterstützen. (MySQL kümmert sich
um eventuelle Byte-Tausch-Belange.)
Die MySQL-@code{ISAM}-Daten und Index-Dateien (@file{.ISD} und
@@ -10359,7 +9570,7 @@ Betriebssystem verlagern wollen, wollten Sie nicht einfach eine Datenbank
verschieben, indem Sie deren Dateien auf die andere Maschine kopieren.
Benutzen Sie statt dessen @code{mysqldump}.
-Vorgabemässig erzeugt @code{mysqldump} eine Datei mit SQL-Statements. Sie
+Vorgabemäßig erzeugt @code{mysqldump} eine Datei mit SQL-Statements. Sie
können diese Datei auf die andere Maschine übertragen und Sie als Eingabe
für den @code{mysql}-Client benutzen.
@@ -10409,7 +9620,7 @@ shell> gunzip < db_name.inhalte.gz | mysql db_name
@cindex @code{mysqlimport}
Sie können auch @code{mysqldump} und @code{mysqlimport} benutzen, um den
Datenbank-Transfer zu bewerkstelligen.
-Das ist bei grossen Tabellen wesentlich schneller als die Benutzung von
+Das ist bei großen Tabellen wesentlich schneller als die Benutzung von
@code{mysqldump}. In den unten dargestellten Befehlen repräsentiert
@code{DUMPDIR} den vollen Pfadnamen des Verzeichnisses, das Sie benutzen,
um die Ausgabe von @code{mysqldump} zu speichern.
@@ -10443,34 +9654,28 @@ führen Sie @code{mysqladmin flush-privileges} aus, damit der Server die
Berechtigungsinformationen neu einliest.
-@node Clientseitig, , Upgrade, Installation
+@node Operating System Specific Notes, Perl support, Upgrade, Installing
+@c German node Clientseitig
@section Betriebssystem-spezifische Anmerkungen
+
+
@menu
-* Linux:: Anmerkungen zu Linux (alle Linux-Versionen)
-* Windows:: Anmerkungen zu Windows
-* Solaris:: Anmerkungen zu Solaris
-* BSD:: Anmerkungen zu BSD
-* Mac OS X:: Anmerkungen zu Mac OS X
-* Andere Unixe:: Anmerkungen zu anderen Unixen
-* OS/2:: Anmerkungen zu OS/2
-* BeOS:: Anmerkungen zu BeOS
-* Novell Netware:: Anmerkungen zu Novell Netware
+* Linux::
+* Windows::
+* Solaris::
+* BSD Notes::
+* Mac OS X::
+* Other Unix Notes::
+* OS/2::
+* BeOS::
+* Novell Netware::
@end menu
-
-@node Linux, Windows, Clientseitig, Clientseitig
+@node Linux, Windows, Operating System Specific Notes, Operating System Specific Notes
+@c German node Linux
@subsection Linux (alle Linux-Versionen)
-@menu
-* Linux-Binärdateien:: Anmerkungen zu Binärdistributionen auf Linux
-* Linux-x86:: Anmerkungen zu Linux x86
-* Linux-SPARC:: Anmerkungen zu Linux SPARC
-* Linux-Alpha:: Anmerkungen zu Linux Alpha
-* Linux-PowerPC:: Anmerkungen zu Linux PowerPC
-* Linux-MIPS:: Anmerkungen zu Linux MIPS
-* Linux-IA64:: Anmerkungen zu Linux IA64
-@end menu
Die Anmerkungen weiter unten, die @strong{glibc} betreffen, gelten nur
dann, wenn Sie MySQL selbst bauen. Wenn Sie Linux auf einer x86-Maschine
@@ -10485,7 +9690,7 @@ Kümmern Sie sich nur dann um einen eigenen Build, wenn Sie feststellen,
dass unsere Binärdateien nicht gut genug sind. In diesem Fall wären wir für
einen Hinweis dazu dankbar, damit wir beim nächsten Mal eine bessere
Binärdatei bauen können. Für eine typische Benutzung, selbst bei einer
-grossen Zahl gleichzeitiger Verbindungen und / oder Tabellen, die grösser
+großen Zahl gleichzeitiger Verbindungen und / oder Tabellen, die größer
als 2 GB sind, sind unsere Binärdateien in den meisten Fällen die beste
Wahl.
@@ -10499,7 +9704,7 @@ MySQL auf SMP-Systemen festgestellt. Wenn Sie ein SMP-System haben,
empfehlen wir, so schnell wie möglich auf Linux 2.4 zu aktualisieren
(Upgrade)! Dadurch wird Ihr System ausserdem schneller und stabiler!
-Beachten Sie, dass @code{glibc}-Versionen vor und einschliesslich Version
+Beachten Sie, dass @code{glibc}-Versionen vor und einschließlich Version
2.1.1 einen schweren Fehler im @code{pThread_mutex_timedwait}-Handling
haben, was benutzt wird, wenn Sie @code{INSERT DELAYED} verwenden. Wir
empfehlen, vor einem Upgrade der glibc @code{INSERT DELAYED} nicht zu
@@ -10518,7 +9723,7 @@ Wenn Sie Probleme damit bekommen, dass MySQL nicht genug Dateien oder
Verbindungen öffnen kann, haben Sie möglicherweise Linux nicht so
konfiguriert, dass es genug Dateien handhaben kann.
-In Linux 2.2 fortfolgende können Sie die Anzahl der allozierten
+In Linux 2.2 und Folgenden können Sie die Anzahl der allozierten
Datei-Handler herausbekommen, wenn Sie folgendes eingeben:
@example
@@ -10552,7 +9757,7 @@ Das sollte MySQL erlauben, bis zu 8192 Verbindungen und Dateien zu
erzeugen.
Die @code{STACK_SIZE}-Konstante in LinuxThreads steuert das Spacing von
-Thread-Stacks im Adressraum. Sie muss gross genug sein, damit reichlich
+Thread-Stacks im Adressraum. Sie muss Groß genug sein, damit reichlich
Platz für den Stack jedes individuellen Threads bleibt, aber klein genug,
um den Stack irgend eines Threads davon abzuhalten, mit den globalen
@code{mysqld}-Daten zu kollidieren. Wie wir durch Experimentieren heraus
@@ -10570,13 +9775,13 @@ forcieren, indem Sie einen vernünftigen Wert für die the
Wenn Sie MySQL selbst bauen und sich nicht mit dem Patchen von LinuxThreads
herum plagen wollen, sollten Sie @code{max_connections} auf einen Wert
-nicht grösser als 500 setzen. Dieser Wert sollte sogar noch kleiner sein,
-wenn Sie einen grossen Schlüsselpuffer (Key Buffer), grosse Heap-Tabellen
+nicht größer als 500 setzen. Dieser Wert sollte sogar noch kleiner sein,
+wenn Sie einen großen Schlüsselpuffer (Key Buffer), große Heap-Tabellen
oder andere Dinge haben, die @code{mysqld} dazu bringen könnten, eine Menge
Speicher zu allozieren, oder wenn Sie einen 2.2-Kernel mit einem 2GB-Patch
fahren. Wenn Sie unsere Binärdateien oder RPM-Versionen 3.23.23 oder später
benutzen, können Sie @code{max_connections} sicher auf 1500 setzen, unter
-der Annahme, dass es keine grossen Schlüsselpuffer oder Heap-Tabellen mit
+der Annahme, dass es keine großen Schlüsselpuffer oder Heap-Tabellen mit
vielen Daten gibt. Je mehr Sie @code{STACK_SIZE} in LinuxThreads reduzieren
können, desto mehr können Sie sicher Threads erzeugen. Wir empfehlen einen
Wert zwischen 128K und 256K.
@@ -10687,14 +9892,14 @@ Thread für den LinuxThreads-Manager, einen Thread, um Verbindungen zu
handhaben und einen Thread, um Alarme und Signale zu handhaben.
Beachten Sie, dass der Linux-Kernel und die LinuxThread-Bibliothek
-vorgabemässig nur 1024 Threads haben können. Das bedeutet, dass Sie auf
+vorgabemäßig nur 1024 Threads haben können. Das bedeutet, dass Sie auf
einem ungepatchten System nur höchstens 1021 Verbindungen zu MySQL haben
können. Die Seite @uref{http://www.volano.com/linuxnotes.html} enthält
Informationen, wie man diese Beschränkung umgeht.
Wenn Sie einen toten @code{mysqld}-Daemon-Prozess mit @code{ps} sehen,
bedeutet das üblicherweise, dass Sie einen Bug in MySQL oder eine zerstörte
-Tabelle gefunden haben. @xref{Abstürze}.
+Tabelle gefunden haben. @xref\{Crashing}.
Um auf Linux einen Speicherauszug (Core Dump) zu erhalten, wenn
@code{mysqld} mit einem SIGSEGV-Signal stirbt, können Sie @code{mysqld} mit
@@ -10739,7 +9944,18 @@ Folgende @code{configure}-Zeile sollte mit @code{fcc/FCC} funktionieren:
CC=fcc CFLAGS="-O -K fast -K lib -K omitfp -Kpreex -D_GNU_SOURCE -DCONST=konstante -DNO_STRTOLL_PROTO" CXX=FCC CXXFLAGS="-O -K fast -K lib -K omitfp -K preex --no_exceptions --no_rtti -D_GNU_SOURCE -DCONST=konstante -Dalloca=__builtin_alloca -DNO_STRTOLL_PROTO '-D_EXTERN_INLINE=static __inline'" ./configure --prefix=/usr/local/mysql --enable-assembler --with-mysqld-ldflags=-all-static --disable-shared --with-low-memory
@end example
-@node Linux-Binärdateien, Linux-x86, Linux, Linux
+@menu
+* Binary notes-Linux::
+* Linux-x86::
+* Linux-SPARC::
+* Linux-Alpha::
+* Linux-PowerPC::
+* Linux-MIPS::
+* Linux-IA64::
+@end menu
+
+@node Binary notes-Linux, Linux-x86, Linux, Linux
+@c German node Linux-Binärdateien
@subsubsection Anmerkungen zur Binärdistribution (Linux)
@cindex Binärdistributionen, unter Linux
@@ -10756,10 +9972,10 @@ sollten Sie auf jeden Fall in Betracht ziehen, 2.4 zu benutzen, weil Ihnen
das erhebliche Geschwindigkeitssteigerung geben wird.
Die Binärdistribution wird mit @code{-static} gelinkt, was normalerweise
-heisst, dass Sie sich nicht um die Version der Systembibliotheken kümmern
+heißt, dass Sie sich nicht um die Version der Systembibliotheken kümmern
müssen, die Sie haben. Ausserdem brauchen Sie nicht LinuxThread
installieren. Ein Programm, das mit @code{-static} gelinkt ist, ist etwas
-grösser als ein dynamisch gelinktes Programm, und gleichzeitig etwas
+größer als ein dynamisch gelinktes Programm, und gleichzeitig etwas
schneller (3-5%). Ein Problem liegt jedoch darin, dass Sie bei einem
statisch gelinkten Programm keine benutzerdefinierten Funktionen (UDF)
benutzen können. Wenn Sie UDF-Funktionen schreiben oder benutzen wollen
@@ -10815,7 +10031,7 @@ Auf einigen Linux-2.2-Versionen erhalten Sie womöglich den Fehler
Verbindungen zu einem @code{mysqld}-Server über TCP/IP aufmachen.
Das Problem liegt darin, dass Linux eine Verzögerung zwischen dem
-Schliessen eines TCP/IP-Sockets und dem tatsächlichen Freigeben durch das
+Schließen eines TCP/IP-Sockets und dem tatsächlichen Freigeben durch das
System hat. Da es nur Platz für eine bestimmte Anzahl von TCP/IP-Slots
gibt, bekommen Sie den genannten Fehler, wenn Sie viele neue
TCP/IP-Verbindungen innerhalb kurzer Zeit aufbauen, zum Beispiel, wenn Sie
@@ -10831,7 +10047,8 @@ lassen. Wir hoffen, dass zukünftig der @code{Linux 2.4}-Kernel dieses
Problem lösen wird.
-@node Linux-x86, Linux-SPARC, Anmerkungen zur Binärdistribution (Linux), Linux
+@node Linux-x86, Linux-SPARC, Binary notes-Linux, Linux
+@c German node Linux-x86
@subsubsection Anmerkungen zu Linux x86
MySQL erfordert @code{libc}-Version 5.4.12 oder neuer. Bekannt ist, dass
@@ -10839,7 +10056,7 @@ MySQL erfordert @code{libc}-Version 5.4.12 oder neuer. Bekannt ist, dass
sollten ebenfalls funktionieren. Es hat einige Probleme mit den
@code{glibc}-RPMs von RedHat gegeben. Wenn Sie Probleme haben, prüfen Sie
daher, ob es Updates gibt! Die @code{glibc}-2.0.7-19- und -2.0.7-29-RPMs
-funktionieren bekanntermassen ebenfalls.
+funktionieren bekanntermaßen ebenfalls.
Bei einigen älteren Linux-Distributionen kann @code{configure} einen Fehler
wie folgt produzieren:
@@ -10901,12 +10118,13 @@ shell> CXX=gcc ./configure
@node Linux-SPARC, Linux-Alpha, Linux-x86, Linux
+@c German node Linux-SPARC
@subsubsection Anmerkungen zu Linux SPARC
-Bei einigen Implementationen ist @code{readdir_r()} fehlerhaft. Das äussert
+Bei einigen Implementationen ist @code{readdir_r()} fehlerhaft. Das äußert
sich darin, dass @code{SHOW DATABASES} immer einen leeren Satz (Empty Set)
zurück gibt. Das kann behoben werden, indem @code{HAVE_READDIR_R} aus
-Beachten Sie, dass die Konfigurationszeile die BinärE
+
Einige Probleme erfordern, dass Sie Ihre Linux-Installation patchen. Der
Patch befindet sich unter
@@ -10919,6 +10137,7 @@ wurde). Zusätzlich müssen Sie LinuxThreads 0.6 oder neuer installieren.
@node Linux-Alpha, Linux-PowerPC, Linux-SPARC, Linux
+@c German node Linux-Alpha
@subsubsection Anmerkungen zu Linux Alpha
MySQL-Version 3.23.12 ist die erste MySQL-Version, die auf Linux-Alpha
@@ -10928,7 +10147,7 @@ Sie sicher, dass Sie diese oder eine neuere Version haben.
Wir haben MySQL auf Alpha mit unseren Benchmarks und unserer Test-Suite
getestet, und es scheint gut zu funktionieren. Hauptsächlich noch nicht
getestet haben wird, wie die Dinge mit vielen gleichzeitigen Verbindungen
-funktionierenm.
+funktionieren.
Wir kompilieren die Standard-MySQL-Binärdatei mit SuSE 6.4, Kernel
2.2.13-SMP, Compaq-C-Kompiler Version 6.2-504 und Compaq-C++-Kompiler
@@ -10941,7 +10160,7 @@ dieser Kompiler anstelle von gcc erhalten wir eine 9% bis 14% bessere
Performance für MySQL.
Beachten Sie, dass die Konfigurationszeile die Binärversion auf die
-aktuelle CPU optimiert. Das heisst, dass Sie unsere Binärdatei nur benutzen
+aktuelle CPU optimiert. Das heißt, dass Sie unsere Binärdatei nur benutzen
können, wenn Sie einen Alpha-EV6-Prozessor haben. Ausserdem haben wir
statisch kompiliert, um Bibliothek-Probleme zu vermeiden.
@@ -10973,22 +10192,25 @@ zu linken, wird das resultierende Image beim Starten einen Speicherauszug
@node Linux-PowerPC, Linux-MIPS, Linux-Alpha, Linux
+@c German node Linux-PowerPC
@subsubsection Anmerkungen zu Linux PowerPC
MySQL sollte auf MkLinux mit dem neuesten @code{glibc}-Paket funktionieren
-(getested mit @code{glibc} 2.0.7).
+(getestet mit @code{glibc} 2.0.7).
@node Linux-MIPS, Linux-IA64, Linux-PowerPC, Linux
+@c German node Linux-MIPS
@subsubsection Anmerkungen zu Linux MIPS
Um MySQL auf Qube2 zum Laufen zu bringen (Linux Mips), benötigen Sie die
neuesten @code{glibc}-Bibliotheken (@code{glibc-2.0.7-29C2} funktioniert
-bekanntermassen). Ausserdem müssen Sie den @code{egcs}-C++-Kompiler
+bekanntermaßen). Ausserdem müssen Sie den @code{egcs}-C++-Kompiler
(@code{egcs-1.0.2-9}, @code{gcc 2.95.2} oder neuer) benutzen.
@node Linux-IA64, , Linux-MIPS, Linux
+@c German node Linux-IA64
@subsubsection Anmerkungen zu Linux IA64
Um MySQL auf Linux Ia64 zu kompilieren, mussten wir folgendes tun (wir
@@ -11024,27 +10246,30 @@ Bibliotheken. Wenn Sie daher unsere Binärdistribution an anderer Stelle als
Sie @file{libmysqlclient.so} haben, und zwar in der
@code{LD_LIBRARY_PATH}-Umgebungsvariablen.
-@xref{Link-Fehler}.
+@xref\{Link errors}.
-@node Windows, Solaris, Linux, Clientseitig
+@node Windows, Solaris, Linux, Operating System Specific Notes
+@c German node Windows
@subsection Anmerkungen zu Windows
Dieser Abschnitt beschreibt Installation und Benutzung von MySQL auf
Windows. Diese Information steht zusätzlich in der @file{README}-Datei, die
mit der MySQL-Windows-Distribution mitgeliefert wird.
+
+
@menu
-* Win95-Start:: Wie man MySQL auf Win95 / Win98 startet
-* NT-Start:: Wie man MySQL auf NT / Win2000 startet
-* Laufen lassen auf Windows:: Wie man MySQL auf Windows laufen lässt
-* Windows und SSH:: Verbinden mit einem entfernten MySQL-Server von Windows mit SSH aus
-* Symbolische Links auf Windows:: Daten auf verschiedenen Platten unter Win32 aufteilen
-* Windows kompilieren:: MySQL-Clients auf Windows kompilieren
-* Windows / Unix:: MySQL-Windows im Vergleich zu Unix-MySQL
+* Win95 start::
+* NT start::
+* Windows running::
+* Windows and SSH::
+* Windows symbolic links::
+* Windows client compiling::
+* Windows vs Unix::
@end menu
-
-@node Win95-Start, NT-Start, Laufen lassen auf Windows, Windows
+@node Win95 start, NT start, Windows, Windows
+@c German node Win95-Start
@subsubsection Wie man MySQL auf Win95 / Win98 startet
MySQL benutzt TCP/IP, um einen Client mit einem Server zu verbinden. (Das
@@ -11078,7 +10303,7 @@ Beachten Sie, dass Win95 und Win98 die Erzeugung von Named Pipes nicht
unterstützen. Auf Win95 und Win98 können Sie Named Pipes nur benutzen, um
sich zu einem entfernten MySQL-Server zu verbinden, der auf einem
NT-Server-Host läuft. (Natürlich muss auch der MySQL-Server Named Pipes
-unterstützen. Beispielsweise lässt die Verwendung von @code{mysqld-opt}
+unterstützen. Beispielsweise läßt die Verwendung von @code{mysqld-opt}
unter NT keine Named-Pipe-Verbindungen zu. Sie sollten daher entweder
@code{mysqld-nt} oder @code{mysqld-max-nt} verwenden.)
@@ -11092,10 +10317,11 @@ Ihnen bei der Lösung des Problems helfen.
Die letzte Option besteht darin, @code{mysqld} mit @code{--standalone
--debug} zu starten. In diesem Fall schreibt @code{mysqld} eine Log-Datei
@file{C:\mysqld.trace}, die die Ursache enthalten könnte, warum
-@code{mysqld} nicht startet. @xref{Trace-Dateien}.
+@code{mysqld} nicht startet. @xref\{Making trace files}.
-@node NT-Start, Windows running, Win95-Start, Windows
+@node NT start, Windows running, Win95 start, Windows
+@c German node NT-Start
@subsubsection MySQL auf Windows NT oder Windows 2000 starten
Der Win95-/Win98-Abschnitt trifft auch auf NT/Win2000 zu, mit folgenden
@@ -11189,17 +10415,18 @@ C:\> C:\mysql\bin\mysqld --standalone --debug
@end example
Letztgenanntes gibt Ihnen eine Debug-Spur in @file{C:\mysqld.trace}.
-@xref{Trace-Dateien}.
+@xref\{Making trace files}.
-@node Laufen lassen auf Windows, Windows und SSH, NT-Start, Windows
+@node Windows running, Windows and SSH, NT start, Windows
+@c German node Laufen lassen auf Windows
@subsubsection MySQL auf Windows laufen lassen
@cindex TCP/IP
@cindex Named Pipes
MySQL unterstützt TCP/IP auf allen Windows-Plattformen und Named Pipes auf
-NT. Vorgabemässig werden Named Pipes für lokale Verbindungen auf NT und TCP/IP für
+NT. Vorgabemäßig werden Named Pipes für lokale Verbindungen auf NT und TCP/IP für
alle anderen Fälle benutzt, wenn der Client TCP/IP installiert hat. Der
Hostname legt fest, welches Protokoll benutzt wird:
@@ -11247,7 +10474,7 @@ Wenn Sie @code{mysqlc.exe} benutzen wollen, müssen Sie
@file{C:\mysql\lib\cygwinb19.dll} in Ihr Windows-Systemverzeichnis kopieren
(@file{\windows\system} oder ein ähnlicher Ort).
-Vorgabemässig geben die Berechtigungen auf Windows allen lokalen Benutzern
+Vorgabemäßig geben die Berechtigungen auf Windows allen lokalen Benutzern
volle Zugriffsrechte auf alle Datenbanken, ohne ein Passwort anzugeben. Um
MySQL sicherer zu machen, sollten Sie für alle Benutzer ein Passwort setzen
und die Zeile in der Tabelle @code{mysql.user}, die @code{Host='localhost'}
@@ -11284,7 +10511,8 @@ hinzufügen und Zugriffsrechte mit den @code{GRANT}- und
@code{REVOKE}-Befehlen ändern.
@xref{GRANT}.
-@node Windows und SSH, Symbolische Links auf Windows, Laufen lassen auf Windows, Windows
+@node Windows and SSH, Windows symbolic links, Windows running, Windows
+@c German node Windows und SSH
@subsubsection Verbinden mit einem entfernten MySQL-Server von Windows mit SSH aus
@c FIX this ist ugly, real ugly.
@@ -11341,7 +10569,8 @@ Jetzt sollten Sie eine ODBC-Verbindung zu MySQL haben, die mit SSH
verschlüsselt ist.
-@node Symbolische Links auf Windows, Windows kompilieren, Windows und SSH, Windows
+@node Windows symbolic links, Windows client compiling, Windows and SSH, Windows
+@c German node Symbolische Links auf Windows
@subsubsection Daten auf verschiedenen Platten unter Win32 aufteilen
@cindex Symbolische Links
@@ -11370,7 +10599,7 @@ Sie die Datenbank @code{foo} dort haben wollen, die aber in
Dann werden alle Tabellen, die in der Datenbank @code{foo} sind, in
@file{D:\data\foo} erzeugt.
-Beachten Sie, dass wir dieses Feature nicht vorgabemässig aktiviert haben,
+Beachten Sie, dass wir dieses Feature nicht vorgabemäßig aktiviert haben,
weil es mit Geschwindigkeitsnachteilen verbunden ist. Es ist selbst dann
nicht aktiviert, wenn Sie MySQL mit Unterstützung dafür kompiliert haben.
Um symbolische Links zu aktivieren, müssen Sie in Ihre @code{my.cnf}- oder
@@ -11381,18 +10610,19 @@ Um symbolische Links zu aktivieren, müssen Sie in Ihre @code{my.cnf}- oder
use-symbolic-links
@end example
-In MySQL 4.0 werden symbolische Links vorgabemässig aktiviert sein. Wenn
+In MySQL 4.0 werden symbolische Links vorgabemäßig aktiviert sein. Wenn
Sie dies deaktivieren wollen, benutzen Sie die @code{skip-symlink}-Option.
-@node Windows kompilieren, Windows / Unix, Symbolische Links auf Windows, Windows
+@node Windows client compiling, Windows vs Unix, Windows symbolic links, Windows
+@c German node Windows kompilieren
@subsubsection MySQL-Clients auf Windows kompilieren
@cindex Kompilieren, auf Windows
@cindex Windows, Kompilieren auf
-In Ihren Quell-Dateien sollten Sie @file{windows.h} einschliessen, bevor
-Sie @file{mysql.h} einschliessen:
+In Ihren Quell-Dateien sollten Sie @file{windows.h} einschließen, bevor
+Sie @file{mysql.h} einschließen:
@example
#if defined(_WIN32) || defined(_WIN64)
@@ -11411,7 +10641,8 @@ kompiliert werden, daher sollten Sie auch Ihren Code so kompilieren, dass
er multi-threaded ist!
-@node Windows / Unix, , Windows kompilieren, Laufenlassen auf Windows
+@node Windows vs Unix, , Windows client compiling, Windows
+@c German node Windows / Unix
@subsubsection MySQL-Windows im Vergleich zu Unix-MySQL
@cindex Windows, im Vergleich zu Unix
@@ -11423,7 +10654,7 @@ allerdings mit folgenden Ausnahmen:
@table @strong
@item Windows 95 und Threads
-Windows 95 hat ein etwa 200 Bytes grosses Hauptspeicher-Leck (Memory Leak) für
+Windows 95 hat ein etwa 200 Bytes großes Hauptspeicher-Leck (Memory Leak) für
jede Thread-Erzeugung. Jede Verbindung zu MySQL erzeugt eine neues Thread,
daher sollten Sie @code{mysqld} nicht für längere Zeiträume auf Windows 95
laufen lassen, wenn Ihr Server viele Verbindungen handhabt! Windows NT und
@@ -11477,13 +10708,13 @@ Sie können MySQL nicht vom Task-Manager oder mit dem Shutdown-Dienstprogramm unt
Windows 95 killen. Sie müssen es mit @code{mysqladmin shutdown} herunter
fahren.
-@item Von Gross-/Kleinschreibung unabhängige Namen
-Unter Windows sind Dateinamen unabhängig von der Gross-/Kleinschreibung.
+@item Von Groß-/Kleinschreibung unabhängige Namen
+Unter Windows sind Dateinamen unabhängig von der Groß-/Kleinschreibung.
Daher sind Datenbank- und Tabellennamen in MySQL für Windows ebenfalls
-unabhängig von der Gross-/Kleinschreibung. Die einzige Einschränkung ist
+unabhängig von der Groß-/Kleinschreibung. Die einzige Einschränkung ist
die, dass Datenbank- und Tabellennamen innerhalb eines bestimmten
-Statements dieselbe Gross-/Kleinschreibung haben müssen.
-@xref{Gross-/Kleinschreibung}.
+Statements dieselbe Groß-/Kleinschreibung haben müssen.
+@xref\{Case sensitivity}.
@item Das @samp{\}-Verzeichnis-Zeichen
Bestandteile von Pfadnamen werden unter Windows mit dem @samp{\}-Zeichen
@@ -11513,7 +10744,7 @@ error 2017: can't open named pipe to host: . pipe...
@end example
@tindex .my.cnf Datei
-Das liegt daran, dass die MySQL-Version für NT auf NT vorgabemässig Named
+Das liegt daran, dass die MySQL-Version für NT auf NT vorgabemäßig Named
Pipes benutzt. Sie können diesen Fehler vermeiden, indem Sie bei den neuen
MySQL-Clients die @code{--host=localhost}-Option benutzen oder eine
Optionsdatei @file{C:\my.cnf} anlegen, die folgendes enthält:
@@ -11526,7 +10757,7 @@ host = localhost
@item @code{Access denied for user}-Fehler
Wenn Sie den Fehler @code{Access denied for user: 'ein-benutzer@@unknown'
to database 'mysql'} erhalten, wenn Sie auf einen MySQL-Server auf
-derselben Maschine zugreifen, heisst das, dass MySQL Ihren Hostnamen nicht
+derselben Maschine zugreifen, heißt das, dass MySQL Ihren Hostnamen nicht
richtig auflösen kann.
Um das zu beheben, legen Sie eine Datei @file{\windows\hosts} mit folgender
@@ -11578,7 +10809,7 @@ lieber als die Registrierungsdatei benutzen will.
@item
Wenn man @code{mysqld} als Systemdienst mit @code{--install} (auf NT)
-installiert, wäre es nett, wenn man vorgabemässige Optionen auf der
+installiert, wäre es nett, wenn man vorgabemäßige Optionen auf der
Kommandozeile hinzufügen könnte. Im Moment muss man diese fehlende
Möglichkeit durch eine Liste der Parameter in der @file{C:\my.cnf}-Datei
ersetzen.
@@ -11620,7 +10851,8 @@ Weitere Windows-spezifische Themen sind in der @file{README}-Datei
beschrieben, die mit der MySQL-Windows-Distribution ausgeliefert wird.
-@node Solaris, BSD Notes, Laufen lassen auf Windows, Clientseitig
+@node Solaris, BSD Notes, Windows, Operating System Specific Notes
+@c German node Solaris
@subsection Anmerkungen zu Solaris
@cindex Installationsprobleme auf Solaris
@@ -11645,7 +10877,7 @@ Solaris auf @uref{http://www.mysql.com/downloads/}.
Native Sun-Threads funktinieren nur auf Solaris 2.5 und höher. Auf 2.4 und
früher benutzt MySQL automatisch MIT-pThreads.
-@xref{MIT-pThreads}.
+@xref\{MIT-pthreads}.
Vielleicht erhalten Sie von configure folgenden Fehler:
@@ -11770,7 +11002,7 @@ Error in accept: Protocol error
@end example
Als Workaround können Sie versuchen, den Server mit der
-@code{--set-variable back_log=50}-Option zu starten. @xref{Kommandozeilenoptionen}.
+@code{--set-variable back_log=50}-Option zu starten. @xref\{Command-line options}.
Wenn Sie Ihren eigenen MySQL-Client linken, erhalten Sie möglicherweise
folgenden Fehler, wenn Sie versuchen, ihn auszuführen:
@@ -11798,7 +11030,7 @@ Client laufen lassen.
@end itemize
Wenn Sie die @code{--with-libwrap}-configure-Option benutzen, müssen Sie
-auch die Bibliotheken einschliessen, die @file{libwrap.a} benötigt:
+auch die Bibliotheken einschließen, die @file{libwrap.a} benötigt:
@example
--with-libwrap="/opt/NUtcpwrapper-7.6/lib/libwrap.a -lnsl -lsocket
@@ -11827,13 +11059,15 @@ einen symbolischen Link darauf, den Sie @file{/etc/rc3.d/S99mysql.server}
nennen.
+
+
@menu
-* Solaris 2.7:: Anmerkungen zu Solaris 2.7/2.8
-* Solaris x86:: Anmerkungen zu Solaris x86
+* Solaris 2.7::
+* Solaris x86::
@end menu
-
@node Solaris 2.7, Solaris x86, Solaris, Solaris
+@c German node Solaris 2.7
@subsubsection Anmerkungen zu Solaris 2.7/2.8
Normalerweise können Sie eine Solaris-2.6-Binärdatei für Solaris 2.7 und
@@ -11918,6 +11152,7 @@ Konfigurieren Sie MySQL mit der @code{--with-named-z-libs=no}-Option.
@node Solaris x86, , Solaris 2.7, Solaris
+@c German node Solaris x86
@subsubsection Anmerkungen zu Solaris x86
Auf Solaris 2.8 auf x86 erzeugt @code{mysqld} einen Speicherauszug (Core
@@ -11938,26 +11173,29 @@ Das vermeidet Probleme mit der @code{libstdc++}-Bibliothek und mit
C++-Ausnahmefehlern.
Wenn das nicht hilft, sollten Sie eine Debug-Version kompilieren und sie
-mit einer Trace-Datei oder unter @code{gdb} laufen lassen. @xref{gdb auf mysqld benutzen}.
+mit einer Trace-Datei oder unter @code{gdb} laufen lassen. @xref\{Using gdb on mysqld}.
-@node BSD, Mac OS X, Solaris, Clientseitig
+@node BSD Notes, Mac OS X, Solaris, Operating System Specific Notes
+@c German node BSD
@subsection Anmerkungen zu BSD
+
+
@menu
-* FreeBSD:: Anmerkungen zu FreeBSD
-* NetBSD:: Anmerkungen zu NetBSD
-* OpenBSD:: Anmerkungen zu OpenBSD
-* OpenBSD 2.5:: Anmerkungen zu OpenBSD 2.5
-* OpenBSD 2.8:: Anmerkungen zu OpenBSD 2.8
-* BSDI:: Anmerkungen zu BSD/OS
-* BSDI2:: Anmerkungen zu BSD/OS Version 2.x
-* BSDI3:: Anmerkungen zu BSD/OS Version 3.x
-* BSDI4:: Anmerkungen zu BSD/OS Version 4.x
+* FreeBSD::
+* NetBSD::
+* OpenBSD::
+* OpenBSD 2.5::
+* OpenBSD 2.8::
+* BSDI::
+* BSDI2::
+* BSDI3::
+* BSDI4::
@end menu
-
-@node FreeBSD, NetBSD, BSD, BSD
+@node FreeBSD, NetBSD, BSD Notes, BSD Notes
+@c German node FreeBSD
@subsubsection Anmerkungen zu FreeBSD
FreeBSD 3.x wird für MySQL empfohlen, weil das Thread-Paket sehr viel
@@ -12008,7 +11246,7 @@ folgender Zeile beginnen:
@end example
Wenn Sie bemerken, dass @code{configure} MIT-pThreads benutzen wird, lesen
-Sie die Anmerkungen zu MIT-pThreads. @xref{MIT-pThreads}.
+Sie die Anmerkungen zu MIT-pThreads. @xref\{MIT-pthreads}.
Wenn @code{make install} meldet, dass es @file{/usr/include/pThreads} nicht
finden kann, hat @code{configure} nicht entdeckt, dass Sie MIT-pThreads
@@ -12019,8 +11257,8 @@ shell> rm config.cache
shell> ./configure --with-mit-threads
@end example
-FreeBSD ist dafür bekannt, dass es vorgabemässig einen sehr niedrigen Wert
-für Datei-Handles eingestellt hat. @xref{Nicht genug Datei-Handles}.
+FreeBSD ist dafür bekannt, dass es vorgabemäßig einen sehr niedrigen Wert
+für Datei-Handles eingestellt hat. @xref\{Not enough file handles}.
Kommentieren Sie den Abschnitt ulimit -n section in safe_mysqld aus oder
erhöhen Sie die Werte für den @code{mysqld}-Benutzer in /etc/login.conf
(und bauen Sie es neu mit cap_mkdb /etc/login.conf). Stellen Sie ausserdem
@@ -12031,13 +11269,14 @@ Passwort-Datei einstellen, wenn Sie nicht den Vorgabewert benutzen
Wenn Sie Probleme mit dem aktuellen Datum in MySQL erhalten, wird das
Setzen der @code{TZ}-Variablen das wahrscheinlich beheben.
-@xref{Umgebungsvariablen}.
+@xref\{Environment variables}.
-Um ein sicheres, stabiles System zu erhalten, sollten Sie ausschliesslich
+Um ein sicheres, stabiles System zu erhalten, sollten Sie ausschließlich
FreeBSD-Kernels benutzen, die als @code{-STABLE} markiert sind.
-@node NetBSD, OpenBSD, FreeBSD, BSD
+@node NetBSD, OpenBSD, FreeBSD, BSD Notes
+@c German node NetBSD
@subsubsection Anmerkungen zu NetBSD
Um auf NetBSD zu kompilieren, benötigen Sie GNU @code{make}. Ansonsten wird
@@ -12045,16 +11284,14 @@ das Kompilieren abstürzen, wenn @code{make} versucht, @code{lint} auf
C++Dateien laufen zu lassen.
-@node OpenBSD, OpenBSD 2.5, NetBSD, BSD
+@node OpenBSD, OpenBSD 2.5, NetBSD, BSD Notes
+@c German node OpenBSD
@subsubsection Anmerkungen zu OpenBSD
-@menu
-* OpenBSD 2.5:: Anmerkungen zu OpenBSD 2.5
-* OpenBSD 2.8:: Anmerkungen zu OpenBSD 2.8
-@end menu
-@node OpenBSD 2.5, OpenBSD 2.8, OpenBSD, BSD
+@node OpenBSD 2.5, OpenBSD 2.8, OpenBSD, BSD Notes
+@c German node <no English equivalent>
@subsubsection Anmerkungen zu OpenBSD 2.5
Auf OpenBSD-Version 2.5 können Sie MySQL mit nativen Threads mit folgenden
@@ -12065,7 +11302,8 @@ CFLAGS=-pThread CXXFLAGS=-pThread ./configure --with-mit-threads=no
@end example
-@node OpenBSD 2.8, BSDI, OpenBSD 2.5, BSD
+@node OpenBSD 2.8, BSDI, OpenBSD 2.5, BSD Notes
+@c German node OpenBSD 2.8
@subsubsection Anmerkungen zu OpenBSD 2.8
Unsere Benutzer haben berichtet, dass OpenBSD 2.8 einen Thread-Bug hat, der
@@ -12075,17 +11313,14 @@ verfügbar. Die Symptome dieses Thread-Bugs sind langsames Antworten, hohe
Lase, hohe Prozessorauslastung und Abstürze.
-@node BSDI, BSDI2, OpenBSD 2.8, BSD
+@node BSDI, BSDI2, OpenBSD 2.8, BSD Notes
+@c German node BSDI
@subsubsection Anmerkungen zu BSD/OS
-@menu
-* BSDI2:: Anmerkungen zu BSD/OS 2.x
-* BSDI3:: Anmerkungen zu BSD/OS 3.x
-* BSDI4:: Anmerkungen zu BSD/OS 4.x
-@end menu
-@node BSDI2, BSDI3, BSDI, BSD
+@node BSDI2, BSDI3, BSDI, BSD Notes
+@c German node <no English equivalent>
@subsubsection Anmerkungen zu BSD/OS Version 2.x
Wenn Sie folgenden Fehler beim Kompilieren von MySQL erhalten, ist Ihr
@@ -12109,9 +11344,10 @@ zu sein, @file{sql_yacc.cc} zu kompilieren.
Wenn Sie Probleme mit dem aktuellen Datum in MySQL erhalten, wird das
Setzen der @code{TZ}-Variablen das wahrscheinlich beheben.
-@xref{Umgebungsvariablen}.
+@xref\{Environment variables}.
-@node BSDI3, BSDI4, BSDI2, BSD
+@node BSDI3, BSDI4, BSDI2, BSD Notes
+@c German node BSDI3
@subsubsection Anmerkungen zu BSD/OS Version 3.x
Aktualisieren Sie auf BSD/OS Version 3.1. Wenn das nicht möglich ist,
@@ -12128,7 +11364,7 @@ shell> env CXX=shlicc++ CC=shlicc2 \
--with-unix-socket-path=/var/mysql/mysql.sock
@end example
-Folgendes funktioniert bekanntermassen ebenfalls:
+Folgendes funktioniert bekanntermaßen ebenfalls:
@example
shell> env CC=gcc CXX=gcc CXXFLAGS=-O3 \
@@ -12154,7 +11390,8 @@ zu benutzen. Einige BSDI-Benutzer haben Probleme mit @code{bash} und
@code{ulimit} berichtet.
-@node BSDI4, , BSDI3, BSD
+@node BSDI4, , BSDI3, BSD Notes
+@c German node BSDI4
@subsubsection Anmerkungen zu BSD/OS Version 4.x
BSDI-Version 4.x hat einige auf Threads bezogene Bugs. Wenn Sie auf dieser
@@ -12162,7 +11399,7 @@ Plattform MySQL benutzen wollen, sollten Sie alle Patches installieren, die
sich auf Threads beziehen. Zumindest M400-023 sollte installiert sein.
Auf einigen Systemen mit BSDI-Version 4.x bekommen Sie vielleicht Probleme
-mit gemeinsam verwendeten (shared) Bibliotheken. Das äussert sich darin,
+mit gemeinsam verwendeten (shared) Bibliotheken. Das äußert sich darin,
dass Sie keinerlei Client-Programme wie @code{mysqladmin} ausführen können.
In diesem Fall müssen Sie MySQL so rekonfigurieren, dass keine gemeinsam
genutzten Bibliotheken benutzt werden, indem Sie die
@@ -12186,16 +11423,19 @@ anderen Datenbank herstellen können! (Ein symbolischer Link auf eine andere
Platte ist okay.)
-@node Mac OS X, Andere Unixe, BSD, Clientseitig
+@node Mac OS X, Other Unix Notes, BSD Notes, Operating System Specific Notes
+@c German node Mac OS X
@subsection Anmerkungen zu Mac OS X
+
+
@menu
-* Mac OS X Public Beta:: Mac OS X Public Beta
-* Mac OS X Server:: Mac OS X Server
+* Mac OS X Public Beta::
+* Mac OS X Server::
@end menu
-
@node Mac OS X Public Beta, Mac OS X Server, Mac OS X, Mac OS X
+@c German node Mac OS X Public Beta
@subsubsection Mac OS X Public Beta
MySQL sollte ohne jedes Problem auf Mac OS X Public Beta (Darwin) laufen.
@@ -12203,6 +11443,7 @@ Die pThread-Patches für dieses Betriebssystem benötigen Sie nicht!
@node Mac OS X Server, , Mac OS X Public Beta, Mac OS X
+@c German node Mac OS X Server
@subsubsection Mac OS X Server
Bevor Sie versuchen, MySQL auf Mac OS X Server zu konfigurieren, müssen Sie
@@ -12226,24 +11467,27 @@ alias mysqladmin '/usr/local/mysql/bin/mysqladmin'
@end example
-@node Andere Unixe, OS/2, Mac OS X, Clientseitig
+@node Other Unix Notes, OS/2, Mac OS X, Operating System Specific Notes
+@c German node Andere Unixe
@subsection Anmerkungen zu anderen Unixen
+
+
@menu
-* Binary notes-HP-UX:: Anmerkungen zu HP-UX für Binärdistributionen
-* HP-UX 10.20:: Anmerkungen zu HP-UX Version 10.20
-* HP-UX 11.x:: Anmerkungen zu HP-UX Version 11.x
-* IBM-AIX:: Anmerkungen zu IBM-AIX
-* SunOS:: Anmerkungen zu SunOS 4
-* Alpha-DEC-UNIX:: Anmerkungen zu Alpha-DEC-UNIX (Tru64)
-* Alpha-DEC-OSF1:: Anmerkungen zu Alpha-DEC-OSF1
-* SGI-Irix:: Anmerkungen zu SGI Irix
-* SCO:: Anmerkungen zu SCO
-* SCO Unixware:: Anmerkungen zu SCO Unixware Version 7.0
+* Binary notes-HP-UX::
+* HP-UX 10.20::
+* HP-UX 11.x::
+* IBM-AIX::
+* SunOS::
+* Alpha-DEC-UNIX::
+* Alpha-DEC-OSF1::
+* SGI-Irix::
+* SCO::
+* SCO Unixware::
@end menu
-
-@node Binary notes-HP-UX, HP-UX 10.20, Andere Unixe, Andere Unixe
+@node Binary notes-HP-UX, HP-UX 10.20, Other Unix Notes, Other Unix Notes
+@c German node Binary notes-HP-UX
@subsubsection Anmerkungen zu HP-UX Notes für Binärdistributionen
@cindex HP-UX, Binärdistribution
@@ -12256,7 +11500,7 @@ zugreifen zu können.
Die HP-Version von MySQL wurde auf einem HP 9000/8xx-Server unter HP-UX
10.20 kompiliert und benutzt MIT-pThreads. Unter dieser Konfiguration
-arbeitet sie bekanntermassen gut. MySQL-Version 3.22.26 und neuer kann auch
+arbeitet sie bekanntermaßen gut. MySQL-Version 3.22.26 und neuer kann auch
mit HP's nativem Thread-Paket gebaut werden.
Weitere Konfigurationen, die ebenfalls funktionieren können:
@@ -12321,7 +11565,8 @@ Um die HP-UX-tar.gz-Distribution zu installieren, müssen Sie GNU @code{tar}
haben.
-@node HP-UX 10.20, HP-UX 11.x, Binary notes-HP-UX, Andere Unixe
+@node HP-UX 10.20, HP-UX 11.x, Binary notes-HP-UX, Other Unix Notes
+@c German node HP-UX 10.20
@subsubsection Anmerkungen zu HP-UX Version 10.20
Es gibt einige kleine Probleme, wenn Sie MySQL auf HP-UX kompilieren. Wir
@@ -12350,7 +11595,8 @@ sich nicht verbinden können. Entfernen Sie die DCE-Bibliotheken, während
Sie @code{gcc} 2.95 kompilieren!
-@node HP-UX 11.x, IBM-AIX, HP-UX 10.20, Andere Unixe
+@node HP-UX 11.x, IBM-AIX, HP-UX 10.20, Other Unix Notes
+@c German node HP-UX 11.x
@subsubsection Anmerkungen zu HP-UX Version 11.x
Für HP-UX Version 11.x empfehlen wir MySQL-Version 3.23.15 oder später.
@@ -12467,7 +11713,8 @@ configure: error: MySQL requires a ANSI C compiler (and a C++ compiler). Try gcc
HP-UX-C- und C++-Kompiler haben.
-@node IBM-AIX, SunOS, HP-UX 11.x, Andere Unixe
+@node IBM-AIX, SunOS, HP-UX 11.x, Other Unix Notes
+@c German node IBM-AIX
@subsubsection Anmerkungen zu IBM-AIX
@cindex Probleme, Installation auf IBM-AIX
@@ -12574,7 +11821,7 @@ zu
#undef HAVE_SNPRINTF
@end example
-Schliesslich müssen Sie in @file{mysqld.cc} einen Prototype für initgoups
+Schließlich müssen Sie in @file{mysqld.cc} einen Prototype für initgoups
hinzufügen:
@example
@@ -12584,7 +11831,8 @@ extern "C" int initgroups(const char *,int);
@end example
-@node SunOS, Alpha-DEC-UNIX, IBM-AIX, Andere Unixe
+@node SunOS, Alpha-DEC-UNIX, IBM-AIX, Other Unix Notes
+@c German node SunOS
@subsubsection Anmerkungen zu SunOS 4
Auf SunOS 4 werden MIT-pThreads benötigt, um MySQL zu kompilieren, was
@@ -12605,7 +11853,8 @@ Wenn Sie @code{mysqld} kompilieren, gibt es ein paar @code{implicit
declaration of function}-Warnungen. Diese können ignoriert werden.
-@node Alpha-DEC-UNIX, Alpha-DEC-OSF1, SunOS, Andere Unixe
+@node Alpha-DEC-UNIX, Alpha-DEC-OSF1, SunOS, Other Unix Notes
+@c German node Alpha-DEC-UNIX
@subsubsection Anmerkungen zu Alpha-DEC-UNIX (Tru64)
Wenn Sie egcs 1.1.2 auf Digital Unix benutzen, sollten Sie auf gcc 2.95.2
@@ -12671,7 +11920,7 @@ gnumake
Wenn Sie ein Problem mit libtool beim Kompilieren mit gemeinsam genutzten
(shared) Bibliotheken bekommen wie oben, wenn Sie @code{mysql} linken,
-sollten Sie dies folgendermassen umgehen können:
+sollten Sie dies folgendermaßen umgehen können:
@example
cd mysql
@@ -12688,7 +11937,8 @@ Skripts/mysql_install_db
@end example
-@node Alpha-DEC-OSF1, SGI-Irix, Alpha-DEC-UNIX, Andere Unixe
+@node Alpha-DEC-OSF1, SGI-Irix, Alpha-DEC-UNIX, Other Unix Notes
+@c German node Alpha-DEC-OSF1
@subsubsection Anmerkungen zu Alpha-DEC-OSF1
Wenn Sie Probleme beim Kompilieren haben und DEC @code{CC} und @code{gcc}
@@ -12787,7 +12037,8 @@ hinzu, falls Sie keine @code{-O}-Option auf Ihrer Kompilierzeile haben.)
Danach wechseln Sie einfach direkt zurück in oberste Verzeichnis und lassen
@code{make} noch einmal laufen.
-@node SGI-Irix, SCO, Alpha-DEC-OSF1, Andere Unixe
+@node SGI-Irix, SCO, Alpha-DEC-OSF1, Other Unix Notes
+@c German node SGI-Irix
@subsubsection Anmerkungen zu SGI Irix
Wenn Sie Irix-Version 6.5.3 oder neuer benutzen, kann @code{mysqld} nur
@@ -12838,7 +12089,7 @@ shell> make
Es wurden ausserdem Scheduling-Probleme berichtet. Wenn nur ein Thread
läuft, läuft alles recht langsam. Das können Sie vermeiden, indem Sie einen
-weiteren ClieNT-Starten. Daraus kann sich eine zwei- bis zehnfache
+weiteren Client-Starten. Daraus kann sich eine zwei- bis zehnfache
Geschwindigkeitssteigerung für den anderen Thread ergeben. Das liegt an
einem Problem mit Irix-Threads, das kaum zu verstehen ist. Eventuell müssen
Sie improvisieren, um eine Lösung zu finden, bis dies behoben ist.
@@ -12863,7 +12114,8 @@ CC=cc CXX=CC CFLAGS='-O3 -n32 -TARG:platform=IP22 -I/usr/local/include \
@end example
-@node SCO, SCO Unixware, SGI-Irix, Andere Unixe
+@node SCO, SCO Unixware, SGI-Irix, Other Unix Notes
+@c German node SCO
@subsubsection Anmerkungen zu SCO
Die aktuelle Portierung wird auf ``sco3.2v5.0.4''-
@@ -12902,7 +12154,7 @@ Sie finden ein vorkompiliertes Paket auf
@uref{http://www.mysql.com/downloads/SCO/FSU-Threads-3.5c.tar.gz}.
@item
-FSU-PThreads kann mit SCO Unix 4.2 mit tcpip kompiliert werden. Oder mit
+FSU-PThreads kann mit SCO Unix 4.2 mit TCP/IP kompiliert werden. Oder mit
OpenServer 3.0 oder Open Desktop 3.0 (OS 3.0 ODT 3.0), mit installiertem
SCO-Entwicklungssystem unter Benutzung einer guten Portierung von GCC 2.5.x
ODT oder OS 3.0. Hierbei brauchen Sie eine gute Portierung von GCC 2.5.x.
@@ -12923,7 +12175,7 @@ wählen Sie die SCO-OpenServer-Option. Dieser Befehl kopiert
Lassen Sie @code{make} laufen.
@item
-Um in das vorgabemässige @file{/usr/include}-Verzeichnis zu installieren,
+Um in das vorgabemäßige @file{/usr/include}-Verzeichnis zu installieren,
loggen Sie sich als Root ein und wechseln (@code{cd}) Sie in das
@file{thread/src}-Verzeichnis. Führen Sie dann @code{make install} aus.
@end enumerate
@@ -13022,7 +12274,8 @@ mit @code{icc} oder @code{cc} kompiliert wurden.
Perl funktioniert am besten, wenn es mit @code{cc} kompiliert wird.
-@node SCO Unixware, , SCO, Andere Unixe
+@node SCO Unixware, , SCO, Other Unix Notes
+@c German node SCO Unixware
@subsubsection Anmerkungen zu SCO Unixware Version 7.0
Sie benötigen mindestens MySQL-Version 3.22.13, weil diese Version einige
@@ -13039,12 +12292,10 @@ Wenn Sie @code{gcc} benutzen wollen, müssen Sie @code{gcc} 2.95.2 oder
neuer benutzen.
-@menu
-* OS/2:: Anmerkungen zu OS/2
-@end menu
-@node OS/2, BeOS, Andere Unixe, Clientseitig
+@node OS/2, BeOS, Other Unix Notes, Operating System Specific Notes
+@c German node OS/2
@subsection Anmerkungen zu OS/2
MySQL benutzt eine ganze Menge offener Dateien. Deswegen sollten Sie Ihrer
@@ -13069,8 +12320,8 @@ Das @file{INSTALL.CMD}-Skript muss von OS/2's eigener @file{CMD.EXE} aus
laufen gelassen werden und funktioniert eventuell nicht mit Ersatz-Shells
wie @file{4OS2.EXE}.
-Das @file{scripts/mysql-install-db}-Skript wurde umbenannt. Es heisst jetzt
-@file{install.cmd} und ist ein REXX-Skript, welches die vorgabemässigen
+Das @file{scripts/mysql-install-db}-Skript wurde umbenannt. Es heißt jetzt
+@file{install.cmd} und ist ein REXX-Skript, welches die vorgabemäßigen
MySQL-Sicherheitseinstellungen einstellt und die WorkPlace-Shell-Icons für
MySQL erstellt.
@@ -13099,7 +12350,7 @@ laden:
mysql> CREATE FUNCTION metaphon RETURNS STRING SONAME "example.so";
@end example
-Unter OS/2 würde das Modul @file{example.udf} heissen, aber Sie würden
+Unter OS/2 würde das Modul @file{example.udf} heißen, aber Sie würden
nicht die Modul-Erweiterung angeben:
@example
@@ -13107,7 +12358,8 @@ mysql> CREATE FUNCTION metaphon RETURNS STRING SONAME "example";
@end example
-@node BeOS, Novell Netware, OS/2, Clientseitig
+@node BeOS, Novell Netware, OS/2, Operating System Specific Notes
+@c German node BeOS
@subsection Anmerkungen zu BeOS
Wir sind sehr daran interessiert, MySQL auf BeOS ans Laufen zu bringen,
@@ -13123,7 +12375,8 @@ sagten, dass MySQL zu 80% auf BeOS portiert ist, aber wir haben schon eine
Weile nichts von ihnen gehört.
-@node Novell Netware, , BeOS, Clientseitig
+@node Novell Netware, , BeOS, Operating System Specific Notes
+@c German node Novell Netware
@subsection Anmerkungen zu Novell Netware
Wir sind sehr daran interessiert, MySQL auf Netware ans Laufen zu bringen,
@@ -13134,10 +12387,332 @@ Wir sind daran interessiert, jemanden für eine Portierung zu finden, und
wir werden ihn / sie bei allen technischen Fragen helfen, die bei einer
Portierung auftreten können.
+@node Perl support, , Operating System Specific Notes, Installing
+@c German node Perl-Unterstützung
+@section Anmerkungen zur Perl-Installation
+@cindex Perl, Installation
+@cindex Installation, Perl
+@code{DBI}/@code{DBD}-Schnittstelle
-@node Tutorial, MySQL-Datenbankadministration, Installation, Top
+
+@menu
+* Perl installation::
+* ActiveState Perl::
+* Perl support problems::
+@end menu
+
+@node Perl installation, ActiveState Perl, Perl support, Perl support
+@c German node Perl-Installation
+@subsection Installation von Perl unter Unix
+
+Perl-Unterstützung für MySQL wird durch die @code{DBI}/@code{DBD}-
+Client-Schnittstelle zur Verfügung gestellt. @xref{Perl}. Der Perl-
+@code{DBD}/@code{DBI}-Client-Code erfordert Perl Version 5.004 oder
+später. Die Schnittstelle @strong{funktioniert nicht}, wenn Sie eine
+ältere Version von Perl haben.
+
+MySQL-Perl-Unterstützung erfordert ausserdem, dass Sie MySQL-Client-
+Programmierunterstützung installiert haben. Wenn Sie MySQL von RPM-
+Dateien installiert haben, sind Client-Programme im Client-RPM
+enthalten, aber Client-Programmierunterstützung ist im Entwickler-RPM.
+Stellen Sie sicher, dass Sie auch das letztgenannte RPM installiert
+haben.
+
+Ab Version 3.22.8 wird Perl-Unterstützung getrennt von der Haupt-MySQL-
+Unterstützung ausgeliefert. Wenn Sie Perl-Unterstützung installieren
+wollen, können Sie die benötigten Dateien von
+@uref{http://www.mysql.com/Downloads/Contrib/} herunter laden.
+
+Die Perl-Distributionen werden als komprimierte @code{tar}-Archive zur
+Verfügung gestellt und haben Namen wie @file{MODULE-VERSION.tar.gz},
+wobei @code{MODULE} der Modulname und @code{VERSION} die Versionsnummer
+ist. Sie sollten die @code{Data-Dumper}-, @code{DBI}- und @code{Msql-
+Mysql-modules}-Distributionen laden und sie in dieser Reihenfolge
+installieren. Die Installationsprozedur ist unten dargestellt. Das
+Beispiel gilt für das @code{Data-Dumper}-Modul, ist aber für alle drei
+Distributionen dieselbe:
+
+@enumerate
+@item
+Entpacken Sie die Distribution ins aktuelle Verzeichnis.
+@example
+shell> gunzip < Data-Dumper-VERSION.tar.gz | tar xvf -
+@end example
+Dieser Befehl erzeugt ein Verzeichnis namens @file{Data-Dumper-
+VERSION}.
+
+@item
+Wechseln Sie ins oberste Verzeichnis der entpackten Distribution:
+@example
+shell> cd Data-Dumper-VERSION
+@end example
+
+@item
+Bauen Sie die Distribution und kompilieren Sie alles:
+@example
+shell> perl Makefile.PL
+shell> make
+shell> make test
+shell> make install
+@end example
+@end enumerate
+
+Der @code{make test}-Befehl ist wichtig, weil er sicherstellt, dass die
+Module funktionieren. Beachten Sie, dass der MySQL-Server während der
+Befehlsausführung bei der @code{Msql-Mysql-modules}-Installation laufen
+muss, um den Schnittstellen-Code auszuführen, den ansonsten schlägt der
+Test fehl.
+
+Es ist eine gute Idee, die @code{Msql-Mysql-modules}-Distribution neu zu
+kompilieren und zu installieren, wenn Sie ein neues Release von MySQL
+installieren, insbesondere, wenn Sie Symptome feststellen wie dass alle
+Ihre @code{DBI}-Skripte einen Coredump liefern, nachdem Sie auf eine
+höhere Version von MySQL aktualisiert haben.
+
+Wenn Sie keine Rechte haben, die Perl-Module im Systemverzeichnis zu
+installieren, oder wenn Sie lokale Perl-Module installieren wollen,
+könnte Ihnen der folgende Link helfen:
+
+@example
+@uref{http://www.iserver.com/support/contrib/perl5/modules.html}
+@end example
+
+Suchen Sie nach der Überschrift
+@code{Installing New Modules that Require Locally Installed Modules}.
+
+
+@node ActiveState Perl, Perl support problems, Perl installation, Perl support
+@c German node ActiveState-Perl
+@subsection Installation von ActiveState-Perl unter Windows
+
+@cindex Installation, Perl unter Windows
+@cindex Perl, Installation unter Windows
+@cindex ActiveState-Perl
+
+Um das MySQL-@code{DBD}-Modul mit ActiveState-Perl unter Windows zu
+installieren, gehen Sie wie folgt vor:
+
+@itemize @bullet
+@item
+Laden Sie ActiveState-Perl von
+@uref{http://www.activestate.com/Products/ActivePerl/}
+und installieren Sie es.
+
+@item
+Öffnen Sie eine MS-DOS-Eingabeaufforderung.
+
+@item
+Setzen Sie - falls erforderlich - die HTTP_proxy-Variable, zum Beispiel
+wie folgt:
+
+@example
+set HTTP_proxy=my.proxy.com:3128
+@end example
+
+@item
+Starten Sie das PPM-Programm:
+
+@example
+C:\> c:\perl\bin\ppm.pl
+@end example
+
+@item
+Falls noch nicht geschehen, installieren Sie @code{DBI}:
+
+@example
+ppm> install DBI
+@end example
+
+@item
+Wenn das erfolgreich verlief, führen Sie folgenden Befehl aus:
+
+@example
+install
+ftp://ftp.de.uu.net/pub/CPAN/authors/id/JWIED/DBD-mysql-1.2212.x86.ppd
+@end example
+@end itemize
+
+Das sollte zumindest bei ActiveState-Perl Version 5.6 funktionieren.
+
+Wenn Sie es nicht schaffen, dass oben Genanntes funktioniert, sollten
+Sie statt dessen den @strong{MyODBC}-Treiber installieren und sich mit
+dem MySQL-Server über ODBC verbinden:
+
+@example
+use DBI;
+$dbh= DBI->connect("DBI:ODBC:$dsn","$user","$password") ||
+ die "Fehler $DBI::errstr beim Verbinden mit $dsn\n";
+@end example
+
+
+@node Windows Perl, Perl support problems, ActiveState Perl, Perl support
+@c German node Windows-Perl
+Unterstützung
+@subsection Installation der MySQL-Perl-Distribution unter Windows
+
+Die MySQL-Perl-Distribution enthält @code{DBI},
+@code{DBD:MySQL} und @code{DBD:ODBC}.
+
+@itemize @bullet
+@item
+Laden Sie die Perl-Distribution für Windows von
+@uref{http://www.mysql.com/download.html}.
+
+@item
+Entpacken Sie die Distribution in @code{C:}, so dass Sie ein
+@file{C:\PERL}-Verzeichnis erhalten.
+
+@item
+Fügen Sie Ihrem Pfad @file{C:\PERL\BIN} hinzu.
+
+@item
+Fügen Sie Ihrem Pfad das Verzeichnis @file{C:\PERL\BIN\MSWIN32-x86-
+thread} oder @file{C:\PERL\BIN\MSWIN32-x86} hinzu.
+
+@item
+Testen Sie, ob @code{perl} funktioniert, indem Sie @code{perl -v} in
+einer MS-DOS-Eingabeaufforderung ausführen.
+@end itemize
+
+
+@node Perl support problems, , ActiveState Perl, Perl support
+@c German node Perl-Unterstützung Probleme
+@subsection Probleme bei der Benutzung von Perl @code{DBI}/@code{DBD}-Schnittstelle
+
+@cindex Probleme, Installation von Perl
+@cindex Perl DBI/DBD, Installationsprobleme
+
+Wenn Perl ausgibt, dass es das @file{../mysql/mysql.so}-Modul nicht
+finden kann, liegt das Problem wahrscheinlich darin, dass Perl die
+gemeinsam genutzte @file{libmysqlclient.so} nicht findet.
+
+Das können Sie mit einer der folgenden Methoden beheben:
+
+@itemize @bullet
+@item
+Kompilieren Sie die @code{Msql-Mysql-modules}-Distribution mit
+@code{perl Makefile.PL -static -config} statt mit @code{perl
+Makefile.PL}.
+
+@item
+Kopieren Sie @code{libmysqlclient.so} in das Verzeichnis, in dem Ihre
+anderen gemeinsam genutzten Bibliotheken liegen (wahrscheinlich
+@file{/usr/lib} oder @file{/lib}).
+
+@item
+Unter Linux können Sie der @file{/etc/ld.so.conf}-Datei den Pfadnamen
+des Verzeichnisses hinzufügen, in dem @file{libmysqlclient.so} liegt.
+
+@tindex LD_RUN_PATH-Umgebungsvariable
+@tindex Umgebungsvariable, LD_RUN_PATH
+@item
+Fügen Sie der @code{LD_RUN_PATH}-Umgebungsvariablen den Pfadnamen des
+Verzeichnisses hinzu, in dem @file{libmysqlclient.so} liegt.
+@end itemize
+
+Wenn Sie folgende Fehler von @code{DBD-mysql} erhalten, benutzen Sie
+wahrscheinlich @code{gcc} (oder eine alte Binärdatei, die mit @code{gcc}
+kompiliert wurde):
+
+@example
+/usr/bin/perl: can't resolve symbol '__moddi3'
+/usr/bin/perl: can't resolve symbol '__divdi3'
+@end example
+
+Fügen Sie @code{-L/usr/lib/gcc-lib/... -lgcc} zum Link-Befehl hinzu,
+wenn die @file{mysql.so}-Bibliothek gebaut wird (überprüfen Sie die
+Ausgabe von @code{make} nach @file{mysql.so}, wenn Sie den Perl-Client
+kompilieren). Die @code{-L}-Option sollte den Pfadnamen des
+Verzeichnisses angeben, in dem @file{libgcc.a} auf Ihrem System liegt.
+
+Ein weiterer Grund für dieses Problem kann sein, dass Perl und MySQL
+nicht beide mit @code{gcc} kompiliert wurden. In diesem Fall können Sie
+die fehlende Übereinstimmung (Mismatch) durch Kompilieren von beiden mit
+@code{gcc} aufheben.
+
+Wenn Sie folgende Fehler von @code{Msql-Mysql-modules} erhalten, wenn
+Sie die Tests laufen lassen:
+
+@example
+t/00base............install_driver(mysql) failed: Can't load
+'../blib/arch/auto/DBD/mysql/mysql.so' for module DBD::mysql:
+../blib/arch/auto/DBD/mysql/mysql.so: undefined symbol: uncompress at
+/usr/lib/perl5/5.00503/i586-linux/DynaLoader.pm line 169.
+@end example
+
+Bedeutet das, dass Sie die Kompressionsbibliothek (-lz) in die Link-
+Zeile einschließen müssen. Das kann man durch folgende Änderung in der
+Datei @file{lib/DBD/mysql/Install.pm} tun:
+
+@example
+$sysliblist .= " -lm";
+
+ändern in
+
+$sysliblist .= " -lm -lz";
+@end example
+
+Danach @strong{müssen} Sie 'make realclean' laufen lassen und danach mit
+der Installation von Anfang an beginnen.
+
+Wenn Sie das Perl-Modul auf einem System laufen lassen wollen, das
+dynamisches Linken nicht unterstützt (wie SCO), können Sie eine
+statische Version von Perl erzeugen, die @code{DBI} und @code{DBD-mysql}
+enthält. Das bringt man zum Laufen, indem man eine Version von Perl
+erzeugt, in der der @code{DBI}-Code eingelinkt ist, und diese über das
+aktuelle Perls installiert. Dann benutzen Sie diese, um eine Version von
+Perl zu bauen, die zusätzlich den @code{DBD}-Code eingelinkt hat, und
+installieren diese.
+
+Unter SCO müssen folgende Umgebungsvariablen gesetzt sein:
+
+@example
+shell> LD_LIBRARY_PATH=/lib:/usr/lib:/usr/local/lib:/usr/progressive/lib
+or
+shell>
+LD_LIBRARY_PATH=/usr/lib:/lib:/usr/local/lib:/usr/ccs/lib:/usr/progressive/lib:/usr/skunk/lib
+shell>
+LIBPATH=/usr/lib:/lib:/usr/local/lib:/usr/ccs/lib:/usr/progressive/lib:/usr/skunk/lib
+shell>
+MANPATH=scohelp:/usr/man:/usr/local1/man:/usr/local/man:/usr/skunk/man:
+@end example
+
+Erzeugen Sie zuerst ein Perl, das ein statisch gelinktes @code{DBI}
+enthält, indem Sie diese Befehle im Verzeichnis ausführen, in dem Ihre
+@code{DBI}-Distribution liegt:
+
+@example
+shell> perl Makefile.PL -static -config
+shell> make
+shell> make install
+shell> make perl
+@end example
+
+Dann müssen Sie das neue Perl installieren. Die Ausgabe von @code{make
+perl} zeigt den genauen @code{make}-Befehl an, den Sie für die
+Installation ausführen müssen. Unter SCO ist das @code{make -f
+Makefile.aperl inst_perl MAP_TARGET=perl}.
+
+Benutzen Sie als nächstes dieses soeben erzeugte Perl, um ein weiteres
+Perl zu erzeugen, dass auch ein statisch gelinktes @code{DBD::mysql}
+enthält, indem Sie diese Befehle im Verzeichnis ausführen, in dem Ihre
+@code{Msql-Mysql-modules}-Distribution liegt:
+
+@example
+shell> perl Makefile.PL -static -config
+shell> make
+shell> make install
+shell> make perl
+@end example
+
+Zum Schluss müssen Sie dieses neue Perl installieren. Hierbei zeigt die
+Ausgabe von @code{make perl} wiederum, welcher Befehl benutzt werden
+muss.
+
+@node Tutorial, MySQL Database Administration, Installing, Top
+@c German node Tutorial
@chapter Einführung in MySQL: Ein MySQL-Tutorial
@cindex Tutorial
@@ -13147,16 +12722,6 @@ Portierung auftreten können.
@cindex monitor, terminal
@cindex Optionen, von MySQL
-@menu
-* Verbinden und Trennen:: Verbindung zum Server herstellen und trennen
-* Anfragen eingeben:: Anfragen eingeben
-* Datenbankbenutzung:: Eine Datenbank erzeugen und benutzen
-* Informationen bekommen:: Informationen über Datenbanken und Tabellen erhalten
-* Beispiele:: Beispiele gebräuchlicher Anfragen (Queries)
-* Stapelbetrieb:: @code{mysql} im Stapelbetrieb (Batch Mode) benutzen
-* Twin:: Anfragen aus dem Zwillings-Projekt
-* Apache:: MySQL mit Apache benutzen
-@end menu
Dieses Kapitel enthält eine Einführung in MySQL in Form eines Tutorials.
Datei wird gezeigt, wie Sie das @code{mysql}-Client-Programm benutzen, um
@@ -13194,7 +12759,19 @@ wenn Sie weitere Informationen zu den Themen suchen, die hier besprochen
werden.
-@node Verbinden und Trennen, Anfragen eingeben, Tutorial, Tutorial
+@menu
+* Connecting-disconnecting::
+* Entering queries::
+* Database use::
+* Getting information::
+* Examples::
+* Batch mode::
+* Twin::
+* Apache::
+@end menu
+
+@node Connecting-disconnecting, Entering queries, Tutorial, Tutorial
+@c German node Verbinden und Trennen
@section Verbindung zum Server herstellen und trennen
@cindex Verbinden, mit dem Server
@@ -13207,7 +12784,7 @@ der Regel einen MySQL-Benutzernamen und üblicherweise auch ein Passwort
angeben. Wenn der Server auf einer anderen Maschine als der läuft, von der
Sie sich einloggen, müssen Sie auch einen Hostnamen angeben. Setzen Sie
sich mit Ihrem Administrator in Verbindung, um herauszubekommen, welche
-Verbindungsparamenter Sie benutzen sollten (das heisst welchen Host,
+Verbindungsparameter Sie benutzen sollten (das heißt welchen Host,
welchen Benutzername und welches Passwort Sie verwenden sollen). Wenn Sie
die richtigen Parameter kennen, sollten Sie sich wie folgt verbinden
können:
@@ -13263,7 +12840,8 @@ Die meisten Beispiele der folgenden Abschnitte setzen voraus, dass Sie mit
dem Server verbunden sind. Das wird durch @code{mysql>} angezeigt.
-@node Anfragen eingeben, Datenbankbenutzung, Verbinden und Trennen, Tutorial
+@node Entering queries, Database use, Connecting-disconnecting, Tutorial
+@c German node Anfragen eingeben
@section Anfragen eingeben
@cindex Absetzen, Anfragen
@@ -13329,7 +12907,7 @@ beeinflusst werden. (Um uns kurz zu fassen, zeigen wir die ``rows in
set''-Zeile in den weiteren Beispielen dieses Kapitels nicht mehr an.)
@end itemize
-Schlüsselwörter können in beliebiger Schreibweise (gross und klein)
+Schlüsselwörter können in beliebiger Schreibweise (Groß und klein)
eingegeben werden. Folgende Anfragen sind gleichwertig:
@example
@@ -13462,9 +13040,9 @@ mysql> SELECT USER()
Die @code{'>}- und @code{">}-Eingabeaufforderungen kommen bei der Sammlung
von Zeichenketten vor. In MySQL können Sie Zeichenketten wahlweise in
@samp{'}- oder @samp{"}-Zeichen eingeschlossen eingeben (zum Beispiel
-@code{'hallo'} oder @code{"tschüss"}), und @code{mysql} lässt Sie auch
+@code{'hallo'} oder @code{"tschüß"}), und @code{mysql} läßt Sie auch
Zeichenketten eingeben, die sich über mehrere Zeilen erstrecken. Wenn Sie
-eine @code{'>}- oder @code{">}-Eingabeaufforderung sehen, heisst das, dass
+eine @code{'>}- oder @code{">}-Eingabeaufforderung sehen, heißt das, dass
Sie eine Zeile eingegeben haben, die eine Zeichenkette enthält, die mit
@samp{'} oder @samp{"} beginnt, dass Sie aber noch nicht das entsprechende
beendende Zeichen (ebenfalls @samp{'} oder @samp{"}) eingegeben haben. Das
@@ -13490,8 +13068,8 @@ Anführungszeichen.)
Was machen Sie in diesem Fall? Das einfachste ist, den Befehl abzubrechen.
Sie können jetzt allerdings nicht einfach @code{\c} eingeben, weil
@code{mysql} es als Teil der Zeichenkette interpretieren würde, die es
-gerade sammelt! Geben Sie daher zuerst das schliessende Anführungszeichen
-ein, damit @code{mysql} weiss, dass die Zeichenkette zuende ist, und erst
+gerade sammelt! Geben Sie daher zuerst das schließende Anführungszeichen
+ein, damit @code{mysql} weiß, dass die Zeichenkette zuende ist, und erst
danach @code{\c}:
@example
@@ -13508,23 +13086,18 @@ Es ist wichtig, die Bedeutung der @code{'>}- und
eine nicht beendete Zeichenkette eingeben, werden alle folgenden Zeilen,
die Sie eingeben, von @code{mysql} ignoriert - inklusive einer Zeile, die
@code{QUIT} enthält! Das kann recht verwirrend sein, besonders dann, wenn
-Sie nicht wissen, dass Sie das schliessende Anführungszeichen eingeben
+Sie nicht wissen, dass Sie das schließende Anführungszeichen eingeben
müssen, bevor Sie den aktuellen Befehl abbrechen können.
-@node Datenbankbenutzung, Informationen bekommen, Anfragen eingeben, Tutorial
+@node Database use, Getting information, Entering queries, Tutorial
+@c German node Datenbankbenutzung
@section Eine Datenbank erzeugen und benutzen
@cindex Datenbanken, erzeugen
@cindex Datenbanken, benutzen
@cindex Erzeugen, Datenbanken
-@menu
-* Datenbank erzeugen:: Eine Datenbank erzeugen und auswählen
-* Tabellen erzeugen:: Eine Tabelle erzeugen
-* Tabellen füllen:: Daten in Tabellen einladen
-* Daten abrufen:: Informationen aus einer Tabelle abfragen
-@end menu
Jetzt, wo Sie wissen, wie Sie Befehle eingeben, ist es Zeit, auf eine
Datenbank zuzugreifen.
@@ -13610,7 +13183,15 @@ Wobei @code{ihr_mysql_name} der MySQL-Benutzername ist, der Ihnen
zugewiesen wurde.
-@node Datenbank erzeugen, Tabellen erzeugen, Datenbankbenutzung, Datenbankbenutzung
+@menu
+* Creating database::
+* Creating tables::
+* Loading tables::
+* Retrieving data::
+@end menu
+
+@node Creating database, Creating tables, Database use, Database use
+@c German node Datenbank erzeugen
@subsection Eine Datenbank erzeugen und auswählen
@cindex Auswählen, Datenbanken
@@ -13624,7 +13205,7 @@ müssen Sie sie selbst anlegen:
mysql> CREATE DATABASE menagerie;
@end example
-Unter Unix sind Datenbanknamen abhängig von der Gross-/Kleinschreibung (im
+Unter Unix sind Datenbanknamen abhängig von der Groß-/Kleinschreibung (im
Gegensatz zu SQL-Schlüsselwörtern), daher müssen Sie sich auf Ihre
Datenbank immer mit @code{menagerie} beziehen, nicht mit @code{Menagerie},
@code{MENAGERIE} oder irgend einer anderen Variante. Dasselbe gilt für
@@ -13663,7 +13244,8 @@ auf der Kommandozeile einzugeben, denn dann kann es durch andere Benutzer,
die auf Ihrer Maschine eingeloggt sind, ausspioniert werden.
-@node Tabellen erzeugen, Tabellen füllen, Datenbank erzeugen, Datenbankbenutzung
+@node Creating tables, Loading tables, Creating database, Database use
+@c German node Tabellen erzeugen
@subsection Eine Tabelle erzeugen
@cindex Tabellen, erzeugen
@@ -13778,7 +13360,8 @@ Namen der Spalten Ihrer Tabelle vergessen haben oder von welchem Datentyp
sie sind.
-@node Tabellen füllen, Daten abrufen, Tabellen erzeugen, Datenbankbenutzung
+@node Loading tables, Retrieving data, Creating tables, Database use
+@c German node Tabellen füllen
@subsection Daten in Tabellen einladen
@cindex Einladen, Tabellen
@@ -13832,7 +13415,7 @@ mysql> LOAD DATA LOCAL INFILE "pet.txt" INTO TABLE pet;
Sie können das Trennzeichen für die Spalten und das Zeichen für Zeilenende
im @code{LOAD DATA}-Statement explizit festlegen, wenn Sie wollen, aber
-vorgabemässig sind das das TAB-Zeichen und das Zeilenvorschub-Zeichen. Das
+vorgabemäßig sind das das TAB-Zeichen und das Zeilenvorschub-Zeichen. Das
reicht für das Statement aus, um die Datei @file{pet.txt} korrekt
einzulesen.
@@ -13859,7 +13442,8 @@ bedurft hätte, die anfänglichen Datensätze mit mehreren
DATA}-Statement zu verwenden.
-@node Daten abrufen, , Tabellen füllen, Datenbankbenutzung
+@node Retrieving data, , Loading tables, Database use
+@c German node Daten abrufen
@subsection Informationen aus einer Tabelle abfragen
@cindex Daten, abrufen
@@ -13867,17 +13451,6 @@ DATA}-Statement zu verwenden.
@cindex Abrufen, Daten aus Tabellen
@cindex Entladen, Tabellen
-@menu
-* Alles auswählen:: Alle Daten auswählen
-* Zeilen auswählen:: Bestimmte Zeilen auswählen
-* Spalten auswählen:: Bestimmte Spalten auswählen
-* Zeilen sortieren:: Zeilen sortieren
-* Datumsberechnungen:: Datumsberechnungen
-* Mit NULL arbeiten:: Mit @code{NULL}-Werten arbeiten
-* Suchmuster:: Übereinstimmende Suchmuster
-* Zeilen zählen:: Zeilen zählen
-* Mehrere Tabellen:: Mehr als eine Tabelle benutzen
-@end menu
Das @code{SELECT}-Statement wird benutzt, um Informationen aus einer
Tabelle herauszuziehen. Die allgemeine Form des Statements ist:
@@ -13896,7 +13469,20 @@ ist, kennzeichnet @code{gewünschte_bedingungen} die Bedingungen, mit denen
die Zeilen übereinstimmen müssen, damit sie abgefragt werden.
-@node Alles auswählen, Zeilen auswählen, Daten abrufen, Daten abrufen
+@menu
+* Selecting all::
+* Selecting rows::
+* Selecting columns::
+* Sorting rows::
+* Date calculations::
+* Working with NULL::
+* Pattern matching::
+* Counting rows::
+* Multiple tables::
+@end menu
+
+@node Selecting all, Selecting rows, Retrieving data, Retrieving data
+@c German node Alles auswählen
@subsubsection Alle Daten auswählen
Die einfachste Form von @code{SELECT} fragt alles aus einer Tabelle ab:
@@ -13952,14 +13538,15 @@ mysql> UPDATE pet SET geburtstag = "1989-08-31" WHERE name = "Bowser";
Wie gezeigt ist es einfach, eine ganze Tabelle abzufragen. Aber
typischerweise wird das selten gewünscht sein, besonders, wenn die Tabelle
-gross wird. Statt dessen werden Sie an der Antwort auf bestimmte Fragen
+Groß wird. Statt dessen werden Sie an der Antwort auf bestimmte Fragen
interessiert sein, wobei Sie ein paar Beschränkungen in Bezug auf die
Informationen, die Sie wollen, festlegen. Schauen wir uns einige
Auswahl-Anfragen an, hinsichtlich der Fragen in Bezug auf Ihre Haustiere,
die sie beantworten.
-@node Zeilen auswählen, Spalten auswählen, Alles auswählen, Daten abrufen
+@node Selecting rows, Selecting columns, Selecting all, Retrieving data
+@c German node Zeilen auswählen
@subsubsection Bestimmte Zeilen auswählen
@cindex Zeilen, auswählen
@@ -13983,7 +13570,7 @@ Die Ausgabe bestätigt, dass das Jahr inzwischen korrekt als 1989, nicht
1998, eingetragen ist.
Vergleiche von Zeichenketten achten normalerweise nicht auf
-Gross-/Kleinschreibung, daher können Sie den Namen als @code{"bowser"},
+Groß-/Kleinschreibung, daher können Sie den Namen als @code{"bowser"},
@code{"BOWSER"} usw. angeben. Das Anfrageergebnis wird dasselbe bleiben.
Sie können für jede Spalte Bedingungen festlegen, nicht nur für
@@ -14043,7 +13630,8 @@ mysql> SELECT * FROM pet WHERE (art = "Katze" AND geschlecht = "m")
@end example
-@node Spalten auswählen, Zeilen sortieren, Zeilen auswählen, Daten abrufen
+@node Selecting columns, Sorting rows, Selecting rows, Retrieving data
+@c German node Spalten auswählen
@subsubsection Bestimmte Spalten auswählen
@cindex Spalten, auswählen
@@ -14127,7 +13715,8 @@ mysql> SELECT name, art, geburtstag FROM pet
@end example
-@node Zeilen sortieren, Datumsberechnungen, Spalten auswählen, Daten abrufen
+@node Sorting rows, Date calculations, Selecting columns, Retrieving data
+@c German node Zeilen sortieren
@subsubsection Zeilen sortieren
@cindex Zeilen, sortieren
@@ -14207,7 +13796,8 @@ bezieht, die unmittelbar davor steht (@code{geburtstag}). @code{art}-Werte
werden nach wie vor in aufsteigender Reihenfolge sortiert.
-@node Datumsberechnungen, Mit NULL arbeiten, Zeilen sortieren, Daten abrufen
+@node Date calculations, Working with NULL, Sorting rows, Retrieving data
+@c German node Datumsberechnungen
@subsubsection Datumsberechnungen
@cindex Datumsberechnungen
@@ -14326,7 +13916,7 @@ mysql> SELECT name, geburtstag, sterbetag,
Die Anfrage benutzt @code{sterbetag IS NOT NULL} statt @code{sterbetag !=
NULL}, weil @code{NULL} ein spezieller Wert ist. Das wird später erklärt.
-@xref{Mit NULL arbeiten, , Mit @code{NULL}-Werten arbeiten}.
+@xref\{Working with NULL, , Mit @code{NULL}-Werten arbeiten}.
Was ist, wenn Sie wissen wollen, welche Tiere nächsten Monat Geburtstag
haben? Für diese Art von Berechnung sind Jahre und Tage irrelevant. Sie
@@ -14402,7 +13992,8 @@ muss die Addition nach @code{MOD()} erfolgen, weil wir ansonsten von
November (11) bis Januar (1) gehen würden.
-@node Mit NULL arbeiten, Suchmuster, Datumsberechnungen, Daten abrufen
+@node Working with NULL, Pattern matching, Date calculations, Retrieving data
+@c German node Mit NULL arbeiten
@subsubsection Mit @code{NULL}-Werten arbeiten
@findex NULL
@@ -14438,7 +14029,7 @@ mysql> SELECT 1 IS NULL, 1 IS NOT NULL;
@end example
In MySQL bedeutet 0 oder @code{NULL} logisch Falsch und alles sonstige
-bedeutet logisch Wahr. Der vorgabemässige Wahrheitswert einer Boolschen
+bedeutet logisch Wahr. Der vorgabemäßige Wahrheitswert einer Boolschen
Operation ist 1.
Diese besondere Behandlung von @code{NULL} ist der Grund, warum es im
@@ -14447,7 +14038,8 @@ anstelle von @code{sterbetag != NULL} festzustellen, welche Tiere nicht
mehr leben.
-@node Suchmuster, Zeilen zählen, Mit NULL arbeiten, Daten abrufen
+@node Pattern matching, Counting rows, Working with NULL, Retrieving data
+@c German node Suchmuster
@subsubsection Übereinstimmende Suchmuster
@cindex Übereinstimmende Suchmuster
@@ -14462,7 +14054,7 @@ basiert, die denen ähnlich sind, die von Unix-Hilfsprogrammen wie
SQL-Suchmuster-Übereinstimmung gestattet Ihnen, @samp{_} zu benutzen, um
ein einzelnes Zeichen und @samp{%}, um eine beliebige Anzahl von Zeichen
(inklusive des 0-Zeichens) zu finden. In den MySQL-SQL-Suchmustern spielt
-die Gross-/Kleinschreibung vorgabemässig keine Rolle. Einige Beispiele sind
+die Groß-/Kleinschreibung vorgabemäßig keine Rolle. Einige Beispiele sind
unten dargestellt. Beachten Sie, dass Sie @code{=} oder @code{!=} nicht
benutzen können, wenn Sie SQL-Suchmuster benutzen. Stattdessen müssen Sie
die @code{LIKE}- oder @code{NOT LIKE}-Vergleichsoperatoren benutzen.
@@ -14543,10 +14135,10 @@ voransteht. @samp{x*} zum Beispiel stimmt mit einer beliebigen Anzahl von
von Ziffern überein, und @samp{.*} mit jeder Anzahl von irgendetwas.
@item
-Reguläre Ausdrücke achten auf Gross-/Kleinschreibung, aber Sie können eine
+Reguläre Ausdrücke achten auf Groß-/Kleinschreibung, aber Sie können eine
Zeichenklasse benutzen, um beide Schreibungen zu finden, wenn Sie wollen.
-@samp{[aA]} zum Beispiel stimmt mit @samp{a} in Gross- und Kleinschreibung
-überein und @samp{[a-zA-Z]} mit jedem Buchstaben in Gross- und
+@samp{[aA]} zum Beispiel stimmt mit @samp{a} in Groß- und Kleinschreibung
+überein und @samp{[a-zA-Z]} mit jedem Buchstaben in Groß- und
Kleinschreibung.
@item
@@ -14576,8 +14168,8 @@ mysql> SELECT * FROM pet WHERE name REGEXP "^b";
+--------+-----------+---------+-------------+------------+------------+
@end example
-Vor MySQL-Version 3.23.4 achtet @code{REGEXP} auf Gross-/Kleinschreibung.
-Daher gibt diese Anfrage ein Ergebnis ohne Zeilen zurück. Um sowohl Gross-
+Vor MySQL-Version 3.23.4 achtet @code{REGEXP} auf Groß-/Kleinschreibung.
+Daher gibt diese Anfrage ein Ergebnis ohne Zeilen zurück. Um sowohl Groß-
als auch Kleinschreibung von @samp{b} zu finden, benutzen Sie statt dessen
folgende Anfrage:
@@ -14585,7 +14177,7 @@ folgende Anfrage:
mysql> SELECT * FROM pet WHERE name REGEXP "^[bB]";
@end example
-Ab MySQL 3.23.4 müssen Sie, um die Beachtung der Gross-/Kleinschreibung in
+Ab MySQL 3.23.4 müssen Sie, um die Beachtung der Groß-/Kleinschreibung in
einem @code{REGEXP}-Vergleich zu erzwingen, das @code{BINARY}-Schlüsselwort
verwenden, um eine der Zeichenketten zu einer binären Zeichenkette zu
machen. Diese Anfrage stimmt nur mit @samp{b} in Kleinschreibung am Anfang
@@ -14608,7 +14200,7 @@ mysql> SELECT * FROM pet WHERE name REGEXP "fy$";
+--------+-----------+---------+-------------+------------+-----------+
@end example
-Um Namen zu finden, die @samp{w} in Gross- oder Kleinschreibung enthalten,
+Um Namen zu finden, die @samp{w} in Groß- oder Kleinschreibung enthalten,
benutzen Sie diese Anfrage:
@example
@@ -14656,7 +14248,8 @@ mysql> SELECT * FROM pet WHERE name REGEXP "^.@{5@}$";
@end example
-@node Zeilen zählen, Mehrere Tabellen, Suchmuster, Daten abrufen
+@node Counting rows, Multiple tables, Pattern matching, Retrieving data
+@c German node Zeilen zählen
@subsubsection Zeilen zählen
@cindex Zeilen, zählen
@@ -14802,7 +14395,8 @@ mysql> SELECT art, geschlecht, COUNT(*) FROM pet
@end example
-@node Mehrere Tabellen, , Zeilen zählen, Daten abrufen
+@node Multiple tables, , Counting rows, Retrieving data
+@c German node Mehrere Tabellen
@subsubsection Mehr als eine Tabelle benutzen
@cindex Tabellen, mehrere
@@ -14932,7 +14526,8 @@ Spalten verweisen zu können und um auseinander zu halten, auf welche
Instanz der Tabelle sich jede Spaltenreferenz bezieht.
-@node Informationen bekommen, Beispiele, Datenbankbenutzung, Tutorial
+@node Getting information, Examples, Database use, Tutorial
+@c German node Informationen bekommen
@section Informationen über Datenbanken und Tabellen
@cindex Datenbanken, Informationen über
@@ -14941,7 +14536,7 @@ Instanz der Tabelle sich jede Spaltenreferenz bezieht.
Was ist, wenn Sie den Namen einer Datenbank oder Tabelle vergessen haben
oder für eine gegebene Tabelle die Struktur nicht mehr kennen (wie zum
-Beispiel die Spalten heissen)? MySQL löst solcherlei Probleme mit diversen
+Beispiel die Spalten heißen)? MySQL löst solcherlei Probleme mit diversen
Statements, die Informationen über die Datenbanken und Tabellen
bereitstellen, die es unterstützt.
@@ -15001,7 +14596,8 @@ Wenn Sie Indexe auf eine Tabelle haben, zeigt Ihnen @code{SHOW INDEX FROM
tabelle} Informationen über diese an.
-@node Beispiele, Stapelbetrieb, Informationen bekommen, Tutorial
+@node Examples, Batch mode, Getting information, Tutorial
+@c German node Beispiele
@section Beispiele gebräuchlicher Anfragen (Queries)
@cindex Anfragen, Beispiele
@@ -15057,19 +14653,21 @@ mysql> SELECT * FROM shop;
+---------+---------+-------+
@end example
+
+
@menu
-* Beispiel Maximum-Spalte:: Der höchste Wert einer Spalte
-* Beispiel Maximum-Zeile:: Die Zeile, die den höchsten Wert einer bestimmten Spalte enthält
-* Beispiel Maximum-Spalte-Gruppe:: Höchster Wert einer Spalte pro Gruppe
-* Beispiel Maximum-Spalte-Gruppe-Zeile:: Die Zeilen, die das gruppenweise Maximum eines bestimmten Felds enthalten
-* Beispiel Benutzer-Variablen:: Wie Benutzer-Variablen verwendet werden
-* Beispiel Fremdschlüssel:: Wie Fremdschlüssel (Foreign Keys) verwendet werden
-* Suche über zwei Schlüssel:: Über zwei Schlüssel suchen
-* Tage berechnen:: Besuche pro Tag berechnen
+* example-Maximum-column::
+* example-Maximum-row::
+* example-Maximum-column-group::
+* example-Maximum-column-group-row::
+* example-user-variables::
+* example-Foreign keys::
+* Searching on two keys::
+* Calculating days::
@end menu
-
-@node Beispiel Maximum-Spalte, Beispiel Maximum-Zeile, Beispiele, Beispiele
+@node example-Maximum-column, example-Maximum-row, Examples, Examples
+@c German node Beispiel Maximum-Spalte
@subsection Der höchste Wert einer Spalte
``Was ist die höchste Artikelnummer?''
@@ -15085,7 +14683,8 @@ SELECT MAX(artikel) AS artikel FROM shop
@end example
-@node Beispiel Maximum-Zeile, Beispiel Maximum-Spalte-Gruppe, Beispiel Maximum-Spalte, Beispiele
+@node example-Maximum-row, example-Maximum-column-group, example-Maximum-column, Examples
+@c German node Beispiel Maximum-Zeile
@subsection Die Zeile, die den höchsten Wert einer bestimmten Spalte enthält
``Suche Artikelnummer, Händler und Preis des teuersten Artikels.''
@@ -15129,7 +14728,8 @@ LIMIT 1
alle 19.95 kosten), zeigt die @code{LIMIT}-Lösung nur einen davon!
-@node Beispiel Maximum-Spalte-Gruppe, Beispiel Maximum-Spalte-Gruppe-Zeile, Beispiel Maximum-Zeile, Beispiele
+@node example-Maximum-column-group, example-Maximum-column-group-row, example-Maximum-row, Examples
+@c German node Beispiel Maximum-Spalte-Gruppe
@subsection Höchster Wert einer Spalte pro Gruppe
``Was ist der höchste Preis pro Artikel?''
@@ -15150,7 +14750,8 @@ GROUP BY artikel
@end example
-@node Beispiel Maximum-Spalte-Gruppe-Zeile, Beispiel Benutzer-Variablen, Beispiel Maximum-Spalte-Gruppe, Beispiele
+@node example-Maximum-column-group-row, example-user-variables, example-Maximum-column-group, Examples
+@c German node Beispiel Maximum-Spalte-Gruppe-Zeile
@subsection Die Zeilen, die das gruppenweise Maximum eines bestimmten Felds enthalten
``Suche für jeden Artikel den oder die Händler mit den teuersten Preisen.''
@@ -15223,13 +14824,14 @@ Das letzte Beispiel kann etwas effizienter gemacht werden, wenn man das
Aufteilen der verketteten Spalte im Client durchführt.
-@node Beispiel Benutzer-Variablen, Beispiel-Foreign keys, Beispiel Maximum-Spalte-Gruppe-Zeile, Beispiele
+@node example-user-variables, example-Foreign keys, example-Maximum-column-group-row, Examples
+@c German node Beispiel Benutzer-Variablen
@subsection Wie Benutzer-Variablen verwendet werden
Sie können MySQL-Benutzer-Variablen verwenden, um Ergebnisse
zwischenzuspeichern, ohne sie in temporäre Variablen im Client speichern zu
müssen.
-@xref{Variablen}.
+@xref\{Variables}.
Um zum Beispiel die Artikel mit dem höchsten und dem niedrigsten Preis
herauszufinden, können Sie folgendes machen:
@@ -15247,7 +14849,8 @@ select * from shop where preis=@@min_preis or preis=@@max_preis;
@end example
-@node Beispiel Fremdschlüssel, Suche über zwei Schlüssel, Beispiel Benutzer-Variablen, Beispiele
+@node example-Foreign keys, Searching on two keys, example-user-variables, Examples
+@c German node Beispiel Fremdschlüssel
@subsection Wie Fremdschlüssel (Foreign Keys) verwendet werden
@cindex Fremdschlüssel
@@ -15272,7 +14875,7 @@ CREATE TABLE personen (
CREATE TABLE hemden (
id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT,
stil ENUM('t-shirt', 'polo', 'dress') NOT NULL,
- farbe ENUM('rot', 'blau', 'orange', 'weiss', 'schwarz') NOT NULL,
+ farbe ENUM('rot', 'blau', 'orange', 'weiß', 'schwarz') NOT NULL,
besitzer SMALLINT UNSIGNED NOT NULL references personen,
PRIMARY KEY (id)
);
@@ -15282,7 +14885,7 @@ INSERT INTO personen VALUES (NULL, 'Antonio Paz');
INSERT INTO hemden VALUES
(NULL, 'polo', 'blau', LAST_INSERT_ID()),
-(NULL, 'dress', 'weiss', LAST_INSERT_ID()),
+(NULL, 'dress', 'weiß', LAST_INSERT_ID()),
(NULL, 't-shirt', 'blau', LAST_INSERT_ID());
@@ -15292,7 +14895,7 @@ INSERT INTO hemden VALUES
(NULL, 'dress', 'orange', LAST_INSERT_ID()),
(NULL, 'polo', 'rot', LAST_INSERT_ID()),
(NULL, 'dress', 'blau', LAST_INSERT_ID()),
-(NULL, 't-shirt', 'weiss', LAST_INSERT_ID());
+(NULL, 't-shirt', 'weiß', LAST_INSERT_ID());
SELECT * FROM personen;
@@ -15308,19 +14911,19 @@ SELECT * FROM hemden;
| id | stil | farbe | besitzer |
+----+---------+--------+----------+
| 1 | polo | blau | 1 |
-| 2 | dress | weiss | 1 |
+| 2 | dress | weiß | 1 |
| 3 | t-shirt | blau | 1 |
| 4 | dress | orange | 2 |
| 5 | polo | rot | 2 |
| 6 | dress | blau | 2 |
-| 7 | t-shirt | weiss | 2 |
+| 7 | t-shirt | weiß | 2 |
+----+---------+--------+----------+
SELECT h.* FROM personen p, hemden h
WHERE p.name LIKE 'Lilliana%'
AND h.besitzer = p.id
- AND h.farbe <> 'weiss';
+ AND h.farbe <> 'weiß';
+----+-------+--------+----------+
| id | stil | farbe | besitzer |
@@ -15332,7 +14935,8 @@ SELECT h.* FROM personen p, hemden h
@end example
-@node Suche über zwei Schlüssel, Tage berechnen, Beispiel-Fremdschlüssel, Beispiele
+@node Searching on two keys, Calculating days, example-Foreign keys, Examples
+@c German node Suche über zwei Schlüssel
@subsection Über zwei Schlüssel suchen
@findex UNION
@@ -15370,7 +14974,8 @@ Diese Möglichkeit der Anfrage ist im Endeffekt ein @code{UNION} von zwei
Anfragen.
-@node Tage berechnen, , Über zwei Schlüssel suchen, Beispiele
+@node Calculating days, , Searching on two keys, Examples
+@c German node Tage berechnen
@subsection Besuche pro Tag berechnen
@findex BIT_OR
@@ -15403,7 +15008,8 @@ Jahr-Monats-Kombination benutzt wurden, bei automatischer Entfernung
doppelter Einträge (Duplikate).
-@node Stapelbetrieb, Twin, Beispiele, Tutorial
+@node Batch mode, Twin, Examples, Tutorial
+@c German node Stapelbetrieb
@section @code{mysql} im Stapelbetrieb (Batch Mode)
@cindex Modi, Stapel
@@ -15453,7 +15059,7 @@ nicht alles noch einmal tippen, sondern editieren einfach Ihr Skript, um
den Fehler zu beheben, und weisen @code{mysql} an, es erneut auszuführen.
@item
-Wenn Sie eine Anfrage haben, die eine grössere Ausgabe erzeugt, können Sie
+Wenn Sie eine Anfrage haben, die eine größere Ausgabe erzeugt, können Sie
die Ausgabe durch einen Pager laufen lassen, statt zuzusehen, wie Sie über
den Bildschirm flimmert:
@@ -15511,16 +15117,17 @@ benutzen Sie @code{mysql -t}. Um die Befehle auszugeben, die ausgeführt
werden, benutzen Sie @code{mysql -vvv}.
-@node Twin, Apache, Stapelbetrieb, Tutorial
+@node Twin, Apache, Batch mode, Tutorial
+@c German node Twin
@section Anfragen aus dem Zwillings-Projekt
@cindex Zwillingsforschung, Anfragen
@cindex Anfragen, Zwillingsforschungs-Projekt
Bei Analytikerna und Lentus haben wir die Systeme und die Feldarbeit für
-ein grosses Forschungsprojekt gemacht. Dieses Projekt ist eine
+ein großes Forschungsprojekt gemacht. Dieses Projekt ist eine
Zusammenarbeit zwischen dem Institut für Umweltmedizin des Karolinska
-Institutet, Stockholm, und der Abteilung für klinische Forschung bei
+Institutes, Stockholm, und der Abteilung für klinische Forschung bei
Altersprozessen und Psychologie der University of Southern California.
Das Projekt beinhaltet einen Screening-Teil, bei dem alle Zwillinge in
@@ -15545,13 +15152,15 @@ die Perl und MySQL benutzt.
Jeden Abend werden alle Daten der Interviews in eine MySQL-Datenbank
verschoben.
+
+
@menu
-* Twin-Pool:: Alle nicht verteilten Zwillinge finden
-* Twin-Ereignis:: Eine Tabelle über den Zustand von Zwillingspaaren zeigen
+* Twin pool::
+* Twin event::
@end menu
-
-@node Twin-Pool, Twin-Ereignis, Twin, Twin
+@node Twin pool, Twin event, Twin, Twin
+@c German node Twin-Pool
@subsection Alle nicht verteilten Zwillinge finden
Mit folgender Anfrage wird festgelegt, wer in den zweiten Teil des Projekts
@@ -15679,7 +15288,8 @@ Die aktuelle Anzahl von Datensätzen in den oben benutzten Tabellen:
@end multitable
-@node Twin-Ereignis, , Twin-Pool, Twin
+@node Twin event, , Twin pool, Twin
+@c German node Twin-Ereignis
@subsection Eine Tabelle über den Zustand von Zwillingspaaren zeigen
Jedes Interview endet mit einem Statuscode, genannt @code{ereignis}. Die
@@ -15713,13 +15323,17 @@ group by
@node Apache, , Twin, Tutorial
+@c German node Apache
@section MySQL mit Apache benutzen
@cindex Apache
+
+
+
Der Contrib-Abschnitt beinhaltet Programme, mit denen Sie Ihre Benutzer
durch eine MySQL-Datenbank authentifizieren können, und mit denen Sie Ihre
-Logdatein in eine MySQL-Tabelle schreiben können. @xref{Contrib}.
+Logdateien in eine MySQL-Tabelle schreiben können. @xref{Contrib}.
Sie können das Log-Format von Apache so ändern, dass es durch MySQL leicht
gelesen werden kann, indem Sie folgendes in die Apache-Konfigurationsdatei
@@ -15739,38 +15353,41 @@ FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' ESCAPED BY '\\'
@end example
+@node MySQL Database Administration, MySQL Optimisation, Tutorial, Top
+@c German node MySQL-Datenbankadministration
+@chapter MySQL-Datenbankadministration
-@node MySQL-Datenbankadministration, MySQL-Optimierung, Tutorial, Top
-@chapter MySQL-Datenbankadministration
@menu
-* MySQL konfigurieren:: MySQL konfigurieren
-* Berechtigungssystem:: Allgemeine Sicherheitsaspekte und das MySQL-Zugriffsberechtigungssystem
-* Benutzerkontenverwaltung:: MySQL-Benutzerkontenverwaltung
-* Katastrophenschutz und Wiederherstellung:: Katastrophenschutz und Wiederherstellung
-* Datenbankadministration:: Datenbankadministration Sprachreferenz
-* Lokalisierung:: MySQL-Lokalisierung und internationaler Gebrauch
-* Serverseitige Skripte:: Serverseitige Skripte und Dienstprogramme für MySQL
-* Clientseitige Skripte:: Clientseitige Skripte und Dienstprogramme für MySQL
-* Log-Dateien:: Die MySQL-Log-Dateien
-* Replikation:: Replikation in MySQL
+* Configuring MySQL::
+* Privilege system::
+* User Account Management::
+* Disaster Prevention::
+* Database Administration::
+* Localisation::
+* Server-Side Scripts::
+* Client-Side Scripts::
+* Log Files::
+* Replication::
@end menu
-
-@node MySQL konfigurieren, Berechtigungssystem, MySQL-Datenbankadministration, MySQL-Datenbankadministration
+@node Configuring MySQL, Privilege system, MySQL Database Administration, MySQL Database Administration
+@c German node MySQL konfigurieren
@section MySQL konfigurieren
+
+
@menu
-* Kommandozeilenoptionen:: mysqld-Kommandozeilenoptionen
-* Optionsdateien:: my.cnf-Optionsdateien
-* Viele Server installieren:: Viele Server auf derselben Maschine installieren
-* Mehrere Server:: Viele MySQL-Server auf derselben Maschine laufen lassen
+* Command-line options::
+* Option files::
+* Installing many servers::
+* Multiple servers::
@end menu
-
-@node Kommandozeilenoptionen, Optionsdateien, MySQL konfigurieren, MySQL konfigurieren
+@node Command-line options, Option files, Configuring MySQL, Configuring MySQL
+@c German node Kommandozeilenoptionen
@subsection mysqld-Kommandozeilenoptionen
@findex Kommandozeilenoptionen
@@ -15781,14 +15398,14 @@ FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' ESCAPED BY '\\'
@table @code
@item --ansi
-ANSI-SQL-Syntax anstelle von MySQL-Syntax benutzen. @xref{ANSI-Modus}.
+ANSI-SQL-Syntax anstelle von MySQL-Syntax benutzen. @xref\{ANSI mode}.
@item -b, --basedir=path
Pfad zum Installationsverzeichnis. Gewöhnlich werden alle Pfade relativ zu
diesem aufgelöst.
@item --big-tables
-Grosse Ergebnismengen zulassen, indem alle temporären Mengen in eine Datei
+große Ergebnismengen zulassen, indem alle temporären Mengen in eine Datei
gesichert werden. Das löst die meisten 'table full'-Fehler, verlangsamt
aber in den Fällen Anfragen, in denen Tabellen im Speicher ausreichen
würden. Ab Version 3.23.2 ist MySQL in der Lage, das automatisch zu lösen,
@@ -15799,11 +15416,11 @@ auf Festplatten-Tabellen umgeschaltet wird, wenn das nötig ist.
IP-Adresse zum Anbinden (bind).
@item --character-sets-dir=path
-Verzeichnis, wo Zeichensätze sind. @xref{Zeichensätze}.
+Verzeichnis, wo Zeichensätze sind. @xref\{Character sets}.
@item --chroot=path
Chroot den @code{mysqld}-Daemon beim Start. Empfohlene
-Sicherheitsmassnahme. Wird allerdings @code{LOAD DATA INFILE} und
+Sicherheitsmaßnahme. Wird allerdings @code{LOAD DATA INFILE} und
@code{SELECT ... INTO OUTFILE} etwas einschränken.
@item --core-file
@@ -15815,20 +15432,20 @@ angeben. @xref{safe_mysqld, ,@code{safe_mysqld}}.
Pfad zum Datenbank-Wurzelverzeichnis.
@item --default-character-set=charset
-Setzt den vorgabemässigen Zeichensatz. @xref{Zeichensätze}.
+Setzt den vorgabemäßigen Zeichensatz. @xref\{Character sets}.
@item --default-table-type=type
-Setzt den vorgabemässigen Tabellentyp für Tabellen. @xref{Tabellentypen}.
+Setzt den vorgabemäßigen Tabellentyp für Tabellen. @xref\{Table types}.
@item --debug[...]=
Wenn MySQL mit @code{--with-debug} konfiguriert ist, können Sie diese
Option benutzen, um eine Trace-Datei darüber zu erhalten, was @code{mysqld}
-tut. @xref{Trace-Dateien}.
+tut. @xref\{Making trace files}.
@item --delay-key-write-for-all-tables
Schlüsselpuffer (Key Buffer) für jegliche @code{MyISAM}-Tabellen nicht
leeren (flush).
-@xref{Serverparameter}.
+@xref\{Server parameters}.
@item --enable-locking
System-Sperren einschalten. Beachten Sie, dass Sie bei der Benutzung dieser
@@ -15838,14 +15455,14 @@ Linux), mysqld leicht zum Deadlock bringen können.
@item -T, --exit-info
Eine Bit-Maske verschiedener Flags, mit denen man den mysqld-Server
debuggen kann. Man sollte diese Option nicht benutzen, wenn man nicht ganz
-genau weiss, was sie tut!
+genau weiß, was sie tut!
@item --flush
Alle Änderungen nach jedem SQL-Befehl auf Platte zurückschreiben (flush).
Normalerweise schreibt MySQL alle Änderungen nach jedem SQL-Befehl auf
-Platte und lässt das Betriebssystem sich um das Synchronisieren auf Platte
+Platte und läßt das Betriebssystem sich um das Synchronisieren auf Platte
kümmern.
-@xref{Abstürze}.
+@xref\{Crashing}.
@item -?, --help
Kurze Hilfe ausgeben und beenden.
@@ -15855,10 +15472,10 @@ Beim Start SQL-Befehle aus dieser Datei lesen.
@item -L, --language=...
Client-Fehlermeldungen in der angegebenen Sprache. Kann als voller Pfad
-angegeben werden. @xref{Sprachen}.
+angegeben werden. @xref\{Languages}.
@item -l, --log[=datei]
-Loggt Verbindungen und Anfragen in datei. @xref{Anfragen-Log-Datei}.
+Loggt Verbindungen und Anfragen in datei. @xref\{Query log}.
@item --log-isam[=datei]
Loggt alle ISAM- / MyISAM-Änderungen in datei (wird nur benutzt, um ISAM /
@@ -15866,12 +15483,12 @@ MyISAM zu debuggen).
@item --log-slow-queries[=datei]
Loggt alle Anfragen, die länger als @code{long_query_time} Sekunden für die
-Ausführung benötigt haben, in datei. @xref{Langsame-Anfragen-Log-Datei}.
+Ausführung benötigt haben, in datei. @xref\{Slow query log}.
@item --log-update[=datei]
Loggt Updates in @code{datei.#}, wobei @code{#} eine eindeutige Zahl ist,
falls nicht vorgegeben.
-@xref{Update-Log-Datei}.
+@xref\{Update log}.
@item --log-long-format
Loggt einige zusätzliche Informationen ins Update-Log. Wenn Sie
@@ -15885,7 +15502,7 @@ Selects. Das kann auch mit @code{@{INSERT | REPLACE | UPDATE | DELETE@}
LOW_PRIORITY ...} durchgeführt werden, um lediglich die Priorität einer
einzelnen Anfrage zu verringern, oder mit @code{SET OPTION
SQL_LOW_PRIORITY_UPDATES=1}, um die Priorität in einem Thread zu ändern.
-@xref{Tabellensperren}.
+@xref\{Table locking}.
@item --memlock
Sperrt den @code{mysqld}-Prozess in den Arbeitsspeicher. Das funktioniert
@@ -15898,9 +15515,9 @@ Kombination von @code{DEFAULT}, @code{BACKUP}, @code{FORCE} oder
@code{QUICK} ist. Sie können sie auch explizit auf @code{""} setzen, wenn
Sie diese Option ausschalten wollen. Wenn die Option benutzt wird,
überprüft @code{mysqld} beim Öffnen, ob die Tabelle als zerstört markiert
-ist oder ob die Tabelle nicht ordnungsgemäss geschlossen wurde. (Die letzte
+ist oder ob die Tabelle nicht ordnungsgemäß geschlossen wurde. (Die letzte
Option funktioniert nur, wenn Sie mysqld mit @code{--skip-locking} laufen
-lassen). Wenn das der Fall ist, lässt @code{mysqld} eine Überprüfung der
+lassen). Wenn das der Fall ist, läßt @code{mysqld} eine Überprüfung der
Tabelle laufen. Wenn die Tabelle beschädigt war, versucht @code{mysqld},
sie zu reparieren.
@@ -15937,14 +15554,14 @@ Das 3.20-Protokoll für Kompatibilität mit einigen sehr alten Clients
benutzen.
@item --one-thread
-Nur einen Thread benutzen (zum Debuggen unter Linux). @xref{Server debuggen}.
+Nur einen Thread benutzen (zum Debuggen unter Linux). @xref\{Debugging server}.
@item -O, --set-variable var=option
Weist einer Variablen einen Wert zu. @code{--help} listet Variablen auf.
Sie finden eine komplette Beschreibung aller Variablen im @code{SHOW
VARIABLES}-Abschnitt dieses Handbuchs. @xref{SHOW VARIABLES}. Der Abschnitt
über das Tunen der Serverparameter enthält Informationen darüber, wie man
-diese optimiert. @xref{Serverparameter}.
+diese optimiert. @xref\{Server parameters}.
@item --safe-mode
Einige Optimierungsschritte überspringen. Setzt
@@ -15966,7 +15583,7 @@ wenn Sie der Meinung sind, ein Bug in diesem Feature gefunden zu haben.)
@item --skip-delay-key-write
Die @code{delay_key_write}-Option für alle Tabellen ignorieren.
-@xref{Serverparameter}.
+@xref\{Server parameters}.
@item --skip-grant-tables
Diese Option veranlasst den Server, das Zugriffsrechte-System überhaupt
@@ -15981,7 +15598,7 @@ statt dessen bei jeder Verbindung beim DNS-Server anfragen. @xref{DNS}.
@item --skip-locking
System-Sperren nicht benutzen. Um @code{isamchk} oder @code{myisamchk}
-auszuführen, müssen Sie den Server herunter fahren. @xref{Stabilität}.
+auszuführen, müssen Sie den Server herunter fahren. @xref\{Stability}.
Beachten Sie, dass Sie in MySQL-Version 3.23 @code{REPAIR} und @code{CHECK}
benutzen können, um @code{MyISAM}-Tabellen zu reparieren / zu prüfen.
@@ -15998,7 +15615,7 @@ ausdrücklich empfohlen für Systeme, auf denen nur lokale Anfragen
@item --skip-new
Keine neuen, möglicherweise falschen Routinen benutzen. Setzt
-@code{--skip-delay-key-write} voraus. Setzt ausserdem den vorgabemässigen
+@code{--skip-delay-key-write} voraus. Setzt ausserdem den vorgabemäßigen
Tabellentyp auf @code{ISAM}. @xref{ISAM}.
@item --skip-symlink
@@ -16018,14 +15635,14 @@ Keine 'SHOW DATABASE'-Befehle zulassen, wenn der Benutzer keine
@item --skip-stack-trace
Keine Stack-Traces schreiben. Diese Option ist nützlich, wenn Sie
-@code{mysqld} unter einem Debugger laufen lassen. @xref{Server debuggen}.
+@code{mysqld} unter einem Debugger laufen lassen. @xref\{Debugging server}.
@item --skip-thread-priority
Benutzung von Thread-Prioritäten abschalten, um schnellere Antwortzeiten zu
erzielen.
@item --socket=pfad
-Socket-Datei, die anstelle des vorgabemässigen @code{/tmp/mysql.sock} für
+Socket-Datei, die anstelle des vorgabemäßigen @code{/tmp/mysql.sock} für
lokale Verbindungen benutzt wird.
@item --sql-mode=option[,option[,option...]]
@@ -16036,14 +15653,14 @@ sein (@code{""}), wenn Sie dies zurücksetzen wollen.
Alle oben angegebenen Optionen festlegen ist dasselbe wie --ansi benutzen.
Mit dieser Option kann man nur benötigte SQL-Modi anschalten.
-@xref{ANSI-Modus}.
+@xref\{ANSI mode}.
@item transaction-isolation= @{ READ-UNCOMMITTED | READ-COMMITTED | REPEATABLE-READ | SERIALIZABLE @}
-Setzt das vorgabemässige Transaktions-Isolations-Level. @xref{SET
+Setzt das vorgabemäßige Transaktions-Isolations-Level. @xref{SET
TRANSACTION}.
@item -t, --tmpdir=pfad
-Pfad für temporäre Dateien. Es kann nützlich sein, wenn Ihr vorgabemässiges
+Pfad für temporäre Dateien. Es kann nützlich sein, wenn Ihr vorgabemäßiges
@code{/tmp}-Verzeichnis auf einer Partition liegt, die zu klein ist, um
temporäre Tabellen zu speichern.
@@ -16057,19 +15674,20 @@ Versionsinformationen ausgeben und beenden.
@item -W, --warnings
Warnmeldungen wie @code{Aborted connection...} in die @code{.err}-Datei
-ausgeben. @xref{Kommunikationsfehler}.
+ausgeben. @xref\{Communication errors}.
@end table
-@node Optionsdateien, Viele Server installieren, Kommandozeilenoptionen, MySQL konfigurieren
+@node Option files, Installing many servers, Command-line options, Configuring MySQL
+@c German node Optionsdateien
@subsection my.cnf-Optionsdateien
-@cindex Vorgabemässige Optionen
+@cindex Vorgabemäßige Optionen
@cindex Optionsdateien
-@cindex Erzeugen, vorgabemässige Startoptionen
-@cindex Startoptionen, vorgabemässige
+@cindex Erzeugen, vorgabemäßige Startoptionen
+@cindex Startoptionen, vorgabemäßige
-Seit Version 3.22 kann MySQL vorgabemässige Startoptionen für den Server
+Seit Version 3.22 kann MySQL vorgabemäßige Startoptionen für den Server
und für Clients aus Optionsdateien lesen.
MySQL liest Vorgabeoptionen aus folgenden Dateien unter Unix:
@@ -16090,7 +15708,7 @@ das Verzeichnis ist, das zur Konfigurationszeit festgelegt wurde, nicht
das, das mit @code{--datadir} festgelegt wird, wenn @code{mysqld} startet!
(@code{--datadir} hat keinen Einfluss darauf, wo der Server nach
Optionsdateien sucht, denn er sucht nach ihnen, bevor er irgend welche
-Kommandozeilenargumente verareitet.)
+Kommandozeilenargumente verarbeitet.)
MySQL liest Vorgabeoptionen aus folgenden Dateien unter Windows:
@@ -16115,7 +15733,7 @@ auf der Kommandozeile festgelegt werden, erlangen Vorrang vor Optionen in
jeglichen Optionsdateien. Einige Optionen können durch Umgebungsvariablen
festgelegt werden. Optionen, die auf der Kommandozeile oder in
Optionsdateien festgelegt werden, haben Vorrang vor Werten in
-Umgebungsvariablen. @xref{Umgebungsvariablen}.
+Umgebungsvariablen. @xref\{Environment variables}.
Folgende Programme unterstützen Optionsdateien: @code{mysql},
@code{mysqladmin}, @code{mysqld}, @code{mysqldump}, @code{mysqlimport},
@code{mysql.server}, @code{myisamchk} und @code{myisampack}.
@@ -16201,7 +15819,7 @@ in den Dateien mit Namen @file{my-xxxx.cnf} im
suchen Sie im @file{DIR/support-files}-Verzeichnis, wobei @code{DIR} der
Pfadname zum MySQL-Installationsverzeichnis ist (typischerweise
@file{/usr/local/mysql}). Aktuell finden Sie dort beispielhafte
-Konfigurationsdateien für kleine, mittlere, grosse und sehr grosse Systeme.
+Konfigurationsdateien für kleine, mittlere, große und sehr große Systeme.
Sie können @file{my-xxxx.cnf} in Ihr Heimatverzeichnis kopieren, um damit
zu experimentieren (benennen Sie die Kopie in @file{.my.cnf} um).
@@ -16222,7 +15840,7 @@ zuerst angegeben werden müssen, damit sie funktionieren!
Hinweis für Entwickler: Optionsdatei-Handhabung ist schlicht dadurch
implementiert, dass alle übereinstimmenden Optionen verarbeitet werden
-(das heisst, Optionen in der entsprechenden Gruppe), vor jeglichen
+(das heißt, Optionen in der entsprechenden Gruppe), vor jeglichen
Kommandozeilen-Argumenten. Das funktioniert sehr gut bei Programmen, die
die letzte Instanz einer Option benutzen, die mehrfach festgelegt wurde.
Wenn Sie ein altes Programm benutzen, das mehrfach festgelegte Optionen auf
@@ -16244,7 +15862,8 @@ shell> my_print_defaults client mysql
Die Ausgabe enthält alle Optionen für die Gruppen 'client' und 'mysql'.
-@node Viele Server installieren, Mehrere Server, Optionsdateien, MySQL konfigurieren
+@node Installing many servers, Multiple servers, Option files, Configuring MySQL
+@c German node Viele Server installieren
@subsection Viele Server auf derselben Maschine installieren
@cindex Nach der Installation, mehrere Server
@@ -16275,7 +15894,7 @@ shell> bin/safe_mysqld &
Der Umgebungsvariablen-Appendix beinhaltet eine Liste anderer
Umgebungsvariablen, die Sie benutzen können, um @code{mysqld} zu steuern.
-@xref{Umgebungsvariablen}.
+@xref\{Environment variables}.
Der oben gezeigte Weg ist die 'schnelle und schmutzige' Lösung, die man
üblicherweise zum Testen benutzt. Das nette daran ist, dass alle
@@ -16283,7 +15902,7 @@ Verbindungen, die Sie in obiger Shell aufbauen, automatisch an den neuen
laufenden Server weiter geleitet werden!
Wenn Sie dasselbe dauerhafter durchführen wollen, sollten Sie für jeden
-Server eine Optionsdatei erzeugen. @xref{Optionsdateien}. In Ihrem
+Server eine Optionsdatei erzeugen. @xref\{Option files}. In Ihrem
Startskript, das beim Hochfahren ausgeführt wird (mysql.server?) sollten
Sie für beide Server folgendes festlegen:
@@ -16315,7 +15934,7 @@ unterschiedlich festlegen:
@item bdb-tmpdir=pfad
@end table
-@xref{Kommandozeilenoptionen}.
+@xref\{Command-line options}.
Wenn Sie binäre MySQL-Versionen installieren (.tar-Dateien) und sie mit
@code{./bin/safe_mysqld} starten, müssen Sie in den meisten Fällen
@@ -16323,12 +15942,10 @@ lediglich die @code{socket}- und @code{port}-Argumente in
@code{safe_mysqld} hinzufügen / ändern.
-@menu
-* Mehrere Server:: Viele MySQL-Server auf derselben Maschine laufen lassen
-@end menu
-@node Mehrere Server, , Viele Server installieren, MySQL konfigurieren
+@node Multiple servers, , Installing many servers, Configuring MySQL
+@c German node Mehrere Server
@subsection Viele MySQL-Server auf derselben Maschine laufen lassen
@cindex Mehrere Server
@@ -16358,7 +15975,7 @@ shell> ./configure --with-tcp-port=port_nummer \
@end example
Hier müssen @code{port_nummer} und @code{datei} anders als die
-vorgabemässigen Werte sein. Der @code{--prefix}-Wert sollte ein
+vorgabemäßigen Werte sein. Der @code{--prefix}-Wert sollte ein
Installationsverzeichnis festlegen, das anders ist als dasjenige, unter dem
die existierende MySQL-Installation liegt.
@@ -16434,7 +16051,7 @@ angeben, wenn Sie sich mit dem MySQL-Server verbinden.
@item
Wenn Sie das Perl-@code{DBD::mysql}-Modul benutzen, können Sie die Optionen
-aus den MySQL-Optionsdateien lesen. @xref{Optionsdateien}.
+aus den MySQL-Optionsdateien lesen. @xref\{Option files}.
@example
$dsn = "DBI:mysql:test;mysql_read_default_group=client;mysql_read_default_file=/usr/local/mysql/data/my.cnf"
@@ -16452,17 +16069,18 @@ und TCP/IP-Port zeigen, bevor Sie Ihre Clients starten. Wenn Sie
normalerweise eine speziellen Socket oder Port benutzen, sollten Sie die
Befehle zum Setzen dieser Umgebungsvariablen in Ihrer @file{.login}-Datei
unterbringen.
-@xref{Umgebungsvariablen}.
+@xref\{Environment variables}.
@item
@tindex .my.cnf Datei
-Legen Sie den vorgabemässigen Socket und TCP/IP-Port in der
+Legen Sie den vorgabemäßigen Socket und TCP/IP-Port in der
@file{.my.cnf}-Datei in Ihrem Heimatverzeichnis fest.
-@xref{Optionsdateien}.
+@xref\{Option files}.
@end itemize
-@node Berechtigungssystem, Benutzerkontenverwaltung, MySQL konfigurieren, MySQL-Datenbankadministration
+@node Privilege system, User Account Management, Configuring MySQL, MySQL Database Administration
+@c German node Berechtigungssystem
@section Allgemeine Sicherheitsthemen und das MySQL-Zugriffsberechtigungssystem
@cindex System, Sicherheit
@@ -16474,21 +16092,23 @@ Legen Sie den vorgabemässigen Socket und TCP/IP-Port in der
MySQL hat ein fortgeschrittenes, aber nicht standardisiertes Sicherheits-
bzw. Berechtigungssystem. Dieser Abschnitt beschreibt, wie es funktioniert.
+
+
@menu
-* Allgemeine Sicherheitsrichtlinien:: Allgemeine Sicherheitsrichtlinien
-* Sicherheit:: Wie Sie MySQL gegen Cracker sicher machen
-* Berechtigungsoptionen:: Startoptionen für @code{mysqld} in Bezug auf Sicherheit
-* Welche Berechtigungen:: Was das Berechtigungssystem macht
-* Berechtigungen:: Wie das Berechtigungssystem funktioniert
-* Zur Verfügung gestellte Berechtigungen:: Berechtigungen, die von MySQL zur Verfügung gestellt werden
-* Verbinden:: Verbinden mit dem MySQL-Server
-* Verbindungszugriff:: Zugriffskontrolle, Phase 1: Verbindungsüberprüfung
-* Anfragezugriff:: Zugriffskontrolle, Phase 2: Anfrageüberprüfung
-* Zugriff verweigert:: Gründe für @code{Access denied}-Fehler
+* General security::
+* Security::
+* Privileges options::
+* What Privileges::
+* Privileges::
+* Privileges provided::
+* Connecting::
+* Connection access::
+* Request access::
+* Access denied::
@end menu
-
-@node Allgemeine Sicherheitsrichtlinien, Sicherheit, Berechtigungssystem, Berechtigungssystem
+@node General security, Security, Privilege system, Privilege system
+@c German node Allgemeine Sicherheitsrichtlinien
@subsection Allgemeine Sicherheitsrichtlinien
Jeder, der MySQL auf einem Computer benutzt, der mit dem Internet verbunden
@@ -16553,7 +16173,7 @@ diese zu knacken. Selbst Passwörter wie ``xfish98'' sind sehr schlecht.
Viel besser ist ``duag98'', was dasselbe Wort ``fish'' enthält, aber um
eine Taste nach links auf einer QUERTZ-Tastatur verschoben. Eine weitere
Methode ist, etwas wie ``Mhall'' zu benutzen, was die ersten Buchstaben des
-Satzes ``Mary had a little lamb'' enthält. Das lässt sich leicht merken und
+Satzes ``Mary had a little lamb'' enthält. Das läßt sich leicht merken und
eintippen, aber schwierig durch jemanden erraten, der es nicht kennt.
@item
Investieren Sie in eine Firewall. Diese schützt sie vor mindestens 50%
@@ -16564,7 +16184,7 @@ Checkliste:
@itemize @minus
@item
Versuchen Sie, Ihre Ports vom Internet aus zu scannen, indem Sie ein Werkzeug
-wie @code{nmap} benutzen. MySQL benutzt vorgabemässig Port 3306. Dieser
+wie @code{nmap} benutzen. MySQL benutzt vorgabemäßig Port 3306. Dieser
Port sollte von nicht vertrauenswürdigen Hosts aus unerreichbar sein. Eine
weitere einfache Methode, um zu überprüfen, ob Ihr MySQL-Port offen ist
oder nicht, ist, den folgenden Befehl von einer entfernten Maschine aus zu
@@ -16587,7 +16207,7 @@ versuchen, Ihren Code auszutricksen, indem Sie spezielle oder escapete
Zeichenfolgen in Web-Formulare, URLs oder sonstige Applikationen, die Sie
hergestellt haben, eingeben. Stellen Sie sicher, dass Ihre Applikation
sicher bleibt, wenn ein Benutzer etwas wie ``@code{; DROP DATABASE
-mysql;}'' eingibt. Das ist ein extremes Beispiel, aber grosse
+mysql;}'' eingibt. Das ist ein extremes Beispiel, aber große
Sicherheitslücken und Datenverlust können eintreten, wenn ein Hacker
ähnliche Techniken benutzt und Sie nicht darauf vorbereitet sind.
@@ -16627,7 +16247,7 @@ bevor sie sie MySQL übergibt, und Ihre Applikation sollte einen Fehler
erzeugen. Es ist sehr gefährlich, nicht geprüfte Werte an MySQL zu
übergeben!
@item
-Überprüfen Sie Datengrössen, bevor Sie sie an MySQL übergeben.
+Überprüfen Sie Datengrößen, bevor Sie sie an MySQL übergeben.
@item
Überlegen Sie, ob es sinnvoll ist, dass sich Ihre Applikation mit einem
anderen Benutzernamen mit der Datenbank verbindet als mit dem, den Sie für
@@ -16684,13 +16304,14 @@ shell> tcpdump -l -i eth0 -w - src or dst port 3306 | strings
(Das funktioniert unter Linux und sollte mit kleineren Änderungen auf
anderen Systemen funktionieren.) Achtung: Wenn Sie keine Daten sehen,
-heisst das nicht immer, dass sie verschlüsselt sind. Wenn Sie hohe
+heißt das nicht immer, dass sie verschlüsselt sind. Wenn Sie hohe
Sicherheit benötigen, sollten Sie sich mit einem Sicherheitsexperten in
Verbindung setzen.
@end itemize
-@node Sicherheit, Berechtigungsoptionen, Allgemeine Sicherheitsrichtlinien, Berechtigungssystem
+@node Security, Privileges options, General security, Privilege system
+@c German node Sicherheit
@subsection Wie Sie MySQL gegen Cracker sicher machen
@cindex Cracker, Sicherheit gegen
@@ -16762,7 +16383,7 @@ user=mysql
Das bewirkt, dass der Server als der festgelegte Benutzer gestartet wird,
egal ob Sie ihn manuell oder mit @code{safe_mysqld} oder
-@code{mysql.server} starten. Weitere Details finden Sie unter @ref{Berechtigungsänderungen, , MySQL-Benutzer ändern}.
+@code{mysql.server} starten. Weitere Details finden Sie unter @ref\{Privilege changes, , MySQL-Benutzer ändern}.
@item
Unterstützen Sie keine Symlinks auf Tabellen (das kann mit der
@@ -16770,10 +16391,10 @@ Unterstützen Sie keine Symlinks auf Tabellen (das kann mit der
wichtig, wenn Sie @code{mysqld} als Root laufen lassen, weil jeder, der
Schreibzugriff auf das mysqld-Daten-Verzeichnis hat, dann jede Datei im
System zerstören könnte!
-@xref{Symbolische Links auf Tabellen}.
+@xref\{Symbolic links to tables}.
@item
-Überprüfen Sie, dass der Unix-Benutzer, der @code{mysqld} laufen lässt, der
+Überprüfen Sie, dass der Unix-Benutzer, der @code{mysqld} laufen läßt, der
einzige Benutzer mit Lese-/Schreibzugriffen auf die Datenbankverzeichnisse
ist.
@@ -16801,7 +16422,7 @@ Dateien überschreiben.
Das @strong{file}-Zugriffsrecht kann auch benutzt werden, um jede Datei zu
lesen, auf die der Unix-Benutzer Zugriff hat, als der der Server läuft. Das
könnte zum Beispiel durch Benutzung von @code{LOAD DATA} missbraucht
-werden, um @file{/etc/passwd} in eine Tabelle zu laden, die anschliessend
+werden, um @file{/etc/passwd} in eine Tabelle zu laden, die anschließend
mit @code{SELECT} gelesen wird.
@item
@@ -16818,7 +16439,8 @@ beschränken wollen, können Sie das tun, indem Sie die
-@node Berechtigungsoptionen, Welche Berechtigungen, Sicherheit, Berechtigungssystem
+@node Privileges options, What Privileges, Security, Privilege system
+@c German node Berechtigungsoptionen
@subsection Startoptionen für @code{mysqld} in Bezug auf Sicherheit
Folgende @code{mysqld}-Optionen berühren Sicherheitsaspekte:
@@ -16865,7 +16487,8 @@ Mit dieser Option gibt das @code{SHOW DATABASES}-Statement nichts zurück.
@end table
-@node Welche Berechtigungen, Berechtigungen, Berechtigungsoptionen, Berechtigungssystem
+@node What Privileges, Privileges, Privileges options, Privilege system
+@c German node Welche Berechtigungen
@subsection Was das Berechtigungssystem macht
@cindex System, Berechtigungen
@@ -16882,7 +16505,8 @@ Benutzer anzulegen und Berechtigungen für MySQL-spezifische Funktionen wie
@code{LOAD DATA INFILE} und für administrative Operationen zu gewähren.
-@node Berechtigungen, Zur Verfügung gestellte Berechtigungen, Welche Berechtigungen, Berechtigungssystem
+@node Privileges, Privileges provided, What Privileges, Privilege system
+@c German node Berechtigungen
@subsection Wie das Berechtigungssystem funktioniert
@cindex Berechtigungssystem, Beschreibung
@@ -16891,8 +16515,8 @@ Das MySQL-Berechtigungssystem stellt sicher, dass alle Benutzer nur genau
die Dinge tun dürfen, zu denen sie berechtigt sind. Wenn Sie sich mit einem
MySQL-Server verbinden, wird Ihre Identität @strong{durch den Host, von dem
Sie sich aus verbinden,} festgelegt und @strong{durch den Benutzernamen,
-den Sie angeben}. Das System gewährt Berechtigungen gemäss Ihrer Identität
-und gemäss dem, @strong{was Sie tun wollen}.
+den Sie angeben}. Das System gewährt Berechtigungen gemäß Ihrer Identität
+und gemäß dem, @strong{was Sie tun wollen}.
MySQL zieht sowohl Hostnamen als auch Benutzernamen heran, um Sie zu
identifizieren, weil es kaum Grund gibt anzunehmen, dass ein gegebener
@@ -16971,11 +16595,11 @@ Die Felder in diesen Tabellen sind unten dargestellt:
@item @tab @code{Grantor} @tab
@end multitable
-Jede Berechtigungstabelle enthält Geltungsbereichfelder und
+Jede Berechtigungstabelle enthält Geltungsbereichsfelder und
Berechtigungsfelder.
Geltungsbereichsfelder legen den Geltungsbereich jedes Eintrags in den
-Tabellen fest, das heisst, der Kontext, für den der Eintrag gilt. So würde
+Tabellen fest, das heißt, der Kontext, für den der Eintrag gilt. So würde
zum Beispiel ein @code{user}-Tabelleneintrag mit @code{Host}- und
@code{User}-Werten von @code{'thomas.loc.gov'} und @code{'bob'} benutzt
werden, um Verbindungen zum Server zu authentifizieren, die von @code{bob}
@@ -16988,20 +16612,20 @@ Die @code{tables_priv}- und @code{columns_priv}-Tabellen enthalten
Geltungsbereichsfelder, die Tabellen oder Tabellen-Spalten-Kombinationen
angeben, auf die sich der jeweilige Eintrag bezieht.
-@cindex Gross-/Kleinschreibung, bei der Zugriffsprüfung
+@cindex Groß-/Kleinschreibung, bei der Zugriffsprüfung
Für Zwecke der Zugriffsprüfung sind Vergleiche von @code{Host}-Werten
-unabhängig von der verwendeten Gross-/Kleinschreibung. @code{User},
+unabhängig von der verwendeten Groß-/Kleinschreibung. @code{User},
@code{Password}, @code{Db} und @code{Table_name}-Werte sind abhängig von
-der verwendeten Gross-/Kleinschreibung. @code{Column_name}-Werte sind ab
+der verwendeten Groß-/Kleinschreibung. @code{Column_name}-Werte sind ab
MySQL-Version 3.22.12 unabhängig von der verwendeten
-Gross-/Kleinschreibung.
+Groß-/Kleinschreibung.
Berechtigungsfelder zeigen die Berechtigungen an, die durch den
-Tabelleneintrag gewährt werden, das heisst, welche Operationen durchgeführt
+Tabelleneintrag gewährt werden, das heißt, welche Operationen durchgeführt
werden können. Der Server kombiniert die Informationen in den verschiedenen
Berechtigungstabellen, um daraus eine komplette Beschreibung der
Berechtigungen des Benutzers zu formulieren. Die Regeln, nach denen hierbei
-vorgegangen wird, sind in @ref{Anfragezugriff} beschrieben.
+vorgegangen wird, sind in @ref\{Request access} beschrieben.
Geltungsbereichsfelder sind Zeichenketten, die wie unten dargestellt
deklariert werden. Der Vorgabewert für jedes Feld ist die leere
@@ -17062,7 +16686,7 @@ Benutzer eine Datenbank von mehreren Hosts in Ihrem Netzwerk aus benutzen
kann, lassen Sie den @code{Host}-Wert in der @code{db}-Tabelle des
Benutzers leer, und füllen dann die @code{host}-Tabelle mit einem Eintrag
für jeden dieser Hosts. Dieser Mechanismus ist ausführlicher in
-@ref{Anfragezugriff} beschrieben.
+@ref\{Request access} beschrieben.
@end itemize
@item
@@ -17086,13 +16710,13 @@ unabhängig von der Datenbank, auf die Sie zugreifen.
Der @code{mysqld}-Server liest die Inhalte der Berechtigungstabellen
einmal, und zwar beim Start. Änderungen in den Berechtigungstabellen werden
-wirksam wie in @ref{Berechtigungsänderungen} geschildert.
+wirksam wie in @ref\{Privilege changes} geschildert.
Wenn Sie die Inhalte der Berechtigungstabellen ändern, sollten Sie
sicherstellen, dass Ihre Änderungen Berechtigungen einführen, die Sie so
haben wollen. Hilfe bei der Diagnose von Problemen finden Sie unter
-@ref{Zugriff verweigert}. Hinweise zu Sicherheitsthemen finden Sie unter
-@pxref{Sicherheit}.
+@ref\{Access denied}. Hinweise zu Sicherheitsthemen finden Sie unter
+@pxref\{Security}.
Ein nützliches Diagnosetool ist das @code{mysqlaccess}-Skript, das Yves
Carlier für die MySQL-Distribution bereit gestellt hat. Rufen Sie
@@ -17102,7 +16726,8 @@ anhand der @code{user}-, @code{db}- und @code{host}-Tabellen überprüft. Es
überprüft keine Tabellen- oder Spaltenebenen-Berechtigungen.
-@node Zur Verfügung gestellte Berechtigungen, Verbinden, Berechtigungen, Berechtigungssystem
+@node Privileges provided, Connecting, Privileges, Privilege system
+@c German node Zur Verfügung gestellte Berechtigungen
@subsection Von MySQL zur Verfügung gestellte Berechtigungen
@cindex Berechtigungsinformation, Speicherort
@@ -17110,9 +16735,9 @@ anhand der @code{user}-, @code{db}- und @code{host}-Tabellen überprüft. Es
Informationen über Benutzerberechtigungen sind in den @code{user}-,
@code{db}-, @code{host}-, @code{tables_priv}- und
@code{columns_priv}-Tabellen in der @code{mysql}-Datenbank gespeichert (das
-heisst in der Datenbank, die @code{mysql} heisst). Der MySQL-Server liest
+heißt in der Datenbank, die @code{mysql} heißt). Der MySQL-Server liest
die Inhalte dieser Tabellen, wenn er startet, und in den Fällen, die unter
-@ref{Berechtigungsänderungen} geschildert sind.
+@ref\{Privilege changes} geschildert sind.
Die Namen, die in diesem Handbuch benutzt werden, um auf die Berechtigungen
zu verweisen, die MySQL zur Verfügung stellt, sind unten dargestellt,
@@ -17193,7 +16818,7 @@ Verwaltungsberechtigung ausgeführt werden können:
Der @code{reload}-Befehl weist den Server an, die Berechtigungstabellen neu
einzulesen. Der @code{refresh}-Befehl schreibt alle Tabellen auf Platte
-(flush) und öffnet und schliesst die Log-Dateien. @code{flush-privileges}
+(flush) und öffnet und schließt die Log-Dateien. @code{flush-privileges}
ist ein Synonym für @code{reload}. Die anderen @code{flush-*}-Befehle
führen Funktionen aus, die @code{refresh} ähnlich sind, aber im Umfang
beschränkter und daher in einigen Fällen zu bevorzugen. Wenn Sie zum
@@ -17231,7 +16856,7 @@ Inhalte aller Datenbanken, die vom Server gehostet werden!
@item
Die @strong{shutdown}-Berechtigung kann missbraucht werden, um andere
-Benutzer komplett vom Server auszuschliessen, indem der Server beendet
+Benutzer komplett vom Server auszuschließen, indem der Server beendet
wird.
@item
@@ -17243,7 +16868,7 @@ Passwörter setzen oder ändern.
Zugriffsrechte auf die @code{mysql}-Datenbank können benutzt werden, um
Passwörter zu ändern und auf sonstige Berechtigungsinformationen
zuzugreifen. (Passwörter werden verschlüsselt gespeichert, daher kann ein
-böswilliger Benutzer sie nicht einfach lesen und anschliessend die
+böswilliger Benutzer sie nicht einfach lesen und anschließend die
Klartext-Passwörter kennen.) Wenn man auf die
@code{mysql.user}-Passwort-Spalte zugreifen kann, kann man das nutzen, um
sich als beliebiger Benutzer am MySQL-Server anzumelden. (Mit ausreichenden
@@ -17256,7 +16881,7 @@ können:
@itemize @bullet
@item
Sie können nicht ausdrücklich festlegen, dass ein bestimmter Benutzer
-keinen Zugriff haben soll. Das heisst, Sie können nicht explizit mit einem
+keinen Zugriff haben soll. Das heißt, Sie können nicht explizit mit einem
bestimmten Benutzer vergleichen und dann die Verbindung ablehnen.
@item
@@ -17266,11 +16891,12 @@ selbst zu erzeugen oder zu löschen.
@end itemize
-@node Verbinden, Verbindungszugriff, Zur Verfügung gestellte Berechtigungen, Berechtigungssystem
+@node Connecting, Connection access, Privileges provided, Privilege system
+@c German node Verbinden
@subsection Verbinden mit dem MySQL-Server
@cindex Verbinden, mit dem MySQL-Server
-@cindex Vorgabemässiger Hostname
+@cindex Vorgabemäßiger Hostname
@cindex Hostname, Vorgabe
@cindex Server, verbinden
@@ -17294,17 +16920,17 @@ steht!
@strong{ACHTUNG:} Ein Passwort auf der Kommandozeile anzugeben ist nicht
sicher! Jeder Benutzer auf Ihrem System kann dann Ihr Passwort
herausfinden, indem er einen Befehl wie @code{ps auxww} eingibt.
-@xref{Optionsdateien}.
+@xref\{Option files}.
@code{mysql} benutzt Vorgabewerte für Verbindungsparameter, die auf der
Kommandozeile nicht angegeben sind:
@itemize @bullet
@item
-Der vorgabemässige Hostname ist @code{localhost}.
+Der vorgabemäßige Hostname ist @code{localhost}.
@item
-Der vorgabemässige Benutzername ist Ihr Unix-Loginname.
+Der vorgabemäßige Benutzername ist Ihr Unix-Loginname.
@item
Es wird kein Passwort übergeben, wenn @code{-p} fehlt.
@@ -17341,7 +16967,7 @@ user=benutzername
password=ihr_passwort
@end example
-@xref{Optionsdateien}.
+@xref\{Option files}.
@item
@tindex @code{MYSQL_HOST}-Umgebungsvariable
@@ -17355,11 +16981,12 @@ benutzen. Der Host kann für @code{mysql} festgelegt werden, indem
@code{MYSQL_HOST} benutzt wird. Der MySQL-Benutzername kann mit @code{USER}
festgelegt werden (nur für Windows). Das Passwort kann mit @code{MYSQL_PWD}
festgelegt werden (aber das ist unsicher, siehe nächster Abschnitt).
-@xref{Umgebungsvariablen}.
+@xref\{Environment variables}.
@end itemize
-@node Verbindungszugriff, Anfragezugriff, Verbinden, Berechtigungssystem
+@node Connection access, Request access, Connecting, Privilege system
+@c German node Verbindungszugriff
@subsection Zugriffskontrolle, Phase 1: Verbindungsüberprüfung
@cindex Zugriffskontrolle
@@ -17587,7 +17214,8 @@ Wenn Sie Probleme haben, sich mit dem Server zu verbinden, geben Sie die
die erste Übereinstimmung stattfindet.
-@node Anfragezugriff, Zugriff verweigert, Verbindungszugriff, Berechtigungssystem
+@node Request access, Access denied, Connection access, Privilege system
+@c German node Anfragezugriff
@subsection Zugriffskontrolle, Phase 2: Anfrageüberprüfung
Wenn Sie erst einmal eine Verbindung hergestellt haben, geht der Server in
@@ -17599,7 +17227,7 @@ Berechtigungen können aus jeder der @code{user}-, @code{db}-,
@code{host}-, @code{tables_priv}- oder @code{columns_priv}-Tabellen
stammen. Die Berechtigungstabellen werden mit @code{GRANT}- und
@code{REVOKE}-Befehlen verändert. @xref{GRANT, , @code{GRANT}}. (Hilfreich
-sind die Ausführungen unter @ref{Berechtigungen}, wo die Felder aufgelistet
+sind die Ausführungen unter @ref\{Privileges}, wo die Felder aufgelistet
sind, die sich in jeder der Berechtigungstabellen finden.)
Die @code{user}-Tabelle gewährt Berechtigungen, die Ihnen auf globaler
@@ -17762,7 +17390,7 @@ ODER Spaltenberechtigungen
Vielleicht ist es nicht offensichtlich, warum der Server bei anfänglich als
unzureichend herausgefundenen globalen @code{user}-Eintragsberechtigungen
-für die verlangte Operation diese Berechtigungen anschliessend zu den
+für die verlangte Operation diese Berechtigungen anschließend zu den
Datenbank-, Tabellen- und Spalten-spezifischen Berechtigungen hinzuzählt.
Der Grund liegt darin, dass eine Anfrage möglicherweise mehr als eine Sorte
von Berechtigungen erfordert. Wenn Sie beispielsweise ein @code{INSERT ...
@@ -17811,7 +17439,8 @@ sicherzustellen, dass Ihre Zugriffsberechtigungen tatsächlich so gesetzt
sind, wie Sie denken.
-@node Zugriff verweigert, , Anfragezugriff, Berechtigungssystem
+@node Access denied, , Request access, Privilege system
+@c German node Zugriff verweigert
@subsection Gründe für @code{Access denied}-Fehler
Wenn Sie beim Verbindungsversuch zu einem MySQL-Server @code{Access
@@ -17823,7 +17452,7 @@ das Problem zu beheben:
Haben Sie nach der Installation von MySQL das
@code{mysql_install_db}-Skript laufen lassen, um die anfänglichen
Berechtigungstabelleninhalte zu konfigurieren? Wenn nicht, tun Sie das!
-@xref{Vorgabemässige Berechtigungen}. Testen Sie die anfänglichen
+@xref\{Default privileges}. Testen Sie die anfänglichen
Berechtigungen, indem Sie folgenden Befehl ausführen:
@example
@@ -17857,7 +17486,7 @@ erhalten:
Access denied for user: '@@unknown' to database mysql
@end example
-heisst das, dass Sie in der @code{user}-Tabelle keinen Eintrag
+heißt das, dass Sie in der @code{user}-Tabelle keinen Eintrag
@code{'root'} im @code{User}-Spaltenwert haben und dass @code{mysqld} den
Hostnamen für Ihren Client nicht auflösen kann. In diesem Fall müssen Sie
den Server mit der @code{--skip-grant-tables}-Option neu starten und Ihrer
@@ -17872,7 +17501,7 @@ shell> mysqladmin -u root -pxxxx ver
Access denied for user: 'root@@localhost' (Using password: YES)
@end example
-bedeutet das, dass Sie ein falsches Passwort benutzen. @xref{Passwörter}.
+bedeutet das, dass Sie ein falsches Passwort benutzen. @xref\{Passwords}.
Wenn Sie das Root-Passwort vergessen haben, können Sie @code{mysqld} mit
@code{--skip-grant-tables} neu starten, um das Passwort zu ändern. Diese
@@ -17880,7 +17509,7 @@ Option wird weiter hinten im Handbuch ausführlicher beschrieben.
Wenn Sie den obigen Fehler erhalten, obwohl Sie kein Passwort angegeben
haben, bedeutet das, dass in einer der @code{my.ini}-Dateien ein falsches
-Passwort steht. @xref{Optionsdateien}. Sie können die Benutzung der
+Passwort steht. @xref\{Option files}. Sie können die Benutzung der
Optionsdateien mit der @code{--no-defaults}-Option wie folgt verhindern:
@example
@@ -17901,7 +17530,7 @@ Falls es aussieht, als hätten sich Ihre Berechtigungen mitten in einer
Sitzung geändert, kann es sein, dass ein Superuser sie geändert hat. Das
Neuladen der Berechtigungstabellen betrifft neue
Client-Verbindungen, aber auch bestehende Verbindungen, wie in
-@ref{Berechtigungsänderungen} beschrieben.
+@ref\{Privilege changes} beschrieben.
@item
Wenn Sie es nicht schaffen, dass Ihr Passwort funktioniert, denken Sie
@@ -17910,11 +17539,11 @@ das Passwort mit den @code{INSERT}-, @code{UPDATE}- oder @code{SET
PASSWORD}-Statements setzen. Die @code{PASSWORD()}-Funktion wird nicht
benötigt, wenn Sie das Passwort mit dem @code{GRANT ... INDENTIFIED
BY}-Statement oder dem @code{mysqladmin password}-Befehl setzen.
-@xref{Passwörter}.
+@xref\{Passwords}.
@item
@code{localhost} ist ein Synonym für Ihren lokalen Hostnamen und
-gleichzeitig der vorgabemässige Host, mit dem sich Clients versuchen zu
+gleichzeitig der vorgabemäßige Host, mit dem sich Clients versuchen zu
verbinden, wenn Sie nicht explizit einen Hostnamen angeben. Verbindungen zu
@code{localhost} funktionieren jedoch nicht, wenn Sie auf einem System
arbeiten, das MIT-pThreads benutzt (@code{localhost}-Verbindungen werden
@@ -17980,8 +17609,8 @@ Binärversion von MySQL benutzen, die mit einer anderen glibc-Version
kompiliert wurde als die, die Sie benutzen. In diesem Fall sollten Sie
entweder die glibc Ihres Betriebssystems aktualisieren oder die
Quellversion von MySQL herunter laden und sie selbst kompilieren. Ein
-Quell-RPM lässt sich normalerweise sehr einfach kompilieren und
-installieren, daher stellt dies kein grosses Problem dar.
+Quell-RPM läßt sich normalerweise sehr einfach kompilieren und
+installieren, daher stellt dies kein großes Problem dar.
@item
Wenn Sie eine Fehlermeldung erhalten, in der der Hostname nicht angezeigt
@@ -18060,7 +17689,7 @@ neuen Eintrag mit @code{Host}=@code{'%'} und
@code{User}=@code{'irgendein_benutzer'} in der Annahme hinzuzufügen, dass
einem das erlaubt, @code{localhost} anzugeben, um sich von derselben
Maschine aus zu verbinden. Der Grund, warum das nicht funktioniert, ist,
-dass die vorgabemässigen Berechtigungen einen Eintrag mit
+dass die vorgabemäßigen Berechtigungen einen Eintrag mit
@code{Host}=@code{'localhost'} und @code{User}=@code{''} enthalten. Weil
dieser Eintrag einen @code{Host}-Wert @code{'localhost'} hat, der
spezifischer ist als @code{'%'}, wird er vorrangig vor dem neuen Eintrag
@@ -18093,16 +17722,16 @@ der @code{user}-Tabelle wahrscheinlich keine angeschaltete
@tindex .my.cnf-Datei
Denken Sie daran, dass Client-Programme Verbindungsparameter benutzen, die
in Konfigurationsdateien oder Umgebungsvariablen festgelegt sind.
-@xref{Umgebungsvariablen}. Wenn ein Client anscheinend falsche
-vorgabemässige Verbindungsparameter sendet, wenn Sie diese nicht auf der
+@xref\{Environment variables}. Wenn ein Client anscheinend falsche
+vorgabemäßige Verbindungsparameter sendet, wenn Sie diese nicht auf der
Kommandozeile angeben, überprüfen Sie Ihre Umgebung und die
@file{.my.cnf}-Datei in Ihrem Heimatverzeichnis. Überprüfen Sie
gegebenenfalls auch systemweite MySQL-Konfigurationsdateien, obwohl es sehr
viel unwahrscheinlicher ist, dass Client-Verbindungsparameter in diesen
-festgelegt werden. @xref{Optionsdateien}. Wenn Sie beim Laufenlassen eines
+festgelegt werden. @xref\{Option files}. Wenn Sie beim Laufenlassen eines
Clients ohne irgend welche Optionen @code{Access denied} erhalten, stellen
Sie sicher, dass Sie kein altes Passwort in irgendeiner Optionsdatei
-angegeben haben! @xref{Optionsdateien}.
+angegeben haben! @xref\{Option files}.
@item
Wenn Sie in den Berechtigungstabellen direkte Änderungen vornehmen (indem
@@ -18115,7 +17744,7 @@ veranlassen, die Berechtigungstabellen neu einzulesen. Ansonsten haben Ihre
Denken Sie auch daran, wenn Sie ein @code{root}-Passwort mit einem
@code{UPDATE}-Befehl festgelegt haben, dass Sie dieses solange nicht
angeben müssen, bis Sie die Berechtigungen flushen, weil der Server vorher
-nicht weiss, dass Sie Ihr Passwort geändert haben!
+nicht weiß, dass Sie Ihr Passwort geändert haben!
@item
Wenn Sie Zugriffsprobleme mit einem Perl-, PHP-, Python- oder ODBC-Programm
@@ -18131,7 +17760,7 @@ Eingabeaufforderung für das Passwort anzeigen.)
@item
Zum Testen starten Sie den @code{mysqld}-Daemon mit der
-@code{--skip-grant-tables}-Option. Anschliessend können Sie die
+@code{--skip-grant-tables}-Option. Anschließend können Sie die
MySQL-Berechtigungstabellen ändern und das @code{mysqlaccess}-Skript
benutzen, um zu sehen, ob Ihre Änderungen den gewünschten Effekt haben oder
nicht. Wenn Sie mit Ihren Änderungen zufrieden sind, führen Sie
@@ -18146,7 +17775,7 @@ herunter und dann wieder herauf fahren zu müssen.
Wenn alles andere fehlschlägt, starten Sie den @code{mysqld}-Daemon mit
einer Debugging-Option (zum Beispiel @code{--debug=d,general,query}). Das
gibt Host- und Benutzerinformationen über Verbindungsversuche aus sowie
-Informationen über jeden abgesetzten Befehl. @xref{Trace-Dateien}.
+Informationen über jeden abgesetzten Befehl. @xref\{Making trace files}.
@item
Wenn Sie irgend welche anderen Probleme mit den MySQL-Berechtigungstabellen
@@ -18154,27 +17783,30 @@ haben und meinen, das Problem der Mailing-Liste mitteilen zu müssen,
stellen Sie immer einen Auszug Ihrer MySQL-Berechtigungstabellen zur
Verfügung. Sie können einen Auszug der Tabellen mit dem @code{mysqldump
mysql}-Befehl erzeugen. Berichten Sie Ihr Problem - wie immer - unter
-Benutzung des @code{mysqlbug}-Skripts. @xref{Bug-Berichte}. In einigen
+Benutzung des @code{mysqlbug}-Skripts. @xref\{Bug reports}. In einigen
Fällen müssen Sie vielleicht @code{mysqld} mit @code{--skip-grant-tables}
neu starten, um @code{mysqldump} benutzen zu können.
@end itemize
-@node Benutzerkontenverwaltung, Katastrophenschutz und Wiederherstellung, Berechtigungssystem, MySQL-Datenbankadministration
+@node User Account Management, Disaster Prevention, Privilege system, MySQL Database Administration
+@c German node Benutzerkontenverwaltung
@section MySQL-Benutzerkonten-Verwaltung
+
+
@menu
-* GRANT:: @code{GRANT}- und @code{REVOKE}-Syntax
-* Benutzernamen:: MySQL-Benutzernamen und -Passwörter
-* Berechtigungsänderungen:: Wann Berechtigungsänderungen wirksam werden
-* Vorgabemässige Berechtigungen:: Einrichtung der anfänglichen MySQL-Berechtigungen
-* Benutzer hinzufügen:: Neue MySQL-Benutzer hinzufügen
-* Passwörter:: Passwörter einrichten
-* Passwort-Sicherheit:: Wie Sie Ihre Passwörter sicher halten
+* GRANT::
+* User names::
+* Privilege changes::
+* Default privileges::
+* Adding users::
+* Passwords::
+* Password security::
@end menu
-
-@node GRANT, Benutzernamen, Benutzerkontenverwaltung, Benutzerkontenverwaltung
+@node GRANT, User names, User Account Management, User Account Management
+@c German node GRANT
@subsection @code{GRANT}- und @code{REVOKE}-Syntax
@findex GRANT
@@ -18234,7 +17866,7 @@ Tabelle. Diese Berechtigungen werden in der
Wenn Sie ein @code{GRANT} für einen Benutzer angeben, den es nicht gibt,
wird dieser Benutzer erzeugt. Beispiele, wie @code{GRANT} funktioniert,
-finden Sie unter @ref{Benutzer hinzufügen}.
+finden Sie unter @ref\{Adding users}.
Bei @code{GRANT} und @code{REVOKE}-Statements kann @code{berechtigung_art}
wie folgt angegeben werden:
@@ -18291,7 +17923,7 @@ zum Beispiel trifft auf @code{benutzer} für jeden Host in der Domäne
Die einfache Form @code{benutzer} ist ein Synonym für
@code{benutzer@@"%"}. @strong{ACHTUNG:} Wenn Sie anonymen Benutzern
-erlauben, sich mit dem MySQL-Server zu verbinden (was vorgabemässig der
+erlauben, sich mit dem MySQL-Server zu verbinden (was vorgabemäßig der
Fall ist), sollten Sie auch alle lokalen Benutzer als
@code{benutzer@@localhost} hinzufügen, weil ansonsten der Eintrag für den
anonymen Benutzer für den lokalen Host in der @code{mysql.user}-Tabelle
@@ -18327,7 +17959,7 @@ ODER Spalten-Berechtigungen
In den meisten Fällen können Sie einem Benutzer Rechte auf lediglich einer
der Berechtigungsebenen gewähren, wodurch das Leben nicht so kompliziert
ist wie oben dargestellt. Die Details der Prozedur zur Überprüfung der
-Berechtigungen sind in @ref{Berechtigungssystem} dargestellt.
+Berechtigungen sind in @ref\{Privilege system} dargestellt.
Wenn Sie Berechtigungen für eine Benutzer-/Hostname-Kombination gewähren,
die in der @code{mysql.user}-Tabelle nicht existiert, wird ein Eintrag
@@ -18402,10 +18034,10 @@ Berechtigungstabellen manuell ändern (mit @code{INSERT}, @code{UPDATE}
usw.), müssen Sie ein @code{FLUSH PRIVILEGES}-Statement ausführen oder
@code{mysqladmin flush-privileges} laufen lassen, um den Server zu
veranlassen, die Berechtigungstabellen neu zu laden.
-@xref{Berechtigungsänderungen}.
+@xref\{Privilege changes}.
@cindex ANSI SQL, Unterschiede zu
-Die grössten Unterschiede zwischen ANSI SQL und MySQL-Versionen von
+Die größten Unterschiede zwischen ANSI SQL und MySQL-Versionen von
@code{GRANT} sind:
@itemize @bullet
@@ -18447,8 +18079,8 @@ MySQL unterstützt SSL-verschlüsselte Verbindungen. Um zu verstehen, wie
MySQL SSL benutzt, müssen wir einige Grundlagen von SSL und X509 erläutern.
Leute, die damit schon vertraut sind, können dieses Kapitel überspringen.
-Vorgabemässig benutzt MySQL unverschlüsselte Verbindungen zwischen Client
-und Server. Das heisst, dass jeder auf dem Weg dazwischen lauschen und Ihre
+Vorgabemäßig benutzt MySQL unverschlüsselte Verbindungen zwischen Client
+und Server. Das heißt, dass jeder auf dem Weg dazwischen lauschen und Ihre
Daten, die übertragen werden, mitlesen kann. Darüber hinaus könnten einige
Leute auch den Inhalt von Daten ändern, die zwischen Client und Server
ausgetauscht werden. Möglicherweise haben Sie auch wirklich geheime Daten
@@ -18483,12 +18115,12 @@ Daten, die damit verschlüsselt werden, können nur vom Besitzer des geheimen
Schlüssels entschlüsselt werden.
@cindex Mögliche Fragen:
-Frage: Warum benutzt MySQL nicht standardmässig verschlüsselte Verbindungen?
+Frage: Warum benutzt MySQL nicht standardmäßig verschlüsselte Verbindungen?
Antwort: Weil es MySQL langsamer macht. Jede zusätzliche Funktionalität
erfordert, dass ein Computer zusätzliche Arbeit verrichtet, und das
Verschlüsseln von Daten ist eine CPU-intensive Operation, die leicht die
Zeit und Leistung übertreffen kann, die MySQL selbst verbraucht und
-benötigt. MySQL ist vorgabemässig auf Geschwindigkeit optimiert.
+benötigt. MySQL ist vorgabemäßig auf Geschwindigkeit optimiert.
Frage: Ich brauche mehr Informationen über SSL / X509 / Verschlüsselung
usw.
Antwort: Benutzen Sie Ihre bevorzugte Internet-Suchmaschine und suchen Sie
@@ -18583,7 +18215,8 @@ Nur unterschiedliche Optionen dürfen gemischt werden.
@end itemize
-----------
-@node Benutzernamen, Berechtigungsänderungen, GRANT, Benutzerkontenverwaltung
+@node User names, Privilege changes, GRANT, User Account Management
+@c German node Benutzernamen
@subsection MySQL-Benutzernamen und -Passwörter
@cindex Benutzernamen und Passwörter
@@ -18598,7 +18231,7 @@ benutzt werden:
Benutzernamen, wie sie von MySQL für Authentifizierungszwecke benutzt
werden, haben nicht zu tun mit Unix-Benutzernamen (Login-Namen) oder
Windows-Benutzernamen. Die meisten MySQL-Clients versuchen sich zwar
-vorgabemässig einzuloggen, indem sie den aktuellen Unix-Benutzernamen als
+vorgabemäßig einzuloggen, indem sie den aktuellen Unix-Benutzernamen als
den MySQL-Benutzernamen verwenden, aber das geschieht nur aus Gründen der
Bequemlichkeit. Client-Programme lassen zu, dass ein anderer Name mit den
@code{-u}- oder @code{--user}-Optionen angegeben wird. Das bedeutet, dass
@@ -18618,10 +18251,12 @@ einer Unix-Maschine anzumelden, und dem Passwort, das Sie benutzen, um auf
eine Datenbank auf dieser Maschine zuzugreifen.
@item
+@c German FIX unsplit @ref
MySQL verschlüsselt Passwörter mit einem anderen Algorithmus als dem, der
während des Unix-Login-Prozesses benutzt wird, siehe die Beschreibungen der
-@code{PASSWORD()}- und @code{ENCRYPT()}-Funktionen in @ref{Verschiedene
-Funktionen}. Beachten Sie, dass trotz der Tatsache, dass das Passwort
+@code{PASSWORD()}- und @code{ENCRYPT()}-Funktionen in
+@ref\{Miscellaneous functions}.
+Beachten Sie, dass trotz der Tatsache, dass das Passwort
'zerhackt' gespeichert wird, es ausreicht, Ihr 'zerhacktes' Passwort zu
kennen, um sich am MySQL-Server anmelden zu können!
@end itemize
@@ -18631,7 +18266,7 @@ MySQL-Benutzer und ihre Berechtigungen werden normalerweise mit dem
Wenn Sie sich an einem MySQL-Server mit einem Kommandozeilen-Client
anmelden, sollten Sie das Passwort mit @code{--password=ihr-passwort}
-eingeben. @xref{Verbinden}.
+eingeben. @xref\{Connecting}.
@example
mysql --user=monty --password=rate_mal datenbankname
@@ -18666,7 +18301,8 @@ Zeichen. Intern hat MySQL keine Beschränkung hinsichtlich der Länge des
Passworts.
-@node Berechtigungsänderungen, Default Berechtigungen, Benutzernamen, Benutzerkontenverwaltung
+@node Privilege changes, Default privileges, User names, User Account Management
+@c German node Berechtigungsänderungen
@subsection Wann Berechtigungsänderungen wirksam werden
Wenn @code{mysqld} startet, werden alle Berechtigungstabelleninhalte in den
@@ -18702,10 +18338,11 @@ Globale Berechtigungsänderungen und Passwortänderungen werden beim nächsten
Mal wirksam, wenn sich der Client verbindet.
-@node Vorgabemässige Berechtigungen, Benutzer hinzufügen, Berechtigungsänderungen, Benutzerkontenverwaltung
+@node Default privileges, Adding users, Privilege changes, User Account Management
+@c German node Vorgabemäßige Berechtigungen
@subsection Einrichtung der anfänglichen MySQL-Berechtigungen
-@cindex Berechtigungen, vorgabemässig
+@cindex Berechtigungen, vorgabemäßig
@cindex Vorgaben, Berechtigungen
@cindex Root-Passwort
@cindex Superuser
@@ -18716,7 +18353,7 @@ Mal wirksam, wenn sich der Client verbindet.
Nach der Installation von MySQL konfigurieren Sie die anfänglichen
Zugriffsberechtigungen, indem Sie @code{scripts/mysql_install_db} laufen
lassen.
-@xref{Schnellinstallation}.
+@xref\{Quick install}.
Das @code{mysql_install_db}-Skript startet den @code{mysqld}-Server und
initialisiert dann die Berechtigungstabellen, so dass diese folgenden Satz
an Berechtigungen enthalten:
@@ -18734,7 +18371,7 @@ Das anfängliche @code{root}-Passwort ist leer, daher kann sich jeder als
@cindex anonymer Benutzer
Ein anonymer Benutzer wird erzeugt, der mit Datenbanken, die den Namen
@code{'test'} haben oder mit @code{'test_'} anfangen, alles tun darf.
-Verbindungen müssen vom lokalen Host aus gemacht werden. Das heisst, dass
+Verbindungen müssen vom lokalen Host aus gemacht werden. Das heißt, dass
sich jeder lokale Benutzer ohne Passwort verbinden kann und als anonymer
Benutzer behandelt wird.
@@ -18744,9 +18381,9 @@ Benutzer nicht @code{mysqladmin shutdown} oder @code{mysqladmin
processlist} benutzen.
@end itemize
-@strong{HINWEIS:} Die vorgabemässigen Berechtigungen sind unter Windows
+@strong{HINWEIS:} Die vorgabemäßigen Berechtigungen sind unter Windows
anders.
-@xref{Laufen lassen auf Windows}.
+@xref\{Windows running}.
Weil Ihre Installation anfangs weit offen ist, sollten Sie als eins der
ersten Dinge ein Passwort für den MySQL-@code{root}-Benutzer anlegen. Das
@@ -18796,10 +18433,10 @@ jedoch sicher, dass Sie es setzen, bevor Sie Ihre Installation für irgend
welche Produktionsaufgaben benutzen.
Sehen Sie im @code{scripts/mysql_install_db}-Skript nach, wie es die
-vorgabemässigen Berechtigungen installiert. Sie können das als Grundlage
+vorgabemäßigen Berechtigungen installiert. Sie können das als Grundlage
für das Hinzufügen weiterer Benutzer nehmen.
-Wenn Sie wollen, dass die anfänglichenl Berechtigungen anders sind als die
+Wenn Sie wollen, dass die anfänglichen Berechtigungen anders sind als die
gerade beschriebenen, können Sie @code{mysql_install_db} abändern, bevor
Sie es benutzen.
@@ -18819,7 +18456,8 @@ müssen Sie sie aus Ihrer MySQL-Distribution zurück kopieren, bevor Sie
@code{mysql_install_db} laufen lassen.
-@node Benutzer hinzufügen, Passwörter, Vorgabemässige Berechtigungen, Benutzerkontenverwaltung
+@node Adding users, Passwords, Default privileges, User Account Management
+@c German node Benutzer hinzufügen
@subsection Neue MySQL-Benutzer hinzufügen
@findex GRANT-Statement
@@ -19028,7 +18666,8 @@ einzufügen, zu ändern und zu aktualisieren. Sie finden diese Werkzeuge unter
MySQL-Website}.
-@node Passwörter, Passwort-Sicherheit, Benutzer hinzufügen, Benutzerkontenverwaltung
+@node Passwords, Password security, Adding users, User Account Management
+@c German node Passwörter
@subsection Passwörter einrichten
@findex PASSWORD()
@@ -19108,12 +18747,13 @@ shell> mysqladmin -u heinzholger password keks
@strong{NOTE:} @code{PASSWORD()} verschlüsselt Passwörter nicht auf
dieselbe Art, wie das bei Unix-Passwörtern der Fall ist. Wenn daher Ihr
Unix-Passwort und Ihr MySQL-Passwort identisch sind, sollten Sie daraus
-nicht schliessen, dass @code{PASSWORD()} denselben Verschlüsselungswert
+nicht schließen, dass @code{PASSWORD()} denselben Verschlüsselungswert
ergibt wie der, der in der Unix-Passwortdatei gespeichert ist.
-@xref{Benutzernamen}.
+@xref\{User names}.
-@node Passwort-Sicherheit, , Passwörter, Benutzerkontenverwaltung
+@node Password security, , Passwords, User Account Management
+@c German node Passwort-Sicherheit
@subsection Wie Sie Ihre Passwörter sicher halten
Es ist nicht ratsam, Ihr Passwort so einzugeben, dass es von anderen
@@ -19178,7 +18818,7 @@ Wenn Sie Ihr Passwort in @file{.my.cnf} speichern, sollte die Datei nicht
für die Gruppe (group) lesbar oder schreibbar sein. Stellen Sie sicher,
dass der Zugriffsmodus der Datei @code{400} oder @code{600} ist.
-@xref{Optionsdateien}.
+@xref\{Option files}.
@item
Sie können Ihr Passwort in der @code{MYSQL_PWD}-Umgebungsvariablen
speichern, aber diese Methode wird als extrem unsicher erachtet und sollte
@@ -19187,7 +18827,7 @@ Option, die Umgebung laufender Prozesse anzeigen zu lassen; Ihr Passwort
würde dann für alle im Klartext lesbar sein, wenn Sie @code{MYSQL_PWD}
setzen. Selbst auf Systemen ohne eine solche Version von @code{ps} ist es
nicht ratsam, anzunehmen, dass es keine andere Methode gibt,
-Prozessumgebungen einzusehen. @xref{Umgebungsvariablen}.
+Prozessumgebungen einzusehen. @xref\{Environment variables}.
@end itemize
Alles in allem sind die sichersten Methoden, das Passwort entweder durch
@@ -19195,22 +18835,25 @@ Client-Programm entgegen nehmen zu lassen oder es in einer sauber
abgesicherten @file{.my.cnf}-Datei einzugeben.
-@node Katastrophenschutz und Wiederherstellung, Datenbankadministration, Benutzerkontenverwaltung, MySQL-Datenbankadministration
+@node Disaster Prevention, Database Administration, User Account Management, MySQL Database Administration
+@c German node Katastrophenschutz und Wiederherstellung
@section Katastrophenschutz und Wiederherstellung
+
+
@menu
-* Datensicherung:: Datenbank-Datensicherungen
-* BACKUP TABLE:: @code{BACKUP TABLE}-Syntax
-* RESTORE TABLE:: @code{RESTORE TABLE}-Syntax
-* CHECK TABLE:: @code{CHECK TABLE}-Syntax
-* REPAIR TABLE:: @code{REPAIR TABLE}-Syntax
-* Tabellenwartung:: Benutzung von @code{myisamchk} für Tabellenwartung und Absturzreparatur
-* Wartungsplan:: Wartungsplan für Tabellen erstellen
-* Tabelleninformation:: Informationen über eine Tabelle erhalten
+* Backup::
+* BACKUP TABLE::
+* RESTORE TABLE::
+* CHECK TABLE::
+* REPAIR TABLE::
+* Table maintenance::
+* Maintenance regimen::
+* Table-info::
@end menu
-
-@node Datensicherung, BACKUP TABLE, Katastrophenschutz und Wiederherstellung, Katastrophenschutz und Wiederherstellung
+@node Backup, BACKUP TABLE, Disaster Prevention, Disaster Prevention
+@c German node Datensicherung
@subsection Datenbank-Datensicherungen
@cindex Datenbanken, Datensicherungen
@@ -19256,7 +18899,7 @@ aktualisiert. Das Skript @code{mysqlhotcopy} benutzt diese Methode.
@item
@cindex Log-Dateien, Namen
Halten Sie @code{mysqld} an, wenn er läuft, und starten Sie ihn mit der
-@code{--log-update[=datei]}-Option. @xref{Update-Log-Datei}. Die
+@code{--log-update[=datei]}-Option. @xref\{Update log}. Die
Update-Log-Datei(en) gibt Ihnen die Information, die Sie dafür benötigen,
um Änderungen an der Datenbank zu replizieren, die ab dem Zeitpunkt
durchgeführt wurden, als Sie @code{mysqldump} ausführten.
@@ -19267,7 +18910,7 @@ Tabellen mit @code{REPAIR TABLE} oder @code{myisamchk -r} wieder
herzustellen. Das sollte in 99,9% aller Fälle funktionieren. Wenn
@code{myisamchk} fehlschlägt, probieren Sie folgende Prozedur (das
funktioniert nur, wenn Sie MySQL mit @code{--log-update} gestartet haben.
-@xref{Update-Log-Datei}.):
+@xref\{Update log}.):
@enumerate
@item
@@ -19302,7 +18945,7 @@ duplizieren würde.
Wenn Sie bei der Datensicherung auf Ihrem System Performance-Probleme
bekommen, können Sie diese lösen, indem Sie Replikation einrichten und die
Datensicherungen auf dem Slave statt auf dem Master durchführen.
-@xref{Einführung in die Replikation}.
+@xref\{Replication Intro}.
Wenn Sie ein Veritas-Dateisystem benutzen, können Sie folgendes tun:
@@ -19325,7 +18968,8 @@ Unmounten Sie snapshot
@end enumerate
-@node BACKUP TABLE, RESTORE TABLE, Datensicherung, Katastrophenschutz und Wiederherstellung
+@node BACKUP TABLE, RESTORE TABLE, Backup, Disaster Prevention
+@c German node BACKUP TABLE
@subsection @code{BACKUP TABLE}-Syntax
@findex BACKUP TABLE
@@ -19343,7 +18987,7 @@ kopiert man @code{.frm}- (Definition) und @code{.MYD}- (Daten) Dateien. Die
Indexdatei kann aus diesen beiden aufgebaut werden.
Bevor Sie diesen Befehl ausführen, sehen Sie bitte unter
-@xref{Datensicherung} nach.
+@xref\{Backup} nach.
Während der Datensicherung gilt eine Lesesperre (Read Lock) für jede
Tabelle, eine nach der anderen, während sie gesichert werden. Wenn Sie
@@ -19364,7 +19008,8 @@ Der Befehl gibt eine Tabelle mit folgenden Spalten zurück:
Beachten Sie, dass @code{BACKUP TABLE} erst ab MySQL 3.23.25 verfügbar ist.
-@node RESTORE TABLE, CHECK TABLE, BACKUP TABLE, Katastrophenschutz und Wiederherstellung
+@node RESTORE TABLE, CHECK TABLE, BACKUP TABLE, Disaster Prevention
+@c German node RESTORE TABLE
@subsection @code{RESTORE TABLE}-Syntax
@findex RESTORE TABLE
@@ -19393,7 +19038,8 @@ Der Befehl gibt eine Tabelle mit folgenden Spalten zurück:
@end multitable
-@node CHECK TABLE, REPAIR TABLE, RESTORE TABLE, Katastrophenschutz und Wiederherstellung
+@node CHECK TABLE, REPAIR TABLE, RESTORE TABLE, Disaster Prevention
+@c German node CHECK TABLE
@subsection @code{CHECK TABLE}-Syntax
@findex CHECK TABLE
@@ -19426,7 +19072,7 @@ Beachten Sie, dass Sie viele Zeilen an Information für jede geprüfte
Tabelle erhalten. Die letzte Zeile enthält den @code{Msg_type status} und
sollte normalerweise @code{OK} sein. Wenn Sie nicht @code{OK} erhalten, oder @code{Not
checked}, sollten Sie im Normalfall eine Reparatur der Tabelle durchführen.
-@xref{Tabellenwartung}. @code{Not checked} bedeutet, dass bei der Tabelle
+@xref\{Table maintenance}. @code{Not checked} bedeutet, dass bei der Tabelle
der angegebene @code{TYPE} MySQL mitgeteilt hat, dass es keinerlei
Notwendigkeit gab, die Tabelle zu prüfen.
@@ -19435,13 +19081,13 @@ Die unterschiedlichen Prüfoptionen stehen für folgendes:
@multitable @columnfractions .20 .80
@item @strong{Option} @tab @strong{Bedeutung}
@item @code{QUICK} @tab Keine Zeilen nach falschen Verknüpfungen (Links) durchsehen (scannen).
-@item @code{FAST} @tab Nur Tabellen prüfen, die nicht ordnungsgemäss geschlossen wurden.
-@item @code{CHANGED} @tab Nur Tabellen prüfen, die seit der letzten Prüfung geändert wurden oder die nicht ordnungsgemäss geschlossen wurden.
+@item @code{FAST} @tab Nur Tabellen prüfen, die nicht ordnungsgemäß geschlossen wurden.
+@item @code{CHANGED} @tab Nur Tabellen prüfen, die seit der letzten Prüfung geändert wurden oder die nicht ordnungsgemäß geschlossen wurden.
@item @code{MEDIUM} @tab Zeilen durchsehen (scannen), um zu bestätigen, dass gelöschte Verknüpfungen (Links) in Ordnung sind. Diese Option berechnet auch eine Schlüssel-Prüfsumme für die Zeilen und bestätigt diese mit einer berechneten Prüfsumme für die Schlüssel.
@item @code{EXTENDED} @tab Schlägt komplett alle Schlüssel für jede Zeile nach (Lookup). Hierdurch wird sichergestellt, dass die Tabelle 100% konsistent ist, aber das benötigt lange Zeit!
@end multitable
-Bei @code{MyISAM}-Tabellen dynamischer Grösse führt eine Prüfung immer
+Bei @code{MyISAM}-Tabellen dynamischer Größe führt eine Prüfung immer
eine @code{MEDIUM}-Prüfung durch. Bei Zeilen statischer Länge wird das
Durchsehen (Scan) der Zeilen durch @code{QUICK} und @code{FAST}
übersprungen, weil solche Zeilen sehr selten beschädigt sind.
@@ -19453,11 +19099,11 @@ CHECK TABLE test_tabelle FAST QUICK;
@end example
Das würde nur eine QUICK-Prüfung der Tabelle durchführen, wenn diese nicht
-ordnungsgemäss geschlossen worden wäre.
+ordnungsgemäß geschlossen worden wäre.
@strong{HINWEIS:} In einigen Fällen kann @code{CHECK TABLE} zu einer
Änderung der Tabelle führen! Das geschieht, wenn die Tabelle als
-'beschädigt' oder 'nicht ordnungsgemäss geschlossen' gekennzeichnet ist,
+'beschädigt' oder 'nicht ordnungsgemäß geschlossen' gekennzeichnet ist,
aber @code{CHECK TABLE} keine Probleme in der Tabelle gefunden hat. In
diesem Fall kennzeichnet @code{CHECK TABLE} die Tabelle als in Ordnung.
@@ -19503,7 +19149,7 @@ die Spalte explizit mit einem @code{UPDATE}-Statement auf 0 setzt.)
Das ist für sich genommen kein Fehler, kann aber Probleme verursachen, wenn
Sie die Tabelle dumpen und dann wiederherstellen, oder ein @code{ALTER
TABLE} auf die Tabelle machen. In diesen Fällen ändert sich der Wert der
-auto_increment-Spalte gemäss den Regeln für auto_increment-Spalten, was
+auto_increment-Spalte gemäß den Regeln für auto_increment-Spalten, was
Probleme wie doppelte Schlüsseleintragsfehler bringen könnte.
Um diese Warnmeldung loszuwerden, führen Sie einfach ein
@@ -19512,7 +19158,8 @@ anderen Wert als 0.
@end itemize
-@node REPAIR TABLE, Table maintenance, CHECK TABLE, Katastrophenschutz und Wiederherstellung
+@node REPAIR TABLE, Table maintenance, CHECK TABLE, Disaster Prevention
+@c German node REPAIR TABLE
@subsection @code{REPAIR TABLE}-Syntax
@findex REPAIR TABLE
@@ -19528,7 +19175,7 @@ Normalerweise sollten sie diesen Befehl nie ausführen müssen, aber wenn ein
Unglück passiert, ist es sehr wahrscheinlich, dass Sie alle Daten einer
MyISAM-Tabelle mit @code{REPAIR TABLE} retten können. Wenn Ihre Tabellen
häufig beschädigt werden, sollten Sie versuchen, den Grund hierfür
-herauszufinden! @xref{Abstürze}. @xref{MyISAM-Tabellenprobleme}.
+herauszufinden! @xref\{Crashing}. @xref\{MyISAM table problems}.
@code{REPAIR TABLE} repariert eine möglicherweise beschädigte Tabelle. Der
Befehl gibt eine Tabelle mit folgenden Spalten zurück:
@@ -19557,7 +19204,8 @@ Schlüsseln fester Länge besser sein, wenn Sie lange @code{char()}-Schlüssel
haben, die sich gut komprimieren lassen.
-@node Tabellenwartung, Wartungsplan, REPAIR TABLE, Katastrophenschutz und Wiederherstellung
+@node Table maintenance, Maintenance regimen, REPAIR TABLE, Disaster Prevention
+@c German node Tabellenwartung
@subsection Benutzung von @code{myisamchk} für Tabellenwartung und Absturzreparatur
Ab MySQL-Version 3.23.13 können Sie MyISAM-Tabellen mit dem @code{CHECK
@@ -19568,7 +19216,7 @@ Um MyISAM-Tabellen (@code{.MYI} und @code{.MYD}) zu überprüfen und / oder
zu reparieren, sollten sie das @code{myisamchk}-Dienstprogramm benutzen. Um
ISAM-Tabellen (@code{.ISM} und @code{.ISD}) zu überprüfen und / oder zu
reparieren, sollten Sie das @code{isamchk}-Dienstprogramm benutzen.
-@xref{Tabellentypen}.
+@xref\{Table types}.
Der folgende Text behandelt @code{myisamchk}, trifft aber voll umfänglich
auch auf das alte @code{isamchk} zu.
@@ -19593,21 +19241,23 @@ eine gute Idee, eine Datensicherung zu machen, bevor eine Reparatur
durchgeführt wird (oder etwas Sonstiges, das viele Änderungen an einer
Tabelle durchführt).
+
+
@menu
-* myisamchk-Syntax:: Aufrufsyntax von @code{myisamchk}
-* Allgemeine Optionen für myisamchk:: Allgemeine Optionen für @code{myisamchk}
-* Prüfoptionen für myisamchk:: Prüfoptionen für @code{myisamchk}
-* Reparaturoptionen für myisamchk:: Reparaturoptionen für myisamchk
-* Andere Optionen für myisamchk:: Weitere Optionen für @code{myisamchk}
-* Speicher bei myisamchk:: Speicherbenutzung von @code{myisamchk}
-* Fehlerbeseitigung nach Abstürzen:: Benutzung von @code{myisamchk} für die Fehlerbeseitigung nach Abstürzen
-* Prüfung:: Wie Tabellen auf Fehler überprüft werden
-* Reparatur:: Wie Tabellen repariert werden
-* Optimierung:: Tabellenoptimierung
+* myisamchk syntax::
+* myisamchk general options::
+* myisamchk check options::
+* myisamchk repair options::
+* myisamchk other options::
+* myisamchk memory::
+* Crash recovery::
+* Check::
+* Repair::
+* Optimisation::
@end menu
-
-@node myisamchk-Syntax, Allgemeine Optionen für myisamchk, Tabellenwartung, Tabellenwartung
+@node myisamchk syntax, myisamchk general options, Table maintenance, Table maintenance
+@c German node myisamchk-Syntax
@subsubsection Aufrufsyntax von @code{myisamchk}
@code{myisamchk} wird wie folgt aufgerufen:
@@ -19627,7 +19277,7 @@ Abschnitten beschrieben an.
@code{tabelle} ist die Datenbanktabelle, die Sie prüfen oder reparieren
wollen. Wenn Sie @code{myisamchk} anderswo als im Datenbank-Verzeichnis
ausführen, müssen Sie den Pfad zur Datei angeben, denn @code{myisamchk}
-weiss nicht, wo Ihre Datenbank liegt. In der Tat kümmert sich
+weiß nicht, wo Ihre Datenbank liegt. In der Tat kümmert sich
@code{myisamchk} nicht darum, ob die Dateien, die es bearbeiten soll, in
einem Datenbank-Verzeichnis liegen oder nicht; sie können diese Dateien
daher an eine andere Stelle kopieren und die Wiederherstellungsoperationen
@@ -19685,23 +19335,18 @@ myisamchk: warning: 1 clients is using oder hasn't closed the table properly
Bedeutet das, dass Sie versuchen, eine Tabelle zu überprüfen, die durch ein
anderes Programm aktualisiert wurde (wie dem @code{mysqld}-Server), das die
Datei noch nicht geschlossen hat oder das abgestürzt ist, ohne die Datei
-ordnungsgemäss zu schliessen.
+ordnungsgemäß zu schließen.
-Wenn @code{mysqld} läuft, müssen Sie ein Sync/Schliessen aller Tabellen mit
+Wenn @code{mysqld} läuft, müssen Sie ein Sync/Schließen aller Tabellen mit
@code{FLUSH TABLES} erzwingen und sicherstellen, dass niemand die Tabellen
benutzt, während Sie @code{myisamchk} laufen lassen. In MySQL-Version 3.23
ist die einfachste Möglichkeit, dieses Problem zu vermeiden, die Benutzung
von @code{CHECK TABLE} anstelle von @code{myisamchk}.
-@menu
-* Allgemeine Optionen für myisamchk:: Allgemeine Optionen für @code{myisamchk}
-* Prüfoptionen für myisamchk:: Prüfoptionen für @code{myisamchk}
-* Reparaturoptionen für myisamchk:: Reparaturoptionen für myisamchk
-* Andere Optionen für myisamchk:: Weitere Optionen für @code{myisamchk}
-@end menu
-@node Allgemeine Optionen für myisamchk, Prüfoptionen für myisamchk, myisamchk-Syntax, Tabellenwartung
+@node myisamchk general options, myisamchk check options, myisamchk syntax, Table maintenance
+@c German node Allgemeine Optionen für myisamchk
@subsubsection Allgemeine Optionen für @code{myisamchk}
@cindex Optionen, @code{myisamchk}
@@ -19742,9 +19387,9 @@ mittels Key-Buffer (Schlüsselpuffer) wird in folgenden Fällen benutzt:
Wenn Sie @code{--safe-recover} benutzen.
@item
Wenn die temporären Dateien, die benötigt werden, um die Schlüssel zu
-sortieren, mehr als zweimal so gross werden würden, als wenn die
+sortieren, mehr als zweimal so Groß werden würden, als wenn die
Schlüsseldatei direkt erzeugt würde. Das ist oft dann der Fall, wenn Sie
-grosse @code{CHAR}-, @code{VARCHAR}- oder @code{TEXT}-Schlüssel haben, weil
+große @code{CHAR}-, @code{VARCHAR}- oder @code{TEXT}-Schlüssel haben, weil
das Sortieren die gesamten Schlüssel während des Sortierens speichern muss.
Wenn Sie viel temporären Platz haben und @code{myisamchk} zwingen können,
mittels Sortieren zu reparieren, können Sie die
@@ -19757,7 +19402,7 @@ viel langsamer.
Wenn Sie eine schnellere Reparatur wollen, setzen Sie die obigen Variablen
auf ungefähr 1/4 Ihres verfügbaren Arbeitsspeichers. Sie können beide
-Variablen auf grosse Werte setzen, weil nur einer der oben aufgeführten
+Variablen auf große Werte setzen, weil nur einer der oben aufgeführten
Puffer zur gleichen Zeit benutzt wird.
@item -s oder --silent
@@ -19779,7 +19424,8 @@ die Tabelle nur mit einem weiteren @code{myisamchk}-Befehl gesperrt werden.
@end table
-@node Prufoptionen für myisamchk, Reparaturoptionen für myisamchk, Allgemeine Optionen für myisamchk, Tabellenwartung
+@node myisamchk check options, myisamchk repair options, myisamchk general options, Table maintenance
+@c German node Prüfoptionen für myisamchk
@subsubsection Prüfoptionen für @code{myisamchk}
@cindex Prüfoptionen, myisamchk
@@ -19787,7 +19433,7 @@ die Tabelle nur mit einem weiteren @code{myisamchk}-Befehl gesperrt werden.
@table @code
@item -c oder --check
-Tabelle auf Fehler überprüfen. Das ist die vorgabemässige Operation, wenn
+Tabelle auf Fehler überprüfen. Das ist die vorgabemäßige Operation, wenn
Sie @code{myisamchk} keine sonstigen Optionen angeben, die dies
überschreiben.
@@ -19802,7 +19448,7 @@ Wenn Sie @code{--extended-check} benutzen und viel Arbeitsspeicher haben,
setzen Sie den Wert von @code{key_buffer_size} um etliches herauf!
@item -F oder --fast
-Nur Tabellen prüfen, die nicht ordnungsgemäss geschlossen wurden.
+Nur Tabellen prüfen, die nicht ordnungsgemäß geschlossen wurden.
@item -C oder --check-only-changed
Nur Tabellen prüfen, die seit der letzten Prüfung geändert wurden.
@item -f oder --force
@@ -19827,7 +19473,8 @@ anderen Applikation benutzt wird, die kein Sperren durchführt (wie
@end table
-@node Reparaturoptionen für myisamchk, Andere Optionen für myisamchk, Prüfoptionen für myisamchk, Tabellenwartung
+@node myisamchk repair options, myisamchk other options, myisamchk check options, Table maintenance
+@c German node Reparaturoptionen für myisamchk
@subsubsection Reparaturoptionen für @code{myisamchk}
@cindex Reparaturoptionen, myisamchk
@@ -19868,7 +19515,7 @@ sollten Sie zuerst diese Option ausprobieren. Nur wenn myisamchk berichtet,
dass die Tabelle mit @code{-r} nicht wiederhergestellt werden kann, sollten
Sie @code{-o} probieren. (Hinweis: Im unwahrscheinlichen Fall, dass
@code{-r} fehlschlägt, ist die Daten-Datei immer noch intakt.) Wenn Sie
-viel Arbeitsspeicher haben, sollten Sie die Grösse von
+viel Arbeitsspeicher haben, sollten Sie die Größe von
@code{sort_buffer_size} herauf setzen!
@item -o oder --safe-recover
Benutzt eine alte Wiederherstellungsmethode (liest alle Zeilen der Reihe
@@ -19880,11 +19527,11 @@ als @code{-r}. Normalerweise sollte man immer zuerst versuchen, mit
@code{-r} zu reparieren und nur im Falle des Fehlschlagens @code{-o}
benutzen.
-Wenn Sie viel Arbeitsspeicher haben, sollten Sie die Grösse von
+Wenn Sie viel Arbeitsspeicher haben, sollten Sie die Größe von
@code{key_buffer_size} herauf setzen!
@item -n oder --sort-recover
Zwingt @code{myisamchk} zu sortieren, um Schlüssel aufzulösen, selbst wenn
-die temporären Dateien sehr gross sein sollten. Diese Option hat keine
+die temporären Dateien sehr Groß sein sollten. Diese Option hat keine
Auswirkung, wenn Sie Volltextschlüssel in der Tabelle haben.
@item --character-sets-dir=...
@@ -19903,7 +19550,8 @@ Datei entpacken, die mit myisampack gepackt wurde.
@end table
-@node Andere Optionen für myisamchk, Speicher bei myisamchk, Reparaturoptionen für myisamchk, Tabellenwartung
+@node myisamchk other options, myisamchk memory, myisamchk repair options, Table maintenance
+@c German node Andere Optionen für myisamchk
@subsubsection Weitere Optionen für @code{myisamchk}
Weitere Aktionen, die @code{myisamchk} ausführen kann, neben der Prüfung
@@ -19938,17 +19586,18 @@ Indexe einer Tabelle in genau der Reihenfolge zeigt, in der
@end table
-@node Speicher bei myisamchk, Fehlerbeseitigung nach Abstürzen, Andere Optionen für myisamchk, Tabellenwartung
+@node myisamchk memory, Crash recovery, myisamchk other options, Table maintenance
+@c German node Speicher bei myisamchk
@subsubsection Speicherbenutzung von @code{myisamchk}
@cindex memory usage, myisamchk
Die Speicherzuordnung ist wichtig, wenn Sie @code{myisamchk} laufen lassen.
@code{myisamchk} benutzt nicht mehr Speicher, als Sie mir der
-@code{-O}-Option festlegen. Wenn Sie @code{myisamchk} für sehr grosse
+@code{-O}-Option festlegen. Wenn Sie @code{myisamchk} für sehr große
Dateien benutzen wollen, sollten Sie zuerst entscheiden, wieviel Speicher
Sie benutzen wollen. Die Vorgabe liegt bei nur etwa 3 MB, um Dinge zu
-reparieren. Indem grössere Werte benutzt werden, können Sie
+reparieren. Indem größere Werte benutzt werden, können Sie
@code{myisamchk} dazu bringen, schneller zu arbeiten. Wenn Sie
beispielsweise 32 MB Arbeitsspeicher haben, könnten Sie Optionen wie die
folgende benutzen (zusätzlich zu weiteren Optionen, die Sie eventuell
@@ -19966,12 +19615,12 @@ Kein-Speicher-Fehler schnell auftreten. Wenn das passiert, setzen Sie
@code{TMPDIR} so, dass es auf ein Verzeichnis mit mehr Speicherplatz zeigt
und starten Sie @code{myisamchk} erneut.
-Beim Reparieren benötigt @code{myisamchk} grosse Mengen von
+Beim Reparieren benötigt @code{myisamchk} große Mengen von
Festplattenspeicher:
@itemize @bullet
@item
-Die doppelte Grösse der Daten-Datei (die Originaldatei und eine Kopie).
+Die doppelte Größe der Daten-Datei (die Originaldatei und eine Kopie).
Dieser Platz wird nicht benötigt, wenn die Reparatur mit @code{--quick}
durchgeführt wird, weil in diesem Fall nur die Index-Datei neu erzeugt
wird. Der Platz wird auf derselben Festplatte benötigt, wo die
@@ -19985,7 +19634,7 @@ Original-Index-Datei liegt!
Wenn Sie @code{--recover} oder @code{--sort-recover} benutzen (aber nicht,
wenn Sie @code{--safe-recover} benutzen), brauchen Sie Platz für einen
Sortierpuffer (Sort Buffer) für:
-@code{(grösster_schlüssel + zeilen_zeiger_länge) * anzahl_der_zeilen * 2}.
+@code{(größter_schlüssel + zeilen_zeiger_länge) * anzahl_der_zeilen * 2}.
Sie können die Länge der Schlüssel und die Zeilen-Zeiger-Länger mit
@code{myisamchk -dv tabelle} prüfen.
Dieser Platz wird auf der temporären Platte zugeordnet (festgelegt durch
@@ -19997,7 +19646,8 @@ können Sie @code{--safe-recover} anstelle von @code{--recover}
ausprobieren.
-@node Fehlerbeseitigung nach Abstürzen, Prüfoptionen für myisamchk, Speicher bei myisamchk, Tabellenwartung
+@node Crash recovery, Check, myisamchk memory, Table maintenance
+@c German node Fehlerbeseitigung nach Abstürzen
@subsubsection Benutzung von @code{myisamchk} für die Fehlerbeseitigung nach Abstürzen
@cindex Absturz, Wiederherstellung
@@ -20030,10 +19680,10 @@ bevor Sie @code{myisamchk} benutzen.
Dieses Kapitel beschreibt, wie man MySQL-Datenbanken auf Datenbeschädigung
prüft und damit umgeht. Wenn Ihre Tabellen häufig beschädigt sind, wollten
-Sie versuchen, den Grund hierfür herauszufinden! @xref{Abstürze}.
+Sie versuchen, den Grund hierfür herauszufinden! @xref\{Crashing}.
Der Abschnitt über @code{MyISAM}-Tabellen enthält Gründe, warum eine
-Tabelle beschädigt sein könnte. @xref{MyISAM-Tabellenprobleme}.
+Tabelle beschädigt sein könnte. @xref\{MyISAM table problems}.
Wenn Sie eine Wiederherstellung nach einem Absturz durchführen, ist es
wichtig zu wissen, das jede Tabelle @code{tabelle} in einer Datenbank mit
@@ -20068,7 +19718,8 @@ diesem Fall sollten Sie zumindest eine Datensicherung machen, bevor Sie
@code{myisamchk} laufen lassen.
-@node Prüfung, Reparaturoptionen für myisamchk, Fehlerbeseitigung nach Abstürzen, Tabellenwartung
+@node Check, Repair, Crash recovery, Table maintenance
+@c German node Prüfung
@subsubsection Wie Tabellen auf Fehler überprüft werden
@cindex Prüfen, Tabellen auf Fehler
@@ -20095,7 +19746,7 @@ Prüfsumme für die Schlüssel im Indexbaum übereinstimmt.
Das führt eine vollständige, gründlich Prüfung aller Daten durch (@code{-e}
bedeutet ``extended check'' - erweiterte Prüfung). Es führt ein Prüf-Lesen
jedes Schlüssels für jede Zeile durch, um zu bestätigen, dass sie
-tatsächlich auf die richtige Zeile verweisen. Das kann bei einer grossen
+tatsächlich auf die richtige Zeile verweisen. Das kann bei einer großen
Tabelle mit vielen Schlüsseln SEHR LANG dauern. @code{myisamchk} hält
normalerweise an, wenn es den ersten Fehler gefunden hat. Wenn Sie mehr
Informationen haben wollen, können Sie die
@@ -20111,7 +19762,8 @@ auszugeben.
@end table
-@node Reparatur, Optimierung, Prüfoptionen für myisamchk, Tabellenwartung
+@node Repair, Optimisation, Check, Table maintenance
+@c German node Reparatur
@subsubsection Wie Tabellen repariert werden
@cindex Tabellen, Reparatur
@@ -20184,7 +19836,7 @@ die @code{CHECK}- und @code{REPAIR}-Befehle benutzen, um
@code{MyISAM}-Tabellen zu prüfen und zu reparieren. @xref{REPAIR TABLE}.
Der Handbuchabschnitt über Tabellenwartung beinhaltet die Optionen für
-@code{isamchk} / @code{myisamchk}. @xref{Tabellenwartung}.
+@code{isamchk} / @code{myisamchk}. @xref\{Table maintenance}.
Der folgende Abschnitt ist für Fälle, in denen die obigen Befehle
fehlschlagen, oder wenn Sie die erweiterten Features benutzen wollen, die
@@ -20308,12 +19960,13 @@ erzeugt wurde, erzeugen Sie eine Kopie der Tabelle in einer anderen
Datenbank. Entfernen Sie die neue Daten-Datei und verschieben Sie die
Beschreibungs- und Index-Dateien von der anderen Datenbank in Ihre
beschädigte Datenbank. Das ergibt neue Beschreibungs- und Index-Dateien,
-lässt aber die Daten-Datei in Ruhe. Gehen Sie zurück zu Phase 2 und
+läßt aber die Daten-Datei in Ruhe. Gehen Sie zurück zu Phase 2 und
versuchen Sie, die Index-Datei wiederherzustellen.
@end enumerate
-@node Optimierung, , Reparaturoptionen für myisamchk, Tabellenwartung
+@node Optimisation, , Repair, Table maintenance
+@c German node Optimierung
@subsubsection Tabellenoptimierung
@cindex Tabellen, Optimierung
@@ -20346,10 +19999,11 @@ Verbesserung der Performance einer Tabelle benutzen können:
@end table
Eine detaillierte Beschreibung der Optionen steht unter
-@xref{myisamchk-Syntax}.
+@xref\{myisamchk syntax}.
-@node Wartungsplan, Tabelleninformation, Tabellenwartung, Katastrophenschutz und Wiederherstellung
+@node Maintenance regimen, Table-info, Table maintenance, Disaster Prevention
+@c German node Wartungsplan
@subsection Wartungsplan für Tabellen erstellen
@cindex Wartung, Tabellen
@@ -20359,7 +20013,7 @@ Ab MySQL-Version 3.23.13 können Sie MyISAM-Tabellen mit dem @code{CHECK
TABLE}-Befehl prüfen. @xref{CHECK TABLE}. Sie können Tabellen mit dem
@code{REPAIR TABLE}-Befehl reparieren. @xref{REPAIR TABLE}.
-Es ist eine gute Idee, Tabellenüberprüfungen auf regelmässiger Basis
+Es ist eine gute Idee, Tabellenüberprüfungen auf regelmäßiger Basis
durchzuführen statt darauf zu warten, dass Probleme auftreten. Für
Wartungszwecke benutzen Sie @code{myisamchk -s}, um Tabellen zu überprüfen.
Die @code{-s}-Option (Kurzform für @code{--silent}) veranlasst
@@ -20372,7 +20026,7 @@ hoch fährt. Wenn beispielsweise die Maschine mitten während einer
Aktualisierung (Update) neu gebootet hat, müssen Sie üblicherweise alle
Tabellen prüfen, die betroffen sein könnten. (Das ist ein Fall von
``erwarteter Tabellenbeschädigung''.) Sie können @code{safe_mysqld} einen
-Test hinzufügen, der @code{myisamchk} laufen lässt, um alle Tabellen zu
+Test hinzufügen, der @code{myisamchk} laufen läßt, um alle Tabellen zu
überprüfen, die innerhalb der letzten 24 Stunden geändert wurden, wenn nach
einem Reboot eine alte @file{.pid}-(process ID)-Datei übrig blieb. (Die
@file{.pid}-Datei wird von @code{mysqld} erzeugt, wenn er hoch fährt, und
@@ -20383,7 +20037,7 @@ abgebrochen wurde.)
Eine noch bessere Testmethode besteht darin, jede Tabelle zu prüfen, deren
Zeit der letzten Änderung neuer ist als die der @file{.pid}-Datei.
-Ausserdem sollten Sie Ihre Tabellen regelmässig während der normalen
+Ausserdem sollten Sie Ihre Tabellen regelmäßig während der normalen
Systemtätigkeit prüfen. Bei MySQL AB lassen wir einen @code{cron}-Job
laufen, um alle wichtigen Tabellen einmal pro Woche zu prüfen, indem wir
folgende Zeile in der @file{crontab}-Datei benutzen:
@@ -20420,10 +20074,11 @@ myisamchk -r --silent --sort-index -O sort_buffer_size=16M */*.MYI
@end example
-@node Tabelleninformation, , Wartungsplan, Katastrophenschutz und Wiederherstellung
+@node Table-info, , Maintenance regimen, Disaster Prevention
+@c German node Tabelleninformation
@subsection Informationen über eine Tabelle erhalten
-@cindex Tabellen, Informationem
+@cindex Tabellen, Informationen
Um eine Beschreibung einer Tabelle oder Statistiken über sie zu erhalten,
benutzen Sie die unten stehenden Befehle. Einige davon werden später
@@ -20431,7 +20086,7 @@ detaillierter erläutert:
@table @code
@item myisamchk -d tabelle
-Lässt @code{myisamchk} im ``Beschreibungsmodus'' laufen, um eine
+Läßt @code{myisamchk} im ``Beschreibungsmodus'' laufen, um eine
Beschreibung Ihrer Tabelle zu erzeugen. Wenn Sie den MySQL-Server mit der
@code{--skip-locking}-Option starten, kann @code{myisamchk} eventuell
Fehler über eine Tabelle berichten, die aktualisiert wird, während es
@@ -20583,7 +20238,7 @@ Blocks in 4 out 0, Messages in 0 out 0, Signals 0
Voluntary context switches 10604, Involuntary context switches 122798
@end example
-Hier stehen die Grössen der Daten- und Index-Dateien der Tabelle, die in
+Hier stehen die Größen der Daten- und Index-Dateien der Tabelle, die in
den vorstehenden Beispielen benutzt wurde:
@example
@@ -20614,7 +20269,7 @@ Wie viele Datensätze in der Tabelle sind.
@item Deleted blocks
Wie viele gelöschte Blöcke noch Platz belegen.
Sie können Ihre Tabelle optimieren, um diesen Platz zu minimieren.
-@xref{Optimierung}.
+@xref\{Optimisation}.
@item Datafile: Parts
Bei dynamischem Datensatzformat zeigt dies an, wie viele Datenblöcke es
@@ -20624,16 +20279,16 @@ dasselbe wie @code{Data records}.
@item Deleted data
Wie viele Bytes nicht zurückgewonnener gelöschter Daten es gibt.
Sie können Ihre Tabelle optimieren, um diesen Platz zu minimieren.
-@xref{Optimierung}.
+@xref\{Optimisation}.
@item Datafile pointer
-Die Grösse des Daten-Datei-Zeigers in Bytes. Das sind normalerweise 2, 3, 4
+Die Größe des Daten-Datei-Zeigers in Bytes. Das sind normalerweise 2, 3, 4
oder 5 Bytes. Die meisten Tabellen schaffen 2 Bytes, aber das kann bislang
von MySQL noch nicht gesteuert werden. Bei festen Tabellen ist das eine
Datensatzadresse. Bei dynamischen Tabellen ist es eine Byte-Adresse.
@item Keyfile pointer
-Die Grösse des Index-Datei-Zeigers in Bytes. Sie beträgt normalerweise 1, 2
+Die Größe des Index-Datei-Zeigers in Bytes. Sie beträgt normalerweise 1, 2
oder 3 Bytes. Die meisten Tabellen schaffen 2 Bytes, aber das wird von
MySQL automatisch berechnet. Es ist immer die Block-Adresse.
@@ -20682,14 +20337,14 @@ Optionen @code{packed}, @code{stripped} oder @code{empty}.
Adresse des Root-Index-Blocks.
@item Blocksize
-Die Grösse jedes Index-Blocks. Vorgabemässig ist das 1024, doch dieser Wert
+Die Größe jedes Index-Blocks. Vorgabemäßig ist das 1024, doch dieser Wert
kann beim Kompilieren geändert werden.
@item Rec/key
Das ist ein statistischer Wert, der vom Optimierer benutzt wird. Es sagt
aus, wie viele Datensätze es pro Wert für diesen Schlüssel gibt. Ein
eindeutiger Schlüssel hat immer einen Wert von 1. Das kann aktualisiert
-werden, nachdem eine Tabelle geladen wurde (oder in grösserem Umfang
+werden, nachdem eine Tabelle geladen wurde (oder in größerem Umfang
geändert) mit @code{myisamchk -a}. Wenn dies überhaupt nicht aktualisiert
wurde, wird ein Wert von 30 angenommen.
@end table
@@ -20712,7 +20367,7 @@ verringern. Im dritten Beispiel oben ist der vierte Schlüssel zehn Zeichen
lang, wodurch ein 60%-ige Verringerung des Platzbedarfs erreicht wird.
@item Max levels
-Wie tief der B-Baum für diesen Schlüssel ist. Grosse Tabellen mit langen
+Wie tief der B-Baum für diesen Schlüssel ist. große Tabellen mit langen
Schlüsseln haben hohe Werte.
@item Records
@@ -20733,12 +20388,12 @@ Welcher Prozentsatz der Daten-Datei benutzt wird.
Welcher Prozentsatz der Daten-Datei unbenutzt ist.
@item Blocks/Record
-Durchschnittliche Anzahl der Blöcke pro Datensatz (das heisst, aus wie
+Durchschnittliche Anzahl der Blöcke pro Datensatz (das heißt, aus wie
vielen Verknüpfungen (Links) ein fragmentierter Datensatz zusammengesetzt
ist). Bei Tabellen mit festem Format ist das immer 1. Dieser Wert sollte so
-nah wie möglich an 1,0 bleiben. Wenn er zu gross wird, können Sie die
+nah wie möglich an 1,0 bleiben. Wenn er zu Groß wird, können Sie die
Tabelle @code{myisamchk} reorganisieren.
-@xref{Optimierung}.
+@xref\{Optimisation}.
@item Recordblocks
Wie viele Blöcke (Verknüpfungen, Links) benutzt werden. Bei festem Format
@@ -20769,20 +20424,23 @@ siehe @ref{myisampack, , @code{myisampack}}, wo sich ein Beispiel solcher
Informationen und was sie bedeuten befindet.
-@node Datenbankadministration, Lokalisierung, Katastrophenschutz und Wiederherstellung, MySQL-Datenbankadministration
+@node Database Administration, Localisation, Disaster Prevention, MySQL Database Administration
+@c German node Datenbankadministration
@section Datenbankverwaltung Sprachreferenz
+
+
@menu
-* OPTIMIZE TABLE:: @code{OPTIMIZE TABLE}-Syntax
-* ANALYZE TABLE:: @code{ANALYZE TABLE}-Syntax
-* FLUSH:: @code{FLUSH}-Syntax
-* KILL:: @code{KILL}-Syntax
-* SHOW:: @code{SHOW}-Syntax
+* OPTIMIZE TABLE::
+* ANALYZE TABLE::
+* FLUSH::
+* KILL::
+* SHOW::
@end menu
-
-@node OPTIMIZE TABLE, ANALYZE TABLE, Datenbankadministration, Datenbankadministration
+@node OPTIMIZE TABLE, ANALYZE TABLE, Database Administration, Database Administration
+@c German node OPTIMIZE TABLE
@subsection @code{OPTIMIZE TABLE}-Syntax
@findex OPTIMIZE TABLE
@@ -20794,7 +20452,7 @@ Informationen und was sie bedeuten befindet.
OPTIMIZE TABLE tabelle[,tabelle]...
@end example
-@code{OPTIMIZE TABLE} sollte benutzt werden, wenn Sie grosse Teile der
+@code{OPTIMIZE TABLE} sollte benutzt werden, wenn Sie große Teile der
Tabelle gelöscht haben oder bei Tabellen mit Zeilen variabler Länge viele
Änderungen durchgeführt haben (Tabellen, die @code{VARCHAR}-, @code{BLOB}-
oder @code{TEXT}-Spalten enthalten). Gelöschte Datensätze werden in einer
@@ -20823,14 +20481,15 @@ Wenn die Statistiken nicht aktuell sind (und eine Reparatur nicht durch das
Sortieren des Indexes durchgeführt werden könnte), werden sie aktualisiert.
@end itemize
-@code{OPTIMIZE TABLE} für @code{MyISAM}-Tabellen ist äquvialent zum
+@code{OPTIMIZE TABLE} für @code{MyISAM}-Tabellen ist äquivalent zum
Laufenlassen von @code{myisamchk --quick --check-changed-tables
--sort-index --analyze} auf die Tabelle.
Beachten Sie, dass die Tabelle während der Zeit, in der @code{OPTIMIZE TABLE} läuft, gesperrt ist!
-@node ANALYZE TABLE, FLUSH, OPTIMIZE TABLE, Datenbankadministration
+@node ANALYZE TABLE, FLUSH, OPTIMIZE TABLE, Database Administration
+@c German node ANALYZE TABLE
@subsection @code{ANALYZE TABLE}-Syntax
@findex ANALYZE TABLE
@@ -20867,7 +20526,8 @@ Wenn die Tabelle seit dem letzten @code{ANALYZE TABLE}-Befehl nicht
geändert wurde, wird sie nicht noch einmal analysiert.
-@node FLUSH, KILL, ANALYZE TABLE, Datenbankadministration
+@node FLUSH, KILL, ANALYZE TABLE, Database Administration
+@c German node FLUSH
@subsection @code{FLUSH}-Syntax
@findex FLUSH
@@ -20881,7 +20541,7 @@ FLUSH flush_option [,flush_option]
@end example
Wenn Sie einige der internen Caches, die MySQL benutzt, löschen wollen,
-benuten Sie den @code{FLUSH}-Befehl. Um @code{FLUSH} ausführen zu können,
+benutzen Sie den @code{FLUSH}-Befehl. Um @code{FLUSH} ausführen zu können,
müssen Sie die @strong{RELOAD}-Berechtigung haben.
@code{flush_option} kann eine der folgenden sein:
@@ -20894,29 +20554,30 @@ als @code{max_connect_errors} Fehler in einer Zeile für einen gegebenen
Host während der Verbindung zum MySQL-Server vorkommen, nimmt MySQL an,
dass etwas nicht stimmt und blockiert den Host von weiteren
Verbindungsversuchen. Wenn die Host-Tabellen geflusht werden, gestattet das
-dem Host, einen erneuten Verbindungsversuch zu machen. @xref{Blockierter
-Host}. Sie können @code{mysqld} mit @code{-O
+dem Host, einen erneuten Verbindungsversuch zu machen.
+@c German FIX unwrapped @xref
+@xref\{Blocked host}. Sie können @code{mysqld} mit @code{-O
max_connection_errors=999999999} starten, um diese Fehlermeldung zu
vermeiden.
-@item @code{LOGS} @tab Schliesst alle Log-Dateien und öffnet sie danach
+@item @code{LOGS} @tab Schließt alle Log-Dateien und öffnet sie danach
wieder. Wenn Sie die Update-Log-Datei oder eine binäre Log-Datei ohne
Erweiterung angegeben haben, wird die Erweiterungsnummer der Log-Datei um
eins relativ zur vorherigen Datei hoch gezählt. Wenn Sie eine Erweiterung
-im Dateinamen benutzt haben, schliesst MySQL die Update-Log-Datei und
-öffnet sie danach wieder. @xref{Update-Log-Datei}. Das ist dasselbe, wie
+im Dateinamen benutzt haben, schließt MySQL die Update-Log-Datei und
+öffnet sie danach wieder. @xref\{Update log}. Das ist dasselbe, wie
dem @code{mysqld}-Server das @code{SIGHUP}-Signal senden.
@item @code{PRIVILEGES} @tab Lädt die Berechtigungen aus den
Berechtigungstabellen der @code{mysql}-Datenbank neu.
-@item @code{TABLES} @tab Schliesst alle offenen Tabellen und erzwingt, dass
+@item @code{TABLES} @tab Schließt alle offenen Tabellen und erzwingt, dass
alle Tabellen in Benutzung geschlossen werden.
@item @code{[TABLE | TABLES] tabelle [,tabelle...]} @tab Flusht nur die
angegebenen Tabellen.
-@item @code{TABLES WITH READ LOCK} @tab Schliesst alle offenen Tabellen und
+@item @code{TABLES WITH READ LOCK} @tab Schließt alle offenen Tabellen und
sperrt alle Tabellen aller Datenbanken mit einer Lesesperre, bis man
@code{UNLOCK TABLES} ausführt. Das ist eine sehr bequeme Möglichkeit,
Datensicherungen zu erzeugen, wenn Sie ein Dateisystem wie Veritas haben,
@@ -20932,11 +20593,12 @@ Jeden der oben genannten Befehle können Sie auch mit dem
eingeben.
Sehen Sie sich auch den @code{RESET}-Befehl an, der bei der Replikation
-benutzt wird. @xref{SQL und Replikation}.
+benutzt wird. @xref\{Replication SQL}.
-@node KILL, SHOW, FLUSH, Datenbankadministration
+@node KILL, SHOW, FLUSH, Database Administration
+@c German node KILL
@subsection @code{KILL}-Syntax
@findex KILL
@@ -20995,12 +20657,10 @@ ist, abgebrochen.
@end itemize
-@menu
-* SHOW:: @code{SHOW}-Syntax
-@end menu
-@node SHOW, , KILL, Datenbankadministration
+@node SHOW, , KILL, Database Administration
+@c German node SHOW
@subsection @code{SHOW}-Syntax
@findex SHOW DATABASE INFO
@@ -21043,19 +20703,21 @@ platzhalter}-Teil benutzt wird, kann die @code{platzhalter}-Zeichenkette
eine Zeichenkette sein, die die SQL-@samp{%}- und @samp{_}-
Platzhalterzeichen benutzt.
+
+
@menu
-* SHOW DATABASE INFO:: Informationen über Datenbank, Tabellen, Spalten und Indexe abrufen
-* SHOW TABLE STATUS:: @code{SHOW TABLE STATUS}
-* SHOW STATUS:: @code{SHOW STATUS}
-* SHOW VARIABLES:: @code{SHOW VARIABLES}
-* SHOW LOGS:: @code{SHOW LOGS}
-* SHOW PROCESSLIST:: @code{SHOW PROCESSLIST}
-* SHOW GRANTS:: @code{SHOW GRANTS}
-* SHOW CREATE TABLE:: @code{SHOW CREATE TABLE}
+* SHOW DATABASE INFO::
+* SHOW TABLE STATUS::
+* SHOW STATUS::
+* SHOW VARIABLES::
+* SHOW LOGS::
+* SHOW PROCESSLIST::
+* SHOW GRANTS::
+* SHOW CREATE TABLE::
@end menu
-
@node SHOW DATABASE INFO, SHOW TABLE STATUS, SHOW, SHOW
+@c German node SHOW DATABASE INFO
@subsubsection Informationen über Datenbank, Tabellen, Spalten und Indexe abrufen
@cindex Anzeigen, Informationen, @code{SHOW}
@@ -21079,7 +20741,7 @@ Tabelle hat, wird die Tabelle in der Ausgabe von @code{SHOW TABLES} oder
@code{mysqlshow datenbank} nicht aufgeführt.
@code{SHOW OPEN TABLES} listet die Tabellen auf, die momentan im
-Tabellen-Cache geöffnet sind. @xref{Tabellen-Cache}. Das @code{Comment}-Feld
+Tabellen-Cache geöffnet sind. @xref\{Open tables}. Das @code{Comment}-Feld
zeigt an, wie oft die Tabelle gecachet (@code{cached}) und in Benutzung
(@code{in_use}) ist.
@@ -21088,7 +20750,7 @@ Sie die @code{FULL}-Option angeben, erhalten Sie auch die Berechtigungen,
die Sie für jede Spalte besitzen. Wenn die Spaltentypen von dem abweichen,
was Sie erwarten, nämlich, was Sie im @code{CREATE TABLE}-Statement
angegeben haben, beachten Sie, dass MySQL manchmal Spaltentypen ändert.
-@xref{Stille Spaltentyp-Änderungen}.
+@xref\{Silent column changes}.
Das @code{DESCRIBE}-Statement gibt ähnliche Informationen wie @code{SHOW
COLUMNS} aus. @xref{DESCRIBE, , @code{DESCRIBE}}.
@@ -21126,6 +20788,7 @@ notwendigerweise bei kleinen Tabellen korrekt.
@node SHOW TABLE STATUS, SHOW STATUS, SHOW DATABASE INFO, SHOW
+@c German node SHOW TABLE STATUS
@subsubsection @code{SHOW TABLE STATUS}
@cindex anzeigen, Tabellen-Status
@@ -21144,7 +20807,7 @@ Folgende Spalten werden zurückgegeben:
@multitable @columnfractions .30 .70
@item @strong{Spalte} @tab @strong{Bedeutung}
@item @code{Name} @tab Name der Tabelle.
-@item @code{Type} @tab Typ der Tabelle. @xref{Tabellentypen}.
+@item @code{Type} @tab Typ der Tabelle. @xref\{Table types}.
@item @code{Row_format} @tab Das Zeilenspeicherformat (fest, dynamisch oder komprimiert).
@item @code{Rows} @tab Anzahl der Zeilen.
@item @code{Avg_row_length} @tab Durchschnittliche Zeilenlänge.
@@ -21165,6 +20828,7 @@ Tablespace ausgegeben.
@node SHOW STATUS, SHOW VARIABLES, SHOW TABLE STATUS, SHOW
+@c German node SHOW STATUS
@subsubsection @code{SHOW STATUS}
@cindex @code{mysqladmin}
@@ -21239,10 +20903,10 @@ The status variables listed höher have the following Bedeutung:
@multitable @columnfractions .35 .65
@item @strong{Variable} @tab @strong{Bedeutung}
@item @code{Aborted_clients} @tab Anzahl der Verbindungen, die abgebrochen
-wurden, weil der Client starb, ohne die Verbindung ordnungsgemäss zu
-schliessen. @xref{Kommunikationsfehler}.
+wurden, weil der Client starb, ohne die Verbindung ordnungsgemäß zu
+schließen. @xref\{Communication errors}.
@item @code{Aborted_connects} @tab Anzahl der fehlgeschlagenen Versuche,
-sich mit dem MySQL-Server zu verbinden. @xref{Kommunikationsfehler}.
+sich mit dem MySQL-Server zu verbinden. @xref\{Communication errors}.
@item @code{Bytes_received} @tab Anzahl der Bytes, die von allen Clients
empfangen wurden.
@item @code{Bytes_sent} @tab Anzahl der Bytes, die an alle Clients gesendet
@@ -21333,7 +20997,7 @@ die momentan vom Slave-Thread geöffnet sind.
@item @code{Slow_launch_threads} @tab Anzahl der Threads, die länger als
@code{slow_launch_time} brauchten, um sich zu verbinden.
@item @code{Slow_queries} @tab Anzahl der Anfragen, die länger als
-@code{long_query_time} benötigten. @xref{Langsame-Anfragen-Log-Datei}.
+@code{long_query_time} benötigten. @xref\{Slow query log}.
@item @code{Sort_merge_passes} @tab Anzahl der Verschmelzungen (Merge), die
von einem Sortiervorgang benötigt wurden. Wenn dieser Wert hoch ist,
sollten Sie in Betracht ziehen, @code{sort_buffer} herauf zu setzen.
@@ -21384,6 +21048,7 @@ Speicher erzeugt werden statt auf der Platte.
@node SHOW VARIABLES, SHOW LOGS, SHOW STATUS, SHOW
+@c German node SHOW VARIABLES
@subsubsection @code{SHOW VARIABLES}
@example
@@ -21394,7 +21059,7 @@ SHOW VARIABLES [LIKE platzhalter]
erhalten diese List auch mit dem @code{mysqladmin variables}-Befehl. Wenn
die Vorgabewerte unpassend sind, können Sie die meisten dieser Variablen
mit Kommandozeilenoptionen setzen, wenn Sie @code{mysqld} hoch fahren.
-@xref{Kommandozeilenoptionen}.
+@xref\{Command-line options}.
Die Ausgabe ähnelt der unten stehenden,
obwohl Format und Anzahl der Zeilen wahrscheinlich abweichen:
@@ -21481,18 +21146,18 @@ obwohl Format und Anzahl der Zeilen wahrscheinlich abweichen:
+-------------------------+---------------------------+
@end example
-Jede Option ist unten beschrieben. Die Werte für Puffergrössen, Längen und
-Stack-Grössen sind in Bytes angegeben. Sie können Wert mit den Suffixen
+Jede Option ist unten beschrieben. Die Werte für Puffergrößen, Längen und
+Stack-Größen sind in Bytes angegeben. Sie können Wert mit den Suffixen
@samp{K} oder @samp{M} angeben, um Kilobytes oder Megabytes zu
kennzeichnen. @code{16M} zum Beispiel bedeutet 16 Megabytes. Bei den
-Suffixen spielt Gross-/Kleinschreibung keine Rolle, @code{16M} und
+Suffixen spielt Groß-/Kleinschreibung keine Rolle, @code{16M} und
@code{16m} sind äquivalent:
@cindex Variablen, Werte
@table @code
@item @code{ansi_mode}.
Ist @code{ON}, wenn @code{mysqld} mit @code{--ansi} gestartet wurde.
-@xref{ANSI-Modus}.
+@xref\{ANSI mode}.
@item @code{back_log}
Die Anzahl unerledigter Verbindungsanforderung, die MySQL haben kann. Dies
@@ -21500,14 +21165,14 @@ kommt ins Spiel, wenn der Haupt-Thread von MySQL @strong{SEHR} viele
Verbindungsanforderungen in sehr kurzer Zeit erhält. Dann dauert es etwas
(wenngleich sehr kurz), damit der Haupt-Thread die Verbindung prüfen und
einen neuen Thread starten kann. Der @code{back_log}-Wert zeigt an, wie
-viele Verbindungen während dieser kurzen Zeit gestackt werden können, bevor
+viele Verbindungen während dieser kurzen Zeit gestapelt (gestackt) werden können, bevor
MySQL für einen Moment aufhört, neue Anforderungen zu beantworten. Sie
-brauchen diesen Wert nur dann herauf setzen, wenn Sie eine grosse Zahl von
+brauchen diesen Wert nur dann herauf setzen, wenn Sie eine große Zahl von
Verbindungen in kurzer Zeit erwarten.
-Mit anderen Worten ist dieser Wert die Grösse der Listen-Queue
+Mit anderen Worten ist dieser Wert die Größe der Listen-Queue
(Warteschlange) für herein kommende TCP/IP-Verbindungen. Ihr Betriebssystem
-hat seine eigene Beschränkung hinsichtlich der Grösse dieser Queue. Die
+hat seine eigene Beschränkung hinsichtlich der Größe dieser Queue. Die
Handbuchseiten zum Unix-@code{listen(2)}-System sollten hier weitere
Details haben. Sehen Sie in der Dokumentation Ihres Betriebssystems nach,
wie hoch der Wert dieser Variablen maximal sein kann. Wenn Sie versuchen,
@@ -21541,7 +21206,7 @@ wenn Sie lange Transaktionen durchführen oder wenn @code{mysqld} viele
Zeile untersuchen muss, um die Anfrage zu berechnen.
@item @code{bdb_logdir}
-Der WErt der @code{--bdb-logdir}-Option.
+Der Wert der @code{--bdb-logdir}-Option.
@item @code{bdb_shared_data}
Ist @code{ON}, wenn Sie @code{--bdb-shared-data} benutzen.
@@ -21549,20 +21214,20 @@ Ist @code{ON}, wenn Sie @code{--bdb-shared-data} benutzen.
@item @code{bdb_tmpdir}
Der Wert der @code{--bdb-tmpdir}-Option.
-@item @code{binlog_cache_size}. Die Grösse des Caches, in dem
+@item @code{binlog_cache_size}. Die Größe des Caches, in dem
SQL-Statements für das Binär-Log während einer Transaktion vorgehalten
-werden. Wenn Sie oft grosse, aus vielen Statements bestehende Transaktionen
+werden. Wenn Sie oft große, aus vielen Statements bestehende Transaktionen
durchführen, können Sie diesen Wert herauf setzen, um mehr Performance zu
erzielen. @xref{COMMIT}.
@item @code{character_set}
-Der vorgabemässige Zeichensatz.
+Der vorgabemäßige Zeichensatz.
@item @code{character_sets}
Die unterstützten Zeichensätze.
@item @code{concurrent_inserts}
-Falls @code{ON} (Vorgabe), lässt MySQL @code{INSERT} auf
+Falls @code{ON} (Vorgabe), läßt MySQL @code{INSERT} auf
@code{MyISAM}-Tabellen zu, auf die zur gleichen Zeit @code{SELECT}-Anfragen
laufen. Sie können diese Option ausschalten, indem Sie @code{mysqld} mit
@code{--safe} oder @code{--skip-new} starten.
@@ -21577,14 +21242,14 @@ Der Wert der @code{--datadir}-Option.
@item @code{delay_key_write}
Falls angeschaltet (Vorgabe), akzeptiert MySQL die
-@code{delay_key_write}-Option von @code{CREATE TABLE}. Das heisst, dass der
+@code{delay_key_write}-Option von @code{CREATE TABLE}. Das heißt, dass der
Schlüsselpuffer für Tabellen bei dieser Option nicht bei jeder
Index-Aktualisierung auf Platte zurückgeschrieben (flush) wird, sondern
nur, wenn eine Tabelle geschlossen wird. Das beschleunigt Schreibvorgänge
auf Schlüssel ganz erheblich, aber Sie sollten eine automatische Prüfung
aller Tabellen mit @code{myisamchk --fast --force} hinzufügen, wenn Sie
diese Option benutzen. Beachten Sie: Wenn Sie @code{mysqld} mit der
-@code{--delay-key-write-for-all-tables}-Option startet, heisst das, dass
+@code{--delay-key-write-for-all-tables}-Option startet, heißt das, dass
alle Tabelle so behandelt werden, als wenn sie mit der
@code{delay_key_write}-Option erzeugt worden wären. Sie können diesen Flag
löschen, wenn Sie @code{mysqld} mit @code{--skip-new} oder
@@ -21601,7 +21266,7 @@ Wie lange ein @code{INSERT DELAYED}-Thread auf @code{INSERT}-Statements
warten soll, bevor abgebrochen wird.
@item @code{delayed_queue_size}
-Welche Warteschleifen-(Queue)-Speichergrösse (in Zeilen) für die Handhabung
+Welche Warteschleifen-(Queue)-Speichergröße (in Zeilen) für die Handhabung
von @code{INSERT DELAYED} zugewiesen werden soll. Wenn die Queue voll ist,
wartet jeder Client, der @code{INSERT DELAYED} ausführt, bis es wieder
Platz in der Queue gibt.
@@ -21636,12 +21301,12 @@ der Server beim Start ausführen soll.
@item @code{interactive_timeout}
Die Anzahl von Sekunden, die der Server bei einer interaktiven Verbindung
-wartet, bis er sie schliesst. Ein interaktiver Client ist definiert als
+wartet, bis er sie schließt. Ein interaktiver Client ist definiert als
Client, der die @code{CLIENT_INTERACTIVE}-Option für
@code{mysql_real_connect()} benutzt. Siehe auch @code{wait_timeout}.
@item @code{join_buffer_size}
-Die Grösse des Puffers, der für volle Joins benutzt wird (Joins, die keine
+Die Größe des Puffers, der für volle Joins benutzt wird (Joins, die keine
Indexe benutzen). Der Puffer wird einmal pro vollem Join zwischen zwei
Tabellen zugewiesen. Setzen Sie diesen Wert herauf, um einen schnelleren
vollen Join zu erhalten, wenn das Addieren von Indexen nicht möglich ist.
@@ -21650,10 +21315,10 @@ von Indexen.)
@c Make texi2html Support index @anchor{Index cache size}. Then change
@c some xrefs to point here
-@cindex Indexe, Blockgrösse
+@cindex Indexe, Blockgröße
@item @code{key_buffer_size}
Index-Blöcke werden gepuffert und von allen Threads geteilt.
-@code{key_buffer_size} ist die Grösse des Puffers, der für Index-Blöcke
+@code{key_buffer_size} ist die Größe des Puffers, der für Index-Blöcke
benutzt wird.
Setzen Sie diesen Wert herauf, um eine bessere Index-Handhabung zu erzielen
@@ -21683,7 +21348,7 @@ erhalten, benutzen Sie @code{LOCK TABLES}. @xref{LOCK TABLES, , @code{LOCK TABLE
Die Sprache, in der Fehlermeldungen ausgegeben werden.
@item @code{large_file_support}
-Ob @code{mysqld} mit Optionen für die Unterstützung grosser Dateien
+Ob @code{mysqld} mit Optionen für die Unterstützung großer Dateien
kompiliert wurde.
@item @code{locked_in_memory}
@@ -21705,21 +21370,21 @@ Ob Aktualisierungen vom Slave geloggt werden sollen.
Wenn eine Anfrage länger als diesen Wert (in Sekunden) benötigt, wird der
@code{Slow_queries}-Zähler hoch gezählt. Wenn Sie @code{--log-slow-queries}
benutzen, wird die Anfrage in die Slow-Query-Logdatei geschrieben.
-@xref{Langsame-Anfragen-Log-Datei}.
+@xref\{Slow query log}.
@item @code{lower_case_table_names}
Wenn auf 1 gesetzt, werden Tabellennamen in Kleinschreibung auf Platte
gespeichert. Tabellennamen sind dann unabhängig von der verwendeten
-Gross-/Kleinschreibung.
-@xref{Gross-/Kleinschreibung}.
+Groß-/Kleinschreibung.
+@xref\{Case sensitivity}.
@item @code{max_allowed_packet}
-Die maximale Grösse eine Pakets. Der Nachrichtenpuffer wird auf
+Die maximale Größe eine Pakets. Der Nachrichtenpuffer wird auf
@code{net_buffer_length} Bytes Länge initialisiert, kann aber wenn nötig
-bis zu @code{max_allowed_packet} Bytes gross werden. Der Vorgabewert ist
-klein, um grosse (möglicherweise falsche) Pakete abzufangen. Sie müssen
-diesen Wert erhöhen, wenn Sie grosse @code{BLOB}-Spalten verwenden. Er
-sollte so gross sein wie die grösste @code{BLOB}-Spalte, die Sie verwenden
+bis zu @code{max_allowed_packet} Bytes Groß werden. Der Vorgabewert ist
+klein, um große (möglicherweise falsche) Pakete abzufangen. Sie müssen
+diesen Wert erhöhen, wenn Sie große @code{BLOB}-Spalten verwenden. Er
+sollte so Groß sein wie die größte @code{BLOB}-Spalte, die Sie verwenden
wollen. Das aktuelle Protokoll begrenzt @code{max_allowed_packet} auf 16 MB.
@item @code{max_binlog_cache_size}
@@ -21737,7 +21402,7 @@ mehr als 1 GB. Vorgabe ist 1 GB.
Die Anzahl von Clients, die gleichzeitig verbunden sind. Wenn Sie diesen
Wert hoch setzen, wird die Anzahl der Datei-Deskriptoren heraufgesetzt, die
@code{mysqld} benötigt. Siehe weiter unten, Bemerkungen zu Beschränkungen
-bei Datei-Deskriptoren. @xref{Zu viele Verbindungen}.
+bei Datei-Deskriptoren. @xref\{Too many connections}.
@item @code{max_connect_errors}
Wenn es mehr als diese Anzahl unterbrochener Verbindungen von einem Host
@@ -21752,7 +21417,7 @@ sind, wird die Zeile eingefügt, als ob das @code{DELAYED}-Attribut nicht
angegeben wäre.
@item @code{max_heap_table_size}
-Kein Erzeugen von Heap-Tabellen zulassen, die grösser als dieser Wert sind.
+Kein Erzeugen von Heap-Tabellen zulassen, die größer als dieser Wert sind.
@item @code{max_join_size}
Joins, die wahrscheinlich mehr als @code{max_join_size} Datensätze lesen
@@ -21789,26 +21454,26 @@ Der Puffer, der beim Sortieren des Indexes zugewiesen wird, wenn man ein
@item @code{myisam_max_extra_sort_file_size}.
Wenn das Erzeugen der temporären Datei für schnelle Index-Erzeugung um
-diesen Wert grösser sein würde als die Benutzung des Schlüssel-Caches, wird
+diesen Wert größer sein würde als die Benutzung des Schlüssel-Caches, wird
die Schlüssel-Cache-Methode bevorzugt. Wird hauptsächlich benutzt, um lange
-Zeichen-Schlüssel in grossen Tabellen zu zwingen, die langsamere
+Zeichen-Schlüssel in großen Tabellen zu zwingen, die langsamere
Schlüssel-Cache-Methode zu benutzen, um den Index zu erzeugen.
@strong{HINWEIS:} Dieser Parameter wird in Megabytes angegeben!
@item @code{myisam_max_sort_file_size}
-Die maximale Grösse der temporären Datei, die MySQL benutzen darf, während
+Die maximale Größe der temporären Datei, die MySQL benutzen darf, während
es den Index erzeugt (während @code{REPAIR}, @code{ALTER TABLE} oder
-@code{LOAD DATA INFILE}). Wenn die Datei grösser als dieser Wert würde, wird
+@code{LOAD DATA INFILE}). Wenn die Datei größer als dieser Wert würde, wird
der Index über den Schlüssel-Cache erzeugt (was langsamer ist).
@strong{HINWEIS:} Dieser Parameter wird in Megabytes angegeben!
@item @code{net_buffer_length}
Der Kommunikationspuffer wird zwischen Anfragen auf diesen Wert zurück
gesetzt. Normalerweise sollte das nicht geändert werden, aber wenn Sie sehr
-wenig Arbeitsspeicher haben, können Sie ihn auf die erwartete Grösse einer
+wenig Arbeitsspeicher haben, können Sie ihn auf die erwartete Größe einer
Anfrage setzen (also die erwartete Länge von SQL-Statements, die von
Clients gesendet werden. Wenn Statements diese Länge überschreiten, wird
-der Puffer automatisch vergrössert, bis zu @code{max_allowed_packet} Bytes.)
+der Puffer automatisch vergrößert, bis zu @code{max_allowed_packet} Bytes.)
@item @code{net_read_timeout}
Anzahl von Sekunden, die auf weitere Daten von einer Verbindung gewartet
@@ -21830,9 +21495,9 @@ gewartet wird, bis das Schreiben abgebrochen wird.
Wenn dieser Wert ungleich 0 ist, benutzt @code{mysqld} Datei-Deskriptoren,
die mit @code{setrlimit()} benutzt werden. Wenn dieser Wert gleich 0 ist,
reserviert @code{mysqld} @code{max_connections * 5} oder
-@code{max_connections + table_cache * 2} (je nachdem, was grösser ist)
+@code{max_connections + table_cache * 2} (je nachdem, was größer ist)
Anzahl von Dateien. Sie sollten diesen Wert herauf setzen, wenn
-@code{mysqld} Ihnen die Fehlermeldungr 'Too many open files' gibt.
+@code{mysqld} Ihnen die Fehlermeldung 'Too many open files' gibt.
@item @code{pid_file}
Der Wert der @code{--pid-file}-Option.
@@ -21845,7 +21510,7 @@ Die Protokoll-Version, die vom MySQL-Server benutzt wird.
@item @code{record_buffer}
Jeder Thread, der einen sequentiellen Scan ausführt, alloziert einen Puffer
-dieser Grösse für jede Tabelle, die er scannt. Wenn Sie viele sequentielle
+dieser Größe für jede Tabelle, die er scannt. Wenn Sie viele sequentielle
Scans ausführen, sollten Sie diesen Wert herauf setzen.
@item @code{record_rnd_buffer}
@@ -21894,29 +21559,29 @@ Der Unix-Socket, der vom Server benutzt wird.
@item @code{sort_buffer}
Jeder Thread, der einen Sortierdurchgang durchführen muss, alloziert einen
-Puffer dieser Grösse. Setzen Sie diesen Wert herauf, um schnellere
+Puffer dieser Größe. Setzen Sie diesen Wert herauf, um schnellere
@code{ORDER BY}- oder @code{GROUP BY}-Operationen zu erhalten.
-@xref{Temporäre Dateien}.
+@xref\{Temporary files}.
@item @code{table_cache}
Die Anzahl offener Tabellen für alle Threads. Wenn dieser Wert herauf
gesetzt wird, erhöht sich die Anzahl von Datei-Deskriptoren, die
@code{mysqld} benötigt. Sie können prüfen, ob Sie den Tabellen-Cache
-vergrössern müssen, indem Sie die @code{Opened_tables}-Variable prüfen.
-@xref{SHOW}. Wenn diese Variable sehr gross ist und Sie @code{FLUSH TABLES}
+vergrößern müssen, indem Sie die @code{Opened_tables}-Variable prüfen.
+@xref{SHOW}. Wenn diese Variable sehr Groß ist und Sie @code{FLUSH TABLES}
nicht oft brauchen (was lediglich alle Tabellen zwingt, geschlossen und
wieder geöffnet zu werden), sollten Sie den Wert dieser Variablen herauf
setzen.
Wegen weiterer Informationen zum Tabellen-Cache sehen Sie unter
-@ref{Tabellen-Cache} nach.
+@ref\{Open tables} nach.
@item @code{table_type}
-Der vorgabemässige Tabellentyp.
+Der vorgabemäßige Tabellentyp.
@item @code{thread_cache_size}
Wie viele Threads in einem Cache für weitere Benutzung offen gehalten
-werden sollen. Wenn eine Client die Verbindung schliesst, werden die
+werden sollen. Wenn eine Client die Verbindung schließt, werden die
Threads des Clients in den Cache geschrieben, wenn es nicht mehr als
@code{Thread_cache_size} Threads als vorher gibt. Alle neuen Threads werden
zuerst aus dem Cache genommen und nur, wenn der Cache leer ist, wird ein
@@ -21934,16 +21599,16 @@ the Threads System a hint für the desired Anzahl von Threads that should
be run at the same time.
@item @code{thread_stack}
-Die Stack-Grösse jedes Threads. Viele der Beschränkungen, die durch den
+Die Stack-Größe jedes Threads. Viele der Beschränkungen, die durch den
@code{crash-me}-Test festgestellt werden, hängen von diesem Wert ab. Der
-Vorgabewert ist gross genug für normale Operationen.
-@xref{MySQL-Benchmarks}.
+Vorgabewert ist Groß genug für normale Operationen.
+@xref\{MySQL Benchmarks}.
@item @code{timezone}
Die Zeitzone für den Server.
@item @code{tmp_table_size}
-Wenn eine temporäre Tabelle im Arbeitsspeicher diese Grösse überschreitet,
+Wenn eine temporäre Tabelle im Arbeitsspeicher diese Größe überschreitet,
wandelt MySQL sie automatisch in eine @code{MyISAM}-Tabelle auf der Platte
um. Setzen Sie den Wert von @code{tmp_table_size} herauf, wenn Sie viele
fortgeschrittene @code{GROUP BY}-Anfragen und viel Arbeitsspeicher haben.
@@ -21957,15 +21622,16 @@ Die Versionsnummer des Servers.
@item @code{wait_timeout}
Die Anzahl von Sekunden, die der Server auf Aktivität auf einer Verbindung
-wartet, bevor er sie schliesst. Siehe auch @code{interactive_timeout}.
+wartet, bevor er sie schließt. Siehe auch @code{interactive_timeout}.
@end table
Der Handbuchabschnitt, der das Tunen von MySQL beschreibt, enthält einige
Informationen darüber, wie die oben aufgeführten Variablen getunt werden.
-@xref{Serverparameter}.
+@xref\{Server parameters}.
@node SHOW LOGS, SHOW PROCESSLIST, SHOW VARIABLES, SHOW
+@c German node SHOW LOGS
@subsubsection @code{SHOW LOGS}
@code{SHOW LOGS} zeigt Ihnen Statusinformationen über bestehende
@@ -21983,6 +21649,7 @@ Transaktions-Subsystem benötigt wird)
@node SHOW PROCESSLIST, SHOW GRANTS, SHOW LOGS, SHOW
+@c German node SHOW PROCESSLIST
@subsubsection @code{SHOW PROCESSLIST}
@findex Threads
@@ -22007,6 +21674,7 @@ Sie diese Berechtigung nicht allen Ihren Benutzern geben).
@node SHOW GRANTS, SHOW CREATE TABLE, SHOW PROCESSLIST, SHOW
+@c German node SHOW GRANTS
@subsubsection @code{SHOW GRANTS}
@cindex Berechtigungen, anzeigen
@@ -22026,6 +21694,7 @@ mysql> SHOW GRANTS FOR root@@localhost;
@node SHOW CREATE TABLE, , SHOW GRANTS, SHOW
+@c German node SHOW CREATE TABLE
@subsubsection @code{SHOW CREATE TABLE}
Zeigt ein @code{CREATE TABLE}-Statement an, das die angegebene Tabelle
@@ -22043,37 +21712,40 @@ Create Table: CREATE TABLE tabelle (
@end example
-@code{SHOW CREATE TABLE} setzt Tabellen- und Spaltennamen gemäss der
+@code{SHOW CREATE TABLE} setzt Tabellen- und Spaltennamen gemäß der
@code{SQL_QUOTE_SHOW_CREATE}-Option in Anführungszeichen.
@ref{SET OPTION, , @code{SET OPTION SQL_QUOTE_SHOW_CREATE}}.
-@node Lokalisierung, Serverseitige Skripte, Datenbankadministration, MySQL-Datenbankadministration
+@node Localisation, Server-Side Scripts, Database Administration, MySQL Database Administration
+@c German node Lokalisierung
@section MySQL-Lokalisierung und internationaler Gebrauch
+
+
@menu
-* Zeichensätze:: Der für Daten und Sortieren benutzte Zeichensatz
-* Sprachen:: Nicht englische Fehlermeldungen
-* Zeichensatz hinzufügen:: Einen neuen Zeichensatz hinzufügen
-* Zeichen-Arrays:: Die Zeichen-Definitions-Arrays
-* Zeichenketten-Vergleich:: Unterstützung für Zeichenketten-Vergleich
-* Multi-Byte-Zeichen:: Unterstützung für Multi-Byte-Zeichen
-* Probleme mit Zeichensätzen::
+* Character sets::
+* Languages::
+* Adding character set::
+* Character arrays::
+* String collating::
+* Multi-byte characters::
+* Problems with character sets::
@end menu
-
-@node Zeichensätze, Sprachen, Lokalisierung, Lokalisierung
+@node Character sets, Languages, Localisation, Localisation
+@c German node Zeichensätze
@subsection Der für Daten und Sortieren benutzte Zeichensatz
@cindex Zeichensätze
@cindex Daten, Zeichensätze
@cindex sortieren, Zeichensätze
-Vorgabemässig benutzt MySQL den ISO-8859-1-(Latin1)-Zeichensatz, wobei nach
+Vorgabemäßig benutzt MySQL den ISO-8859-1-(Latin1)-Zeichensatz, wobei nach
schwedischer / finnischer Reihenfolge sortiert wird. Dieser Zeichensatz ist
für die USA und Westeuropa geeignet.
-Alle standardmässigen MySQL-Binärdistributionen werden mit
+Alle standardmäßigen MySQL-Binärdistributionen werden mit
@code{--with-extra-charsets=complex} kompiliert. Das fügt allen
Standard-Programmen Code hinzu, damit diese @code{latin1} und alle
Multi-Byte-Zeichensätze in der Binärdatei handhaben können. Andere
@@ -22089,7 +21761,7 @@ Sie können den Zeichensatz mit der @code{--default-character-set}-Option
von den @code{--with-charset=charset}- und @code{--with-extra-charset=
list-of-charset | complex | all}-Optionen für @code{configure} ab und den
Zeichensatz-Konfigurationsdateien, die in @file{SHAREDIR/charsets/Index}
-aufgeführt sind. @xref{Optionen konfigurieren}.
+aufgeführt sind. @xref\{configure options}.
Wenn Sie den Zeichensatz ändern, wenn Sie MySQL laufen lassen (was
eventuell auch die Sortierreihenfolge ändert), müssen Sie @code{myisamchk
@@ -22097,14 +21769,14 @@ eventuell auch die Sortierreihenfolge ändert), müssen Sie @code{myisamchk
eventuell nicht richtig sortiert.
Wenn sich ein Client mit dem MySQL-Server verbindet, schickt der Server den
-vorgabemässigen Zeichensatz, der in Benutzung ist, an den Client. Der
+vorgabemäßigen Zeichensatz, der in Benutzung ist, an den Client. Der
Client schaltet für diese Verbindung auf den Gebrauch dieses Zeichensatzes
um.
Man sollte bei einer SQL-Anfrage @code{mysql_real_escape_string()}
benutzen, wenn man Zeichenketten escapet. @code{mysql_real_escape_string()}
ist identisch mit der alten @code{mysql_escape_string()}-Funktion, ausser
-dass es die MySQL-Connection-Handle als ersten Paramenter nimmt.
+dass es die MySQL-Connection-Handle als ersten Parameter nimmt.
Wenn der Client mit anderen Pfaden kompiliert wird, als wo der Server
installiert ist, und der Benutzer, der MySQL konfigurierte, nicht alle
@@ -22133,11 +21805,13 @@ default-character-set=character-set-name
Aber normalerweise wird das nie benötigt.
+
@menu
-* Deutscher Zeichensatz::
+* German character set::
@end menu
-@node Deutscher Zeichensatz, , Zeichensätze, Zeichensätze
+@node German character set, , Character sets, Character sets
+@c German node Deutscher Zeichensatz
@subsubsection Deutscher Zeichensatz
Um eine deutsche Sortierreihenfolge zu erhalten, startet man @code{mysqld}
@@ -22154,17 +21828,18 @@ auf die Zeichenketten durchgeführt, bevor der Vergleich ausgeführt wird:
ß -> ss
@end example
-Alle Akzentzeichen werden in ihr Nicht-Akzent-Pendant in Grossschreibung
-umgewandelt. Alle Buchstaben werden in Grossschreibung umgewandelt.
+Alle Akzentzeichen werden in ihr Nicht-Akzent-Pendant in Großschreibung
+umgewandelt. Alle Buchstaben werden in Großschreibung umgewandelt.
Beim Zeichenkettenvergleich mit @code{LIKE} wird das Mapping von einem auf
zwei Buchstaben nicht durchgeführt. Alle Buchstaben werden in
-Grossschreibung umgewandelt. Akzente werden aus allen Buchstaben entfernt,
+Großschreibung umgewandelt. Akzente werden aus allen Buchstaben entfernt,
mit folgenden Ausnahmen: @code{Ü}, @code{ü}, @code{Ö}, @code{ö}, @code{Ä}
und @code{ä}.
-@node Sprachen, Zeichensatz hinzufügen, Zeichensätze, Lokalisierung
+@node Languages, Adding character set, Character sets, Localisation
+@c German node Sprachen
@subsection Nicht englische Fehlermeldungen
@cindex Fehlermeldungen, Sprachen
@@ -22193,7 +21868,7 @@ shell> mysqld --language=/usr/local/share/german
Beachten Sie, dass alle Sprachnamen in Kleinschreibung angegeben werden.
-Die Sprachdateien liegen (vorgabemässig) in
+Die Sprachdateien liegen (vorgabemäßig) in
@file{@var{mysql_base_dir}/share/@var{language}/}.
Um die Fehlermeldungsdatei zu aktualisieren, editieren Sie die
@@ -22208,7 +21883,8 @@ Wenn Sie auf eine neuere Version von MySQL aktualisieren, denken Sie daran,
Ihre Änderungen mit der neuen @file{errmsg.txt}-Datei zu wiederholen!
-@node Zeichensatz hinzufügen, Zeichen-Arrays, Sprachen, Lokalisierung
+@node Adding character set, Character arrays, Languages, Localisation
+@c German node Zeichensatz hinzufügen
@subsection Einen neuen Zeichensatz hinzufügen
@cindex Zeichensätze, hinzufügen
@@ -22257,7 +21933,7 @@ Das @code{ctype}-Array nimmt bis zu 257 Wörter auf. Die @code{to_lower}-,
256 Wörter auf.
@end itemize
-@xref{Zeichen-Arrays}.
+@xref\{Character arrays}.
@item
Fügen Sie den Zeichensatznamen den @code{CHARSETS_AVAILABLE}- und
@@ -22285,7 +21961,7 @@ sehen, was definiert werden muss, zum Beispiel
@file{strings/ctype-big5.c}. Beachten Sie, dass die Arrays in Ihrer Datei
Namen wie @code{ctype_MEINSET}, @code{to_lower_MEINSET} usw. haben müssen.
Das entspricht den Arrays im einfachen Zeichensatz.
-@xref{Zeichen-Arrays}. Bei einem komplexen Zeichensatz
+@xref\{Character arrays}. Bei einem komplexen Zeichensatz
@item
fügen Sie am Anfang der Datei einen speziellen Kommentar wie folgt ein:
@@ -22319,7 +21995,7 @@ Danach sollten Sie einige der folgenden Funktionen erzeugen:
@item @code{my_like_range_MEINSET()}
@end itemize
-@xref{Zeichenketten-Vergleich}.
+@xref\{String collating}.
@item
Fügen Sie den Zeichensatznamen den @code{CHARSETS_AVAILABLE}- und
@@ -22336,11 +22012,12 @@ Wenn Sie wollen, dass der Zeichensatz in die MySQL-Distribution aufgenommen
wird, senden Sie einen Patch an @email{internals@@lists.mysql.com}.
-@node Zeichen-Arrays, Zeichenketten-Vergleich, Zeichensatz hinzufügen, Lokalisierung
+@node Character arrays, String collating, Adding character set, Localisation
+@c German node Zeichen-Arrays
@subsection Die Zeichen-Definitions-Arrays
@code{to_lower[]} und @code{to_upper[]} sind einfache Arrays, die die
-Buchstaben in Klein- und Grossschreibung enthalten, die jedem Mitglied des
+Buchstaben in Klein- und Großschreibung enthalten, die jedem Mitglied des
Zeichensatzes entsprechen. Beispiel:
@example
@@ -22351,11 +22028,11 @@ to_upper['a'] enthält 'A'
@code{sort_order[]} ist eine Map, die anzeigt, wie Buchstaben für
Vergleichs- und Sortierzwecke geordnet werden sollten. Bei vielen
Zeichensätzen ist das dasselbe wie @code{to_upper[]} (was bedeutet, dass
-das Sortieren ohne Berücksichtigung der Gross-/Kleinschreibung erfolgt).
+das Sortieren ohne Berücksichtigung der Groß-/Kleinschreibung erfolgt).
MySQL sortiert Buchstaben auf der Grundlage des Wertes von
@code{sort_order[character]}. Wegen komplizierterer Sortierregeln sehen Sie
die Erörterung zu Zeichenketten-Vergleichen unten an
-@xref{Zeichenketten-Vergleich}.
+@xref\{String collating}.
@code{ctype[]} ist ein Array von Bit-Werten, mit einem Element pro Zeichen.
(Beachten Sie, dass @code{to_lower[]}, @code{to_upper[]} und
@@ -22366,7 +22043,7 @@ Abwärtskompatibilität notwendig, um EOF (Dateiende) handhaben zu können.)
Sie finden folgenden Bitmasken-Definitionen in @file{m_ctype.h}:
@example
-#define _U 01 /* Grossschreibung */
+#define _U 01 /* Großschreibung */
#define _L 02 /* Kleinschreibung */
#define _N 04 /* Numerisch (Ziffer) */
#define _S 010 /* Leerzeichen */
@@ -22378,7 +22055,7 @@ Sie finden folgenden Bitmasken-Definitionen in @file{m_ctype.h}:
Der @code{ctype[]}-Eintrag für jeden Buchstaben sollte die
Vereinigungsmenge der betreffenden Bitmasken-Werte sein, die den Buchstaben
-beschreiben. @code{'A'} beispielsweise ist Buchstabe in Grossschreibung
+beschreiben. @code{'A'} beispielsweise ist Buchstabe in Großschreibung
(@code{_U}) und gleichzeitig eine hexadezimale Ziffer (@code{_X}), daher
sollte @code{ctype['A'+1]} folgenden Wert erhalten:
@@ -22387,7 +22064,8 @@ _U + _X = 01 + 0200 = 0201
@end example
-@node Zeichenketten-Vergleich, Multi-Byte-Zeichen, Zeichen-Arrays, Lokalisierung
+@node String collating, Multi-byte characters, Character arrays, Localisation
+@c German node Zeichenketten-Vergleich
@subsection Unterstützung für Zeichenketten-Vergleich
@cindex Vergleich, Zeichenketten
@@ -22408,7 +22086,8 @@ Verhältnis gesetzt werden, auf das die Zeichenketten während
sein).
-@node Multi-Byte-Zeichen, Probleme mit Zeichensätze, Zeichenketten-Vergleich, Lokalisierung
+@node Multi-byte characters, Problems with character sets, String collating, Localisation
+@c German node Multi-Byte-Zeichen
@subsection Unterstützung für Multi-Byte-Zeichen
@cindex Buchstaben, Multi-Byte
@@ -22425,10 +22104,11 @@ die Zeichensätze euc_kr, gb2312, gbk, sjis und ujis an. Diese sind in den
implementiert.
Sie müssen den @code{mbmaxlen_MEINSET=N}-Wert in einem speziellen Kommentar
-am Anfang der Quelldatei angeben. @code{N} sollte auf die Grösse in Bytes
-des grössten Buchstabens im Zeichensatz gesetzt werden.
+am Anfang der Quelldatei angeben. @code{N} sollte auf die Größe in Bytes
+des größten Buchstabens im Zeichensatz gesetzt werden.
-@node Probleme mit Zeichensätzen, , Multi-Byte-Zeichen, Lokalisierung
+@node Problems with character sets, , Multi-byte characters, Localisation
+@c German node Probleme mit Zeichensätzen
@subsection Probleme mit Zeichensätzen
Wenn Sie versuchen, einen Zeichensatz zu benutzen, der nicht in Ihre
@@ -22464,19 +22144,22 @@ Bei MyISAM-Tabellen können Sie den Zeichensatznamen und die Anzahl für eine
Tabelle mit @code{myisamchk -dvv tabelle} prüfen.
-@node Serverseitige Skripte, Clientseitige Skripte, Lokalisierung, MySQL-Datenbankadministration
+@node Server-Side Scripts, Client-Side Scripts, Localisation, MySQL Database Administration
+@c German node Serverseitige Skripte
@section Serverseitige Skripte und Dienstprogramme für MySQL
+
+
@menu
-* Überblick über serverseitige Programme:: Überblick über die serverseitigen Skripte und Dienstprogramme
-* safe_mysqld:: safe_mysqld, der Wrapper um mysqld
-* mysqld_multi:: mysqld_multi, Programm zur Verwaltung mehrerer MySQL-Server
-* myisampack:: myisampack, MySQL-Programm zum Erzeugen komprimierter Nur-Lese-Tabellen
-* mysqld-max:: mysqld-max, ein erweiterter mysqld-Server
+* Server-Side Overview::
+* safe_mysqld::
+* mysqld_multi::
+* myisampack::
+* mysqld-max::
@end menu
-
-@node Überblick über serverseitige Programme, safe_mysqld, Serverseitige Skripte, Serverseitige Skripte
+@node Server-Side Overview, safe_mysqld, Server-Side Scripts, Server-Side Scripts
+@c German node Überblick über serverseitige Programme
@subsection Überblick über serverseitige Programme und Dienstprogramme
@cindex Umgebungsvariablen
@@ -22495,15 +22178,15 @@ Server kommunizieren, benutzen folgenden Umgebungsvariablen:
@tindex Umgebungsvariable, @code{MYSQL_DEBUG}
@multitable @columnfractions .25 .75
@item @strong{Name} @tab @strong{Beschreibung}
-@item @code{MYSQL_UNIX_PORT} @tab Der vorgabemässige Socket; benutzt für Verbindungen zu @code{localhost}
-@item @code{MYSQL_TCP_PORT} @tab Der vorgabemässige TCP/IP-Port
-@item @code{MYSQL_PWD} @tab Das vorgabemässige Passwort
+@item @code{MYSQL_UNIX_PORT} @tab Der vorgabemäßige Socket; benutzt für Verbindungen zu @code{localhost}
+@item @code{MYSQL_TCP_PORT} @tab Der vorgabemäßige TCP/IP-Port
+@item @code{MYSQL_PWD} @tab Das vorgabemäßige Passwort
@item @code{MYSQL_DEBUG} @tab Debug-Trace-Optionen beim Debuggen
@item @code{TMPDIR} @tab Das Verzeichnis, in dem temporäre Tabellen / Dateien erzeugt werden
@end multitable
Die Benutzung von @code{MYSQL_PWD} ist unsicher.
-@xref{Verbinden}.
+@xref\{Connecting}.
@tindex @code{MYSQL_HISTFILE}-Umgebungsvariable
@tindex Umgebungsvariable, @code{MYSQL_HISTFILE}
@@ -22516,7 +22199,7 @@ Der @file{mysql}-Client benutzt die Datei, die in der
@code{MYSQL_HISTFILE}-Umgebungsvariablen angegeben ist, um die
Kommandozeilen-History zu speichern. Der Vorgabewert für die History-Datei
ist @file{$HOME/.mysql_history}, wobei @code{$HOME} der Wert der
-@code{HOME}-Umgebungsvariablen ist. @xref{Umgebungsvariablen}.
+@code{HOME}-Umgebungsvariablen ist. @xref\{Environment variables}.
Alle MySQL-Programme nehmen viele unterschiedliche Optionen auf. Jedes
MySQL-Programm bietet jedoch eine @code{--help}-Option, die Sie benutzen
@@ -22525,7 +22208,7 @@ Programmoptionen zu erhalten. Probieren Sie zum Beispiel @code{mysql
--help} aus.
Sie können Vorgabeoptionen für alle Standard-Client-Programme mit einer
-Optionsdatei überschreiben. @ref{Optionsdateien}.
+Optionsdatei überschreiben. @ref\{Option files}.
Die unten stehende Liste beschreibt kurz die MySQL-Programme:
@@ -22535,7 +22218,7 @@ Die unten stehende Liste beschreibt kurz die MySQL-Programme:
@item myisamchk
Dienstprogramm zur Beschreibung, Prüfung, Optimierung und Reparatur von
MySQL-Tabellen. Weil @code{myisamchk} viele Funktionen hat, ist es in einem
-eigenen Kapitel beschrieben. @xref{MySQL-Datenbankadministration}.
+eigenen Kapitel beschrieben. @xref\{MySQL Database Administration}.
@cindex @code{make_binary_distribution}
@item make_binary_distribution
@@ -22589,7 +22272,7 @@ Zeigt Informationen über Datenbanken, Tabellen, Spalten und Indexe an.
@cindex @code{mysql_install_db}
@item mysql_install_db
-Erzeugt die MySQL-Berechtigungstabellen mit vorgabemässigen Berechtigungen.
+Erzeugt die MySQL-Berechtigungstabellen mit vorgabemäßigen Berechtigungen.
Dieses Skript wird gewöhnlich nur einmal ausgeführt, wenn Sie MySQL das
erste Mal auf einem System installieren.
@@ -22608,7 +22291,8 @@ shell> replace a b b a --Datei1 Datei2 ...
@end table
-@node safe_mysqld, mysqld_multi, Überblick über serverseitige Programme, Serverseitige Skripte
+@node safe_mysqld, mysqld_multi, Server-Side Overview, Server-Side Scripts
+@c German node safe_mysqld
@subsection safe_mysqld, der Wrapper um mysqld
@cindex Werkzeuge, safe_mysqld
@@ -22632,7 +22316,7 @@ sondern statt dessen die Optionen für @code{safe_mysqld} in den
@code{[safe_mysqld]}-Abschnitt der @code{my.cnf}-Datei einfügen.
@code{safe_mysqld} liest alle Optionen des @code{[mysqld]}-,
@code{[server]}- und @code{[safe_mysqld]}-Abschnitts aus den
-Optionsdateien. @xref{Optionsdateien}.
+Optionsdateien. @xref\{Option files}.
Beachten Sie, dass alle Optionen auf der Kommandozeile für
@code{safe_mysqld} an @code{mysqld} durchgereicht werden. Wenn Sie in
@@ -22641,14 +22325,14 @@ Beachten Sie, dass alle Optionen auf der Kommandozeile für
angeben.
Die meisten Optionen für @code{safe_mysqld} sind dieselben wie die Optionen
-für @code{mysqld}. @xref{Kommandozeilenoptionen}.
+für @code{mysqld}. @xref\{Command-line options}.
@code{safe_mysqld} unterstützt folgende Optionen:
@table @code
@item --basedir=pfad
@item --core-file-size=#
-Grösse der Core-Datei, die @code{mysqld} in der Lage sein sollte zu
+Größe der Core-Datei, die @code{mysqld} in der Lage sein sollte zu
erzeugen. Wird an @code{ulimit -c} durchgereicht.
@item --datadir=pfad
@item --defaults-extra-file=pfad
@@ -22725,7 +22409,8 @@ Aktualisierungen von MySQL Ihre veränderte Version von @code{safe_mysqld}
machen, damit Sie diese neu installieren können.
-@node mysqld_multi, myisampack, safe_mysqld, Serverseitige Skripte
+@node mysqld_multi, myisampack, safe_mysqld, Server-Side Scripts
+@c German node mysqld_multi
@subsection mysqld_multi, Programm zur Verwaltung mehrerer MySQL-Server
@cindex Werkzeuge, mysqld_multi
@@ -22757,7 +22442,7 @@ Die GNR oben bedeutet die Gruppennummer. Sie können jede GNR starten,
anhalten oder Berichtsinformationen über sie ausgeben, oder über mehrere
von ihnen zugleich. (Siehe --example) Die GNRs in der Liste können mit
Komma getrennt oder mit Bindestrich kombiniert werden, wobei letzteres
-heisst, dass alle GNRs zwischen GNR1-GNR2 betroffen sind. Ohne GNR-Argument
+heißt, dass alle GNRs zwischen GNR1-GNR2 betroffen sind. Ohne GNR-Argument
werden alle gefundenen Gruppen entweder gestartet, angehalten, oder es
werden Berichtsinformationen über sie ausgegeben. Beachten Sie, dass Sie in
der GNR-Liste keinen Leerraum haben dürfen. Alles nach Leerraum wird
@@ -22795,7 +22480,7 @@ wird.
Sie @code{safe_mysqld}.
@cindex no-log option
@item --no-log
-An stdout ausgeben statt in die Log-Datei. Vorgabemässig ist die Log-Datei
+An stdout ausgeben statt in die Log-Datei. Vorgabemäßig ist die Log-Datei
angeschaltet.
@cindex password option
@item --password=...
@@ -22805,7 +22490,7 @@ Passwort für Benutzer von @code{mysqladmin}.
Zu MySQL-Server(n) über den TCP/IP-Port statt über den UNIX-Socket
verbinden. Das betrifft das Anhalten und Berichten. Wenn eine Socket-Datei
fehlt, kann der Server trotzdem laufen, aber man kann nur über den
-TCP/IP-Port auf ihn zugreifen. Vorgabemässig wird die Verbindung über den
+TCP/IP-Port auf ihn zugreifen. Vorgabemäßig wird die Verbindung über den
UNIX-Socket hergestellt.
@cindex user option
@item --user=...
@@ -22831,7 +22516,7 @@ benutzt (siehe unten). Hier ein Beispiel dafür:
@example
shell> mysql -u root -S /tmp/mysql.sock -proot_password -e
"GRANT SHUTDOWN ON *.* TO multi_admin@@localhost IDENTIFIED BY 'multipass'"
-@xref{Berechtigungen}.
+@xref\{Privileges}.
@end example
Das oben Angegebene müssen Sie für jeden laufenden @code{mysqld} im
Daten-Verzeichnis tun, das Sie haben (ändern Sie einfach den Socket,
@@ -22846,7 +22531,7 @@ neu startet, falls ein @code{mysqld}-Prozess wegen eines Signals kill -9
fehlschlägt oder ähnliches (wenn beispielsweise Speicherzugriffsfehler
auftreten, was bei MySQL natürlich nie passiert ;-). Beachten Sie bitte,
dass es für das @code{safe_mysqld}-Skript eventuell erforderlich ist, es
-von einer bestimmten Stelle aus zu starten. Das heisst, dass Sie eventuell
+von einer bestimmten Stelle aus zu starten. Das heißt, dass Sie eventuell
in ein bestimmtes Verzeichnis wechseln müssen, bevor Sie
@code{mysqld_multi} starten. Wenn Sie beim Starten Probleme haben, sehen
Sie bitte im @code{safe_mysqld}-Skript nach. Überprüfen Sie insbesondere
@@ -22898,7 +22583,7 @@ wollen. Mehrere @code{mysqlds} in einem Daten-Verzeichnis starten
@strong{ergibt keine zusätzliche Performance} bei einem threaded System!
@end itemize
-@xref{Mehrere Server}.
+@xref\{Multiple servers}.
Hier ist ein Beispiel einer config-Datei für @code{mysqld_multi}.
@@ -22945,10 +22630,11 @@ language = /usr/local/share/mysql/japanese
user = jani
@end example
-@xref{Optionsdateien}.
+@xref\{Option files}.
-@node myisampack, mysqld-max, mysqld_multi, Serverseitige Skripte
+@node myisampack, mysqld-max, mysqld_multi, Server-Side Scripts
+@c German node myisampack
@subsection myisampack, MySQL-Programm zum Erzeugen komprimierter Nur-Lese-Tabellen
@cindex komprimierte Tabellen
@@ -22967,7 +22653,7 @@ komprimiert wird. Die Informationen, die benötigt werden, um Spalten zu
dekomprimieren, werden in den Arbeitsspeicher gelesen, wenn die Tabelle
geöffnet wird. Das ergibt viel bessere Performance beim Zugriff auf
einzelne Datensätze, denn man muss nur exakt einen Datensatz
-dekomprimieren, nicht einen viel grösseren Block, wie das zum Beispiel bei
+dekomprimieren, nicht einen viel größeren Block, wie das zum Beispiel bei
der Benutzung von Stacker auf MS-DOS nötig ist. Üblicherweise komprimiert
@code{myisampack} die Daten-Datei auf 40%-70%.
@@ -23008,7 +22694,7 @@ Debug-Log ausgeben. Die @code{debug_options}-Zeichenkette ist häufig
@code{'d:t:o,filename'}.
@item -f, --force
-Erzwingt die Komprimierung der Tabelle, selbst wenn sie dadurch grösser
+Erzwingt die Komprimierung der Tabelle, selbst wenn sie dadurch größer
wird oder die temporäre Datei existiert. @code{myisampack} erzeugt eine
temporäre Datei namens @file{tabelle.TMD}, während es die Tabelle
komprimiert. Wenn Sie @code{myisampack} killen, kann es sein, dass die
@@ -23020,14 +22706,14 @@ die Tabelle trotzdem.
@item -?, --help
Hilfetext ausgeben und beenden.
-@item -j grosse_tabelle, --join=grosse_tabelle
+@item -j große_tabelle, --join=große_tabelle
Verbindet alle Tabellen, die auf der Kommandozeile angegeben wurden, in
-eine einzige grosse Tabelle @code{grosse_tabelle}. Alle Tabellen, die
+eine einzige große Tabelle @code{große_tabelle}. Alle Tabellen, die
kombiniert werden sollen, MÜSSEN identisch sein (dieselben Spaltennamen und
-typen, dieselben Indexe usw.).
@item -p #, --packlength=#
-Legt die Speichergrösse der Datensatzlänge in Bytes fest. Der Wert sollte
+Legt die Speichergröße der Datensatzlänge in Bytes fest. Der Wert sollte
1, 2 oder 3 sein. (@code{myisampack} speichert alle Zeilen mit
Längenzeigern von 1, 2, oder 3 Bytes. In den meisten Fällen kann
@code{myisampack} den richtigen Längenwert festlegen, bevor es anfängt, die
@@ -23248,7 +22934,7 @@ Die Informationen, die @code{myisampack} ausgibt, sind unten beschrieben:
Die Anzahl von Spalten, für die keine spezielle Komprimierung benutzt wird.
@item empty-space
-Die Anzahl von Spalten, die Werte enthalten, die ausschliesslich aus
+Die Anzahl von Spalten, die Werte enthalten, die ausschließlich aus
Leerzeichen bestehen. Diese Werte nehmen 1 Bit in Anspruch.
@item empty-zero
@@ -23348,7 +23034,8 @@ Wenn Sie eine gepackte Tabelle entpacken wollen, können Sie das mit der
@code{--unpack}-Option für @code{isamchk} oder @code{myisamchk} tun.
-@node mysqld-max, , myisampack, Serverseitige Skripte
+@node mysqld-max, , myisampack, Server-Side Scripts
+@c German node mysqld-max
@subsection mysqld-max, ein erweiterter mysqld-Server
@cindex @code{mysqld-max}
@@ -23371,9 +23058,9 @@ Die Windows-MySQL-3.23-Binärdistribution beinhaltet sowohl die
Standard-@code{mysqld.exe}-Binärdatei als auch die
@code{mysqld-max.exe}-Binärdatei.
@uref{http://www.mysql.com/downloads/mysql-3.23.html}.
-@xref{Windows-Installation}.
+@xref\{Windows installation}.
-Beachten Sie, dass, weil Berkeley-DB und InnoDB nicht für alle Plattformen
+Beachten Sie, dass, weil InnoDB und Berkeley-DB nicht für alle Plattformen
verfügbar sind, einige der @code{Max}-Binärdateien eventuell noch
Unterstützung für diese beiden Typen haben. Sie können überprüfen, welche
Tabellentypen unterstützt werden, indem Sie die folgende Anfrage ausführen:
@@ -23402,10 +23089,10 @@ Die Bedeutung dieser Werte ist:
@strong{HINWEIS}: Um InnoDB-Tabellen erzeugen zu können, @strong{MÜSSEN}
Sie Ihre Startoptionen editieren und zumindest die
-@code{innodb_data_file_path}-Option eingeben. @xref{Mit InnoDB anfangen}.
+@code{innodb_data_file_path}-Option eingeben. @xref\{InnoDB start}.
Um bessere Performance für BDB-Tabellen zu erzielen, sollten Sie auch für
-diese einige Konfigurationsoptionen angeben. @xref{BDB starten}.
+diese einige Konfigurationsoptionen angeben. @xref\{BDB start}.
@code{safe_mysqld} versucht automatisch, eine @code{mysqld}-Binärdatei mit
dem @code{-max}-Präfix zu starten. Das macht es sehr einfach, eine andere
@@ -23438,24 +23125,27 @@ Standard-@strong{MySQL-Max}-Binärdateien beinhalten:
@end multitable
-@node Clientseitige Skripte, Log-Dateien, Serverseitige Skripte, MySQL-Datenbankadministration
+@node Client-Side Scripts, Log Files, Server-Side Scripts, MySQL Database Administration
+@c German node Clientseitige Skripte
@section Clientseitige Skripte und Hilfsprogramme von MySQL
+
+
@menu
-* Überblick über die clientseitigen Skripte:: Überblick über die clientseitigen Skripte und Dienstprogramme
-* mysql:: Das Kommandozeilen-Werkzeug
-* mysqladmin:: mysqladmin, Verwaltung eines MySQL-Servers
-* mysqlcheck:: Benutzung von @code{mysqlcheck} für Tabellenwartung und Wiederherstellung nach Abstürzen
-* mysqldump:: mysqldump, Tabellenstrukturen und -daten dumpen
-* mysqlhotcopy:: mysqlhotcopy, MySQL-Datenbanken und Tabellen kopieren
-* mysqlimport:: mysqlimport, Daten aus Textdateien importieren
-* mysqlshow:: Datenbanken, Tabellen und Spalten anzeigen
-* perror:: perror, Erklärung der Fehler-Codes
-* Stapelbefehle:: Wie SQL-Befehle aus einer Textdatei laufen gelassen werden
+* Client-Side Overview::
+* mysql::
+* mysqladmin::
+* Using mysqlcheck::
+* mysqldump::
+* mysqlhotcopy::
+* mysqlimport::
+* mysqlshow::
+* perror::
+* Batch Commands::
@end menu
-
-@node Überblick über die clientseitigen Skripte, mysql, Clientseitige Skripte, Clientseitige Skripte
+@node Client-Side Overview, mysql, Client-Side Scripts, Client-Side Scripts
+@c German node Überblick über die clientseitigen Skripte
@subsection Überblick über die clientseitigen Skripte und Dienstprogramme
@cindex Umgebungsvariablen
@@ -23474,15 +23164,15 @@ Server kommunizieren, benutzen folgende Umgebungsvariablen:
@tindex Umgebungsvariable, @code{MYSQL_DEBUG}
@multitable @columnfractions .25 .75
@item @strong{Name} @tab @strong{Beschreibung}
-@item @code{MYSQL_UNIX_PORT} @tab Der vorgabemässige Socket, benutzt für Verbindungen zu @code{localhost}
-@item @code{MYSQL_TCP_PORT} @tab Der vorgabemässige TCP/IP-Port
-@item @code{MYSQL_PWD} @tab Das vorgabemässige Passwort
+@item @code{MYSQL_UNIX_PORT} @tab Der vorgabemäßige Socket, benutzt für Verbindungen zu @code{localhost}
+@item @code{MYSQL_TCP_PORT} @tab Der vorgabemäßige TCP/IP-Port
+@item @code{MYSQL_PWD} @tab Das vorgabemäßige Passwort
@item @code{MYSQL_DEBUG} @tab Debug-Trace-Optionen beim Debuggen
@item @code{TMPDIR} @tab Das Verzeichnis, in dem temporäre Tabellen / Dateien erzeugt werden
@end multitable
Die Benutzung von @code{MYSQL_PWD} ist unsicher.
-@xref{Verbinden}.
+@xref\{Connecting}.
@tindex @code{MYSQL_HISTFILE}-Umgebungsvariable
@tindex Umgebungsvariable, @code{MYSQL_HISTFILE}
@@ -23495,7 +23185,7 @@ Der @file{mysql}-Client benutzt die Datei in der @code{MYSQL_HISTFILE}-
Umgebungsvariablen genannte Datei, um die Kommandozeilen-History zu
speichern. Der Vorgabewert für die History-Datei ist
@file{$HOME/.mysql_history}, wobei @code{$HOME} der Wert der
-@code{HOME}-Umgebungsvariablen ist. @xref{Umgebungsvariablen}.
+@code{HOME}-Umgebungsvariablen ist. @xref\{Environment variables}.
Alle MySQL-Programme haben viele verschiedene Optionen. Jedes
MySQL-Programm stellt jedoch ein @code{--help}-Option zur Verfügung, die
@@ -23503,8 +23193,8 @@ Sie benutzen können, um eine vollständige Beschreibung der verschiedenen
Optionen des Programms zu erhalten. Probieren Sie zum Beispiel @code{mysql
--help} aus.
-Sie können die vorgabemässigen Optionen für alle Standard-Client-Programme
-mit einer Optionsdatei überschreiben. @ref{Optionsdateien}.
+Sie können die vorgabemäßigen Optionen für alle Standard-Client-Programme
+mit einer Optionsdatei überschreiben. @ref\{Option files}.
Die unten stehende Liste beschreibt kurz die MySQL-Programme:
@@ -23513,7 +23203,7 @@ Die unten stehende Liste beschreibt kurz die MySQL-Programme:
@item myisamchk
Dienstprogramm zur Beschreibung, Prüfung, Optimierung und Reparatur von
MySQL-Tabellen. Weil @code{myisamchk} viele Funktionen hat, ist es in einem
-eigenen Kapitel beschrieben. @xref{MySQL-Datenbankadministration}.
+eigenen Kapitel beschrieben. @xref\{MySQL Database Administration}.
@cindex @code{make_binary_distribution}
@item make_binary_distribution
@@ -23567,7 +23257,7 @@ Zeigt Informationen über Datenbanken, Tabellen, Spalten und Indexe an.
@cindex @code{mysql_install_db}
@item mysql_install_db
-Erzeugt die MySQL-Berechtigungstabellen mit vorgabemässigen Berechtigungen.
+Erzeugt die MySQL-Berechtigungstabellen mit vorgabemäßigen Berechtigungen.
Dieses Skript wird gewöhnlich nur einmal ausgeführt, wenn Sie MySQL das
erste Mal auf einem System installieren.
@@ -23586,7 +23276,8 @@ shell> replace a b b a --Datei1 Datei2 ...
@end table
-@node mysql, mysqladmin, Überblick über die clientseitigen Skripte, Clientseitige Skripte
+@node mysql, mysqladmin, Client-Side Overview, Client-Side Scripts
+@c German node mysql
@subsection Das Kommandozeilen-Werkzeug
@cindex Kommandozeilen-Werkzeug
@@ -23660,7 +23351,7 @@ Datenbank, die benutzt werden soll. Hauptsächlich nützlich in der
@cindex @code{default-character-set}, @code{mysql}-Option
@item --default-character-set=...
-Den vorgabemässigen Zeichensatz setzen.
+Den vorgabemäßigen Zeichensatz setzen.
@cindex @code{execute}, @code{mysql}-Option
@item -e, --execute=...
@@ -23680,7 +23371,7 @@ Weitermachen, auch wenn ein SQL-Fehler auftritt.
@item -g, --no-named-commands
Benannte Befehle werden deaktiviert. Benutzen Sie nur die \*-Form, oder
benutzen Sie benannte Befehle nur bei Zeilen, die mit einem Semikolon
-enden. Ab Version 10.9 startet der Client vorgabemässig mit ANGESCHALTETER
+enden. Ab Version 10.9 startet der Client vorgabemäßig mit ANGESCHALTETER
Option! Wenn die -g-Option angeschaltet ist, funktionieren Befehle im
Langformat jedoch immer noch von der ersten Zeile aus.
@@ -23729,7 +23420,7 @@ Einer Variablen einen Wert zuweisen. @code{--help} listet Variablen auf.
@cindex @code{one-database}, @code{mysql}-Option
@item -o, --one-database
-Nur die vorgabemässige Datenbank aktualisieren. Das ist nützlich, wenn man
+Nur die vorgabemäßige Datenbank aktualisieren. Das ist nützlich, wenn man
in der Update-Logdatei Aktualisierungen (Updates) auf eine andere Datenbank
überspringen will.
@@ -23788,7 +23479,7 @@ Benutzer zum Einloggen, falls nicht der aktuelle UNIX-Benutzer.
@cindex @code{safe-updates}, @code{mysql}-Option
@item -U, --safe-updates[=#], --i-am-a-dummy[=#]
-Lässt nur @code{UPDATE} und @code{DELETE} zu, die Schlüssel benutzen. Siehe
+Läßt nur @code{UPDATE} und @code{DELETE} zu, die Schlüssel benutzen. Siehe
unten wegen weiterer Informationen über diese Option. Sie können diese
Option zurücksetzen, wenn Sie sie in Ihrer @code{my.cnf}-Datei haben, indem
Sie @code{--safe-updates=0} benutzen.
@@ -23889,7 +23580,7 @@ Die Auswirkung davon ist folgende:
UPDATE tabelle SET not_key_column=# WHERE not_key_column=# LIMIT 1;
@end example
@item
-Alle grossen Ergebnisse werden automatisch auf @code{#select_limit#} Zeilen
+Alle großen Ergebnisse werden automatisch auf @code{#select_limit#} Zeilen
begrenzt.
@item
@code{SELECT}'s, die wahrscheinlich mehr als @code{#max_join_size}
@@ -24003,13 +23694,14 @@ Datei angehängt. Der Unterschied zwischen @code{UNIX tee}, was mit
wenn kein @code{UNIX tee} verfügbar ist. Darüber hinaus gibt das eingebaute
@code{tee} alles, was mitgeloggt wird, auch am Bildschirm aus, wohingegen
das @code{UNIX tee} in Verbindung mit @code{pager} nicht so viel mitloggt.
-Letztlich lässt sich das interaktive @code{tee} auch handlicher aus- und
+Letztlich läßt sich das interaktive @code{tee} auch handlicher aus- und
einschalten, wenn Sie teilweise mitloggen wollen, aber in der Lage sein,
das Feature zwischendurch auszuschalten.
@end itemize
-@node mysqladmin, mysqlcheck, mysql, Clientseitige Skripte
+@node mysqladmin, Using mysqlcheck, mysql, Client-Side Scripts
+@c German node mysqladmin
@subsection mysqladmin, Verwaltung eines MySQL-Servers
@cindex Administration, Server
@@ -24066,7 +23758,7 @@ Auflistung aktiver Threads im Server.
Berechtigungstabellen neu laden.
@item refresh
-Alle Tabellen zurückschreiben (flush), Log-Dateien schliessen und erneut
+Alle Tabellen zurückschreiben (flush), Log-Dateien schließen und erneut
öffnen.
@item shutdown
@@ -24111,7 +23803,7 @@ Das Ergebnis des @code{mysqladmin status}-Befehls hat folgende Spalten:
@cindex questions
@item Questions @tab Anzahl von Questions von Clients, seit @code{mysqld} gestartet wurde.
@cindex slow queries
-@item Slow queries @tab Anfragen, die länger als @code{long_query_time} Sekunden benötigten. @xref{Langsame-Anfragen-Log-Datei}.
+@item Slow queries @tab Anfragen, die länger als @code{long_query_time} Sekunden benötigten. @xref\{Slow query log}.
@cindex opens
@item Opens @tab Wie viele Tabellen @code{mysqld} geöffnet hat.
@cindex flush tables
@@ -24125,13 +23817,14 @@ Das Ergebnis des @code{mysqladmin status}-Befehls hat folgende Spalten:
@item Max memory used @tab Maximaler Arbeitsspeicher, der direkt vom @code{mysqld}-Code beansprucht wird (nur verfügbar, wenn MySQL mit --with-debug=full kompiliert wurde).
@end multitable
-Wenn Sie @code{myslqadmin shutdown} auf einem Socket ausführen (mit anderen
+Wenn Sie @code{mysqladmin shutdown} auf einem Socket ausführen (mit anderen
Worten, auf dem Computer, wo @code{mysqld} läuft), wartet
@code{mysqladmin}, bis MySQL die @code{pid-file} entfernt hat, um
sicherzustellen, dass der @code{mysqld}-Server korrekt angehalten wurde.
-@node mysqlcheck, mysqldump, mysqladmin, Clientseitige Skripte
+@node Using mysqlcheck, mysqldump, mysqladmin, Client-Side Scripts
+@c German node mysqlcheck
@subsection Benutzung von @code{mysqlcheck} für Tabellenwartung und Wiederherstellung nach Abstürzen
Ab MySQL-Version 3.23.38 können Sie ein neues Prüf- und Reparatur-Werkzeug
@@ -24157,16 +23850,16 @@ Daher kann es hinsichtlich der Auswahl von Datenbanken und Tabellen ähnlich
wie @code{mysqldump} benutzt werden.
@code{mysqlcheck} besitzt im Vergleich zu den anderen Clients ein
-besonderes Feature: Das vorgabemässige Verhalten, Tabellen mit -c zu
+besonderes Feature: Das vorgabemäßige Verhalten, Tabellen mit -c zu
prüfen, kann geändert werden, indem die Binärdatei umbenannt wird. Wenn Sie
-nur ein Werkzeug haben wollen, das vorgabemässig Tabellen repariert,
+nur ein Werkzeug haben wollen, das vorgabemäßig Tabellen repariert,
kopieren Sie eine @code{mysqlcheck} mit einem neuen Namen auf Ihre
Festplatte, nämlich @code{mysqlrepair}, oder legen alternativ einen
symbolischen Link auf @code{mysqlrepair} und benennen den Link
@code{mysqlrepair}. Wenn Sie jetzt @code{mysqlrepair} aufrufen, repariert
-es vorgabemässig Tabellen.
+es vorgabemäßig Tabellen.
-Folgende Namen können Sie benutzen, um das vorgabemässige Verhalten von
+Folgende Namen können Sie benutzen, um das vorgabemäßige Verhalten von
@code{mysqlcheck} zu verändern:
@example
@@ -24201,7 +23894,7 @@ Verzeichnis, wo Zeichensätze gespeichert sind.
Tabelle auf Fehler prüfen.
@item -C, --check-only-changed
Nur die Tabellen prüfen, die seit der letzten Prüfung geändert wurden oder
-die nicht ordnungsgemäss geschlossen wurden.
+die nicht ordnungsgemäß geschlossen wurden.
@item --compress
Kompression im Client-Server-Protokoll benutzen.
@item -?, --help
@@ -24211,9 +23904,9 @@ Mehrere Datenbanken prüfen. Beachten Sie den Unterschied im Gebrauch: In
diesem Fall werden keine Tabellen angegeben. Alle Namensargumente werden
als Datenbanknamen erachtet.
@item --default-character-set=...
-Setzt den vorgabemässigen Zeichensatz.
+Setzt den vorgabemäßigen Zeichensatz.
@item -F, --fast
-Nur Tabellen prüfen, die nicht ordnungsgemäss geschlossen wurden.
+Nur Tabellen prüfen, die nicht ordnungsgemäß geschlossen wurden.
@item -f, --force
Fortfahren, auch wenn ein SQL-Fehler auftritt.
@item -e, --extended
@@ -24259,7 +23952,8 @@ Versionsinformationen ausgeben und beenden.
@end table
-@node mysqldump, mysqlhotcopy, mysqlcheck, Clientseitige Skripte
+@node mysqldump, mysqlhotcopy, Using mysqlcheck, Client-Side Scripts
+@c German node mysqldump
@subsection mysqldump, Tabellenstrukturen und -daten dumpen
@cindex dumpen, Datenbanken
@@ -24294,7 +23988,7 @@ Sie erhalten eine Auflistung der Optionen, die Ihre Version von
Wenn Sie @code{mysqldump} ohne @code{--quick} oder @code{--opt} ausführen,
beachten Sie, dass @code{mysqldump} die gesamte Ergebnismenge in den
Arbeitsspeicher lädt, bevor das Ergebnis gedumpt wird. Das kann zu
-Problemen führen, wenn Sie eine grosse Datenbank dumpen.
+Problemen führen, wenn Sie eine große Datenbank dumpen.
Wenn Sie eine neue Version des @code{mysqldump}-Programms benutzen und
einen Dump erzeugen, der in einen sehr alten MySQL-Server eingelesen werden
@@ -24351,7 +24045,7 @@ wird.
Fortfahren, selbst wenn beim Dump einer Tabelle ein SQL-Fehler auftritt.
@item -h, --host=..
Daten auf dem MySQL-Server auf dem genannten Host dumpen. Der
-vorgabemässige Host ist @code{localhost}.
+vorgabemäßige Host ist @code{localhost}.
@item -l, --lock-tables.
Alle Tabellen sperren, bevor mit dem Dump begonnen wird. Die Tabellen
werden mit @code{READ LOCAL} gesperrt, um gleichzeitiges Einfügen zu
@@ -24388,7 +24082,7 @@ benutzt werden, weil sie verhindert, dass das Zeichen für neue Zeile '\n'
in '\n\r' (new line + carriage return) umgewandelt werden.
@item -S /pfad/zu/socket, --socket=/pfad/zu/socket
Die Socket-Datei, die für die Verbindung zu @code{localhost} benutzt werden
-soll (was der vorgabemässige Host ist).
+soll (was der vorgabemäßige Host ist).
@item --tables
Überschreibt die Option --databases (-B).
@item -T, --tab=pfad-zu-einem-verzeichnis
@@ -24420,12 +24114,12 @@ Beim Erzeugen von mehrzeiligen insert-Statements (wie bei der Option
@code{--extended-insert} oder @code{--opt}), erzeugt @code{mysqldump}
Zeilen bis zur Länge von @code{net_buffer_length}. Wenn Sie diesen Wert
herauf setzen, müssen Sie sicherstellen, dass die
-@code{max_allowed_packet}-Variable im MySQL-Server grösser als
+@code{max_allowed_packet}-Variable im MySQL-Server größer als
@code{net_buffer_length} ist.
@end table
Der häufigste Gebrauch von @code{mysqldump} dient wahrscheinlich der
-Herstellung einer Datensicherung ganzer Datenbanken. @xref{Datensicherung}.
+Herstellung einer Datensicherung ganzer Datenbanken. @xref\{Backup}.
@example
mysqldump --opt datenbank > datensicherung.sql
@@ -24463,7 +24157,8 @@ mysqldump --all-databases > alle_datenbanken.sql
@end example
-@node mysqlhotcopy, mysqlimport, mysqldump, Clientseitige Skripte
+@node mysqlhotcopy, mysqlimport, mysqldump, Client-Side Scripts
+@c German node mysqlhotcopy
@subsection mysqlhotcopy, MySQL-Datenbanken und Tabellen kopieren
@cindex dumpen, Datenbanken
@@ -24499,7 +24194,7 @@ Port zur Verbindung zum lokalen Server.
@item -S, --socket=#
Socket zur Verbindung zum lokalen Server.
@item --allowold
-Nicht abbrechen, wenn das Ziel bereits existiert (sondern in _old umbennnen)
+Nicht abbrechen, wenn das Ziel bereits existiert (sondern in _old umbenennen)
@item --keepold
Vorheriges (jetzt umbenanntes) Ziel nach dem Durchführen nicht löschen.
@item --noindices
@@ -24538,7 +24233,8 @@ die Sie kopieren wollen, und die MySQL-@code{Reload}-Berechtigung (damit
Sie @code{FLUSH TABLES} ausführen können).
-@node mysqlimport, mysqlshow, mysqlhotcopy, Clientseitige Skripte
+@node mysqlimport, mysqlshow, mysqlhotcopy, Client-Side Scripts
+@c German node mysqlimport
@subsection mysqlimport, Daten aus Textdateien importieren
@cindex importieren, Daten
@@ -24603,7 +24299,7 @@ Hilfetext ausgeben und beenden.
@item -h host_name, --host=host_name
Daten in den MySQL-Server auf dem genannten Host importieren. Der
-vorgabemässige Host ist @code{localhost}.
+vorgabemäßige Host ist @code{localhost}.
@item -i, --ignore
Siehe Beschreibung für die @code{--replace}-Option.
@@ -24614,9 +24310,9 @@ Textdateien verarbeitet werden. Das stellt sich, dass alle Tabellen auf dem
Server synchronisiert werden.
@item -L, --local
-Liest Eingabedateien vom Client. Vorgabemässig wird angenommen, dass
+Liest Eingabedateien vom Client. Vorgabemäßig wird angenommen, dass
Textdateien auf dem Server liegen, wenn Sie sich über @code{localhost}
-verbinden (was der vorgabemässige Host ist).
+verbinden (was der vorgabemäßige Host ist).
@item -pihr_passwort, --password[=ihr_passwort]
Das Passwort, das für die Verbindung zum Server benutzt werden soll. Wenn
@@ -24643,7 +24339,7 @@ Schweigsamer Modus. Ausgaben erfolgen nur, wenn Fehler auftreten.
@item -S /pfad/zu/socket, --socket=/pfad/zu/socket
Die Socket-Datei, die für die Verbindung zu @code{localhost} benutzt werden
-soll (der der vorgabemässige Host ist).
+soll (der der vorgabemäßige Host ist).
@item -u benutzername, --user=benutzername
Der MySQL-Benutzername, der für die Verbindung zum Server benutzt werden
@@ -24689,7 +24385,8 @@ $ mysql -e 'SELECT * FROM imptest' test
@end example
-@node mysqlshow, perror, mysqlimport, Clientseitige Skripte
+@node mysqlshow, perror, mysqlimport, Client-Side Scripts
+@c German node mysqlshow
@subsection Datenbanken, Tabellen und Spalten anzeigen
@cindex Datenbanken, anzeigen
@@ -24735,7 +24432,8 @@ Muster entsprechen. Das kann leicht durch Hinzufügen eines zusätzlichen
@code{%} am Ende der Kommandozeile (als separates Argument) behoben werden.
-@node perror, Stapelbefehle, mysqlshow, Clientseitige Skripte
+@node perror, Batch Commands, mysqlshow, Client-Side Scripts
+@c German node perror
@subsection perror, Erklärung der Fehler-Codes
@cindex Fehlermeldungen, anzeigen
@@ -24760,7 +24458,8 @@ MyISAM/ISAM-Tabellen-Handlers. Die Fehlermeldungen sind hauptsächlich
abhängig vom Betriebssystem.
-@node Stapelbefehle, , perror, Clientseitige Skripte
+@node Batch Commands, , perror, Client-Side Scripts
+@c German node Stapelbefehle
@subsection Wie SQL-Befehle aus einer Textdatei laufen gelassen werden
@c FIX add the 'source' befehl
@@ -24788,10 +24487,11 @@ auf der Kommandozeile anzugeben:
shell> mysql < textdatei
@end example
-@xref{Clientseitige Skripte}.
+@xref\{Client-Side Scripts}.
-@node Log-Dateien, Replikation, Clientseitige Skripte, MySQL-Datenbankadministration
+@node Log Files, Replication, Client-Side Scripts, MySQL Database Administration
+@c German node Log-Dateien
@section Die MySQL-Log-Dateien
@cindex Log-Dateien
@@ -24813,17 +24513,19 @@ Alle Log-Dateien liegen im @code{mysqld} Daten-Verzeichnis. Sie können
Fällen auf eine neue Log-Datei umzuschalten), indem Sie @code{FLUSH LOGS}
ausführen. @xref{FLUSH}.
+
+
@menu
-* Fehler-Log-Datei:: Die Fehler-Log-Datei
-* Anfragen-Log-Datei:: Die allgemeine Anfragen-Log-Datei
-* Update-Log-Datei:: Die Update-Log-Datei
-* Binär-Log-Datei:: Die binäre Update-Log-Datei
-* Langsame-Anfragen-Log-Datei:: Die Anfragen-Log-Datei für langsame Anfragen
-* Log-Datei-Wartung:: Wartung und Pflege der Log-Dateien
+* Error log::
+* Query log::
+* Update log::
+* Binary log::
+* Slow query log::
+* Log file maintenance::
@end menu
-
-@node Fehler-Log-Datei, Anfragen-Log-Datei, Log-Dateien, Log-Dateien
+@node Error log, Query log, Log Files, Log Files
+@c German node Fehler-Log-Datei
@subsection Die Fehler-Log-Datei
@code{mysqld} schreibt alle Fehler nach stderr, die das
@@ -24841,10 +24543,11 @@ werden muss.
Auf manchen Betriebssystemen enthält die Fehler-Log-Datei einen
Stack-Trace, wo @code{mysqld} starb. Dieser kann benutzt werden, um
-herauszufinden, wo @code{mysqld} starb. @xref{Stack-Trace benutzen}.
+herauszufinden, wo @code{mysqld} starb. @xref\{Using stack trace}.
-@node Anfragen-Log-Datei, Update-Log-Datei, Fehler-Log-Datei, Log-Dateien
+@node Query log, Update log, Error log, Log Files
+@c German node Anfragen-Log-Datei
@subsection Die allgemeine Anfragen-Log-Datei
@cindex Anfragen-Log-Datei
@@ -24852,12 +24555,12 @@ herauszufinden, wo @code{mysqld} starb. @xref{Stack-Trace benutzen}.
Wenn Sie wissen wollen, was innerhalb @code{mysqld} geschieht, sollten Sie
ihn mit @code{--log[=file]} starten. Diese Option loggt alle Verbindungen
-und Anfragen in die Log-Datei (vorgabemässig @file{'hostname'.log}
+und Anfragen in die Log-Datei (vorgabemäßig @file{'hostname'.log}
benannt). Diese Log-Datei kann sehr nützlich sein, wenn Sie einen Fehler in
einem Client vermuten und wissen wollen, was genau @code{mysqld} sich bei
dem dachte, was es vom Client geschickt bekam.
-Vorgabemässig startet das @code{mysql.server}-Skript den MySQL-Server mit
+Vorgabemäßig startet das @code{mysql.server}-Skript den MySQL-Server mit
der @code{-l}-Option. Wenn Sie bessere Performance brauchen, wenn Sie MySQL
in einer Produktionsumgebung starten, können Sie die @code{-l}-Option aus
@code{mysql.server} entfernen oder sie zu @code{--log-binary} ändern.
@@ -24869,14 +24572,15 @@ und zur Binär-Log-Datei, bei denen geschrieben wird, nachdem die Anfrage
ausgeführt wurde, aber bevor irgend welche Sperren aufgehoben werden.
-@node Update-Log-Datei, Binär-Log-Datei, Anfragen-Log-Datei, Log-Dateien
+@node Update log, Binary log, Query log, Log Files
+@c German node Update-Log-Datei
@subsection Die Update-Log-Datei
@cindex Update-Log-Datei
@cindex Dateien, Update-Log-Datei
@strong{HINWEIS}: Die Update-Log-Datei wird durch die binäre Log-Datei
-ersetzt. @xref{Binär-Log-Datei}. Mit dieser können Sie alles machen, was
+ersetzt. @xref\{Binary log}. Mit dieser können Sie alles machen, was
Sie mit der Update-Log-Datei machen können.
Wenn er mit der @code{--log-update[=datei]}-Option gestartet wird, schreibt
@@ -24938,7 +24642,8 @@ zurückspielen müssen und die Aktualisierungen neu ausführen wollen, die
zwischen der Zeit der Datensicherung und dem Absturz lagen.
-@node Binär-Log-Datei, Langsame-Anfragen-Log-Datei, Update-Log-Datei, Log-Dateien
+@node Binary log, Slow query log, Update log, Log Files
+@c German node Binär-Log-Datei
@subsection Die binäre Update-Log-Datei
@cindex Binär-Log-Datei
@@ -24952,7 +24657,7 @@ sind, in einem effizienteren Format. Sie enthält ausserdem Informationen
darüber, wie lange jede Anfrage brauchte, die die Datenbank aktualisierte.
Die Binär-Log-Datei wird auch benutzt, wenn Sie einen Slave von einem
-Master replizieren. @xref{Replikation}.
+Master replizieren. @xref\{Replication}.
Mit der @code{--log-bin[=datei]}-Option gestartet, schreibt @code{mysqld}
eine Log-Datei, die alle SQL-Befehle enthält, die Daten aktualisieren. Wenn
@@ -24966,7 +24671,7 @@ beeinflussen, was in die Binär-Log-Datei geschrieben wird:
@multitable @columnfractions .4 .6
@item @code{binlog-do-db=datenbank} @tab
Weist den Master an, Aktualisierungen für die angegebene Datenbank zu
-loggen und alle anderen, nicht explizit erwähnten, auszuschliessen.
+loggen und alle anderen, nicht explizit erwähnten, auszuschließen.
(Beispiel: @code{binlog-do-db=eine_datenbank})
@item @code{binlog-ignore-db=datenbank} @tab
@@ -24982,7 +24687,7 @@ ausführen oder den Server neu starten.
Damit Sie feststellen können, welche verschiedenen Binär-Log-Datei-Dateien
benutzt wurden, erzeugt @code{mysqld} auch eine Binär-Log-Index-Datei, die
-die Namen aller benutzten Binär-Log-Datei-Dateien enthält. Vorgabemässig
+die Namen aller benutzten Binär-Log-Datei-Dateien enthält. Vorgabemäßig
hat diese denselben Namen wie die Binär-Log-Datei, mit der Erweiterung
@code{'.index'}. Sie können den Namen der Binär-Log-Index-Datei mit der
@code{--log-bin-index=[filename]}-Option ändern.
@@ -25020,14 +24725,14 @@ Alle Aktualisierungen (@code{UPDATE}, @code{DELETE} oder @code{INSERT}),
die eine transaktionale Tabelle (like BDB-Tabellen) ändern, werden bis zu
einem @code{COMMIT} gecachet. Jegliche Aktualisierungen auf eine nicht
transaktionale Tabelle werden sofort in der Binär-Log-Datei gespeichert.
-Jedem Thread wird beim Start ein Puffer der Grösse @code{binlog_cache_size}
-für die Pufferung von Anfragen zugewiesen. Wenn eine Anfrage grösser als
-dieser ist, öffnet der Thread eine temporäre Datei, um den grösseren Cache
+Jedem Thread wird beim Start ein Puffer der Größe @code{binlog_cache_size}
+für die Pufferung von Anfragen zugewiesen. Wenn eine Anfrage größer als
+dieser ist, öffnet der Thread eine temporäre Datei, um den größeren Cache
zu handhaben. Die temporäre Datei wird gelöscht, wenn der Thread beendet
wird.
@code{max_binlog_cache_size} kann dazu benutzt werden, um die gesamte
-benutzte Grösse zu begrenzen, und um eine Anfrage aus mehreren
+benutzte Größe zu begrenzen, und um eine Anfrage aus mehreren
Transaktionen zu cachen.
Wenn Sie die Update- oder Binär-Log-Datei benutzen, funktionieren
@@ -25037,7 +24742,8 @@ eine exakte Kopie Ihrer Tabellen wieder herstellen können, indem Sie die
Log-Datei auf eine Datensicherung anwenden.
-@node Langsame-Anfragen-Log-Datei, Log-Datei-Wartung, Binär-Log-Datei, Log-Dateien
+@node Slow query log, Log file maintenance, Binary log, Log Files
+@c German node Langsame-Anfragen-Log-Datei
@subsection Die Anfragen-Log-Datei für langsame Anfragen
@cindex Langsame-Anfragen-Log-Datei
@@ -25060,17 +24766,18 @@ wird, der aber keine Pfadangabe enthält, wird die Datei ins Daten-Verzeichnis ge
Die Anfragen-Log-Datei für langsame Anfragen kann benutzt werden, um
Anfragen zu finden, die für die Ausführung lange Zeit benötigen und daher
-Kandidaten für Optimierungen sind, was bei einer grossen Log-Datei
+Kandidaten für Optimierungen sind, was bei einer großen Log-Datei
allerdings eine schwierige Aufgabe werden kann. Sie können die
Anfragen-Log-Datei für langsame Anfragen durch den
@code{mysqldumpslow}-Befehl durchschleifen (pipen), um eine Zusammenfassung
der Anfragen zu erhalten, die in der Log-Datei erscheinen.
Wenn Sie @code{--log-long-format} benutzen, erscheinen auch Anfragen, die
-keine Indexe benutzen. @xref{Kommandozeilenoptionen}.
+keine Indexe benutzen. @xref\{Command-line options}.
-@node Log-Datei-Wartung, , Langsame-Anfragen-Log-Datei, Log-Dateien
+@node Log file maintenance, , Slow query log, Log Files
+@c German node Log-Datei-Wartung
@subsection Wartung und Pflege der Log-Dateien
@cindex Dateien, Log-Dateien
@@ -25078,13 +24785,13 @@ keine Indexe benutzen. @xref{Kommandozeilenoptionen}.
@cindex Log-Dateien, Wartung
MySQL hat viele Log-Dateien, die es leicht machen festzustellen, was vor
-sich geht. @xref{Log-Dateien}. Von Zeit zu Zeit jedoch muss man hinter
-@code{MysQL} saubermachen, damit die Log-Dateien nicht zu viel
+sich geht. @xref\{Log Files}. Von Zeit zu Zeit jedoch muss man hinter
+@code{MySQL} saubermachen, damit die Log-Dateien nicht zu viel
Festplattenplatz in Anspruch nehmen.
Wenn Sie MySQL mit Log-Dateien benutzen, werden Sie von Zeit zu Zeit alte
Log-Dateien entfernen wollen und MySQL mitteilen, in neue Dateien zu
-loggen. @xref{Datensicherung}.
+loggen. @xref\{Backup}.
Bei einer Linux-(@code{RedHat})-Installation können Sie hierfür das
@code{mysql-log-rotate}-Skript benutzen. Wenn Sie MySQL von einer
@@ -25104,7 +24811,7 @@ Der obige Befehl macht folgendes:
@itemize @bullet
@item
-Wenn standardmässiges Loggen (@code{--log}) oder Loggen langsamer Anfragen
+Wenn standardmäßiges Loggen (@code{--log}) oder Loggen langsamer Anfragen
(@code{--log-slow-queries}) benutzt wird, wird die Log-Datei geschlossen
und wieder geöffnet (@file{mysql.log} und @file{`hostname`-slow.log} als
Vorgabe).
@@ -25128,7 +24835,8 @@ shell> mysqladmin flush-logs
Und dann eine Datensicherung nehmen und @file{mysql.old} entfernen.
-@node Replikation, , Log-Dateien, MySQL-Datenbankadministration
+@node Replication, , Log Files, MySQL Database Administration
+@c German node Replikation
@section Replikation bei MySQL
@cindex Replikation
@@ -25136,16 +24844,6 @@ Und dann eine Datensicherung nehmen und @file{mysql.old} entfernen.
@cindex Geschwindigkeit, erhöhen
@cindex Datenbanken, replizieren
-@menu
-* Einführung in die Replikation:: Einführung
-* Replikationsimplementation:: Überblick über die Replikationsimplementation
-* Wie man Replikation aufsetzt:: Wie man Replikation aufsetzt
-* Replikationsfeatures:: Replikationsfeatures und bekannte Probleme
-* Replikationsoptionen:: Replikationsoptionen in my.cnf
-* SQL und Replikation:: SQL-Befehle in Bezug auf Replikation
-* Replikations-FAQ:: Replikation - Häufig gestellte Fragen
-* Replikationsprobleme:: Problemlösung bei Replikation
-@end menu
Dieses Kapitel beschreibt die verschiedenen Replikationsfeatures in MySQL.
Es dient als Referenz für die Optionen, die bei Replikation verfügbar sind.
@@ -25155,7 +24853,19 @@ und die dazugehörigen Antworten aufgelistet sowie Beschreibungen der
Probleme und wie man sie löst.
-@node Einführung in die Replikation, Replikationsimplementation, Replikation, Replikation
+@menu
+* Replication Intro::
+* Replication Implementation::
+* Replication HOWTO::
+* Replication Features::
+* Replication Options::
+* Replication SQL::
+* Replication FAQ::
+* Replication Problems::
+@end menu
+
+@node Replication Intro, Replication Implementation, Replication, Replication
+@c German node Einführung in die Replikation
@subsection Einführung in die Replikation
Einweg-Replikation wird benutzt, um sowohl Stabilität als auch
@@ -25163,7 +24873,7 @@ Geschwindigkeit zu steigern. Was Stabilität betrifft, haben Sie zwei
Möglichkeiten und können zur Möglichkeit der Datensicherung zurückkehren,
wenn Sie Probleme mit dem Master haben. Die Geschwindigkeitssteigerung wird
dadurch erreicht, dass ein Teil der Anfragen, die nichts aktualisieren, an
-den Replikationsserver geschickt werden. Das funktioniert naturgemäss nur
+den Replikationsserver geschickt werden. Das funktioniert naturgemäß nur
dann, wenn Anfragen, die nichts aktualisieren, überwiegen, aber das ist der
Normalfall.
@@ -25171,10 +24881,10 @@ Ab Version 3.23.15 unterstützt MySQL intern Einweg-Replikation. Ein Server
agiert als Master, der andere als Slave. Beachten Sie, dass ein Server
beide Rolle - als Master und als Slave - in einem Paar spielen kann. Der
Master hält eine Binär-Log-Datei der Aktualisierungen vor
-(@xref{Binär-Log-Datei}) sowie eine Index-Datei für Binär-Log-Dateien, um
+(@xref\{Binary log}) sowie eine Index-Datei für Binär-Log-Dateien, um
hinsichtlich der Log-Rotation auf dem Laufenden zu bleiben. Der Slave
informiert den Master beim Verbinden darüber, wo er seit der letzten
-erfolgreich durchgeführten Aktualisierung aufgehört hat, schliesst zu den
+erfolgreich durchgeführten Aktualisierung aufgehört hat, schließt zu den
Aktualisierungen auf, blockiert danach und wartet darauf, dass ihn der
Master über neue Aktualisierungen informiert.
@@ -25183,17 +24893,18 @@ wird, durch den Master durchgeführt werden sollten!
Ein weiterer Vorteil von Replikation ist, dass man permanente (live)
Datensicherungen vom System erhält, wenn man die Datensicherung auf dem
-Slave durchführt statt auf dem Master. @xref{Datensicherung}.
+Slave durchführt statt auf dem Master. @xref\{Backup}.
-@node Replikationsimplementation, Wie man Replikation aufsetzt, Einführung in die Replikation, Replikation
+@node Replication Implementation, Replication HOWTO, Replication Intro, Replication
+@c German node Replikationsimplementation
@subsection Replikationsimplementation
@cindex Master-Slave-Einrichtung
MySQL-Replikation basiert darauf, dass der Server alle Änderungen Ihrer
Datenbank im Binär-Log verfolgt (Updates, Deletes usw.)
-(@xref{Binär-Log-Datei}) und der oder die Slave-Server die gespeicherten
+(@xref\{Binary log}) und der oder die Slave-Server die gespeicherten
Anfragen aus der Binär-Log-Datei des Masters lesen, so dass der Slave
dieselben Anfragen auf seine Kopie der Daten ausführen kann.
@@ -25207,7 +24918,7 @@ was auf dem Master war, @strong{als die Binär-Log-Datei gestartet wurde},
funktionieren Ihre Slaves womöglich nicht richtig.
Eine zukünftige Version (4.0) von MySQL wird die Notwendigkeit beseitigen,
-(eventuell grosse) Schnappschüsse von Daten für neue Slaves vorzuhalten,
+(eventuell große) Schnappschüsse von Daten für neue Slaves vorzuhalten,
die Sie über die Live-Datensicherungs-Funktionalität aufsetzen wollen,
wobei kein Sperren (Locking) erforderlich ist. Zu dieser Zeit ist es jedoch
notwendig, alle Schreibzugriffe entweder mit einer globalen Lese-Sperre
@@ -25221,7 +24932,7 @@ Master verliert, versucht er alle @code{master-connect-retry} Sekunden,
sich neu zu verbinden, bis er sich neu verbinden kann, und nimmt dann das
Warten auf Aktualisierungen wieder auf.
-Jeder Slave achtet darauf, wo er aufgehört hat. Der Master-Server weiss
+Jeder Slave achtet darauf, wo er aufgehört hat. Der Master-Server weiß
nicht, wie viele Slaves es gibt oder welche zu einem gegebenen Zeitpunkt
auf aktuellem Stand sind.
@@ -25229,7 +24940,8 @@ Der nächste Abschnitt erläutert den Master-Slave-Einrichtungsprozess
detaillierter.
-@node Wie man Replikation aufsetzt, Replikationsfeatures, Replikationsimplementation, Replikation
+@node Replication HOWTO, Replication Features, Replication Implementation, Replication
+@c German node Wie man Replikation aufsetzt
@subsection Wie man Replikation aufsetzt
Unten findet sich eine kurze Beschreibung, wie Sie komplette Replikation
@@ -25251,7 +24963,7 @@ das Problem im neuesten Release beobachtet werden kann.
@item
Richten Sie einen speziellen Replikationsbenutzer auf dem Master mit der
@code{FILE}-Berechtigung und Berechtigungen, sich von allen Slaves aus zu
-verbinden, ein. Wenn der Benutzer ausschliesslich Replikation durchführt
+verbinden, ein. Wenn der Benutzer ausschließlich Replikation durchführt
(was empfohlen wird), müssen Sie ihm keine zusätzlichen Berechtigungen
geben.
@@ -25366,16 +25078,10 @@ editieren, es sei denn, Sie wissen genau, was Sie tun. Selbst in diesem
Fall sollten Sie vorzugsweise den @code{CHANGE MASTER TO}-Befehl benutzen.
-@menu
-* Replikationsfeatures:: Replikationsfeatures und bekannte Probleme
-* Replikationsoptionen:: Replikationsoptionen in my.cnf
-* SQL und Replikation:: SQL-Befehle in Verbindung mit Replikation
-* Replikations-FAQ:: Replikation - häufige Fragen und Antworten
-* Replikationsprobleme:: Behebung von Replikationsproblemen
-@end menu
-@node Replikationsfeatures, Replikationsoptionen, Wie man Replikation aufsetzt, Replikation
+@node Replication Features, Replication Options, Replication HOWTO, Replication
+@c German node Replikationsfeatures
@subsection Replikationsfeatures und bekannte Probleme
@cindex Optionen, Replikation
@@ -25410,17 +25116,17 @@ replikationssicher.
@code{FLUSH}-Befehle werden nicht in der Binär-Log-Datei gespeichert und
werden deswegen nicht auf den Slaves repliziert. Das stellt normalerweise
kein Problem dar, weil @code{FLUSH} nichts ändert. In Bezug auf die
-@code{MySQL}-Berechtigungstabellen heisst das jedoch, dass Sie bei direkten
+@code{MySQL}-Berechtigungstabellen heißt das jedoch, dass Sie bei direkten
Änderungen in diesen Tabellen ohne Benutzung des @code{GRANT}-Statements
-und der anschliessenden Replikation der
+und der anschließenden Replikation der
@code{MySQL}-Berechtigungs-Datenbank auf den Slaves @code{FLUSH PRIVILEGES}
ausführen müssen, damit die neuen Berechtigungen wirksam werden.
@item
Temporäre Tabellen werden ab Version 3.23.29 korrekt repliziert,
-ausgenommen im Fall, dass Sie den Slave-Server schliessen (nicht nur den
+ausgenommen im Fall, dass Sie den Slave-Server schließen (nicht nur den
Slave-Thread), Sie noch einige temporäre Tabellen offen haben und diese bei
nachfolgenden Aktualisierungen benutzt werden. Um mit diesem Problem fertig
-zu werden, schliessen Sie den Slave mit @code{SLAVE STOP} und prüfen dann
+zu werden, schließen Sie den Slave mit @code{SLAVE STOP} und prüfen dann
die @code{Slave_open_temp_tables}-Variable, um zu sehen, ob Sie 0 ist. Dann
führen Sie @code{mysqladmin shutdown} aus. Wenn die Variable nicht 0 ist,
starten Sie den Slave-Thread neu mit @code{SLAVE START} und probieren es
@@ -25451,7 +25157,7 @@ Das bedeutet, dass Sie eine Einrichtung wie die folgende machen können:
A -> B -> C -> A
@end example
-Diese Einrichtung funktioniert nur dann, wenn Sie ausschliesslich
+Diese Einrichtung funktioniert nur dann, wenn Sie ausschließlich
Aktualisierungen ausführen, die nicht zwischen den Tabellen zu Konflikten
führen. Mit anderen Worten, wenn Sie Daten in A und C einfügen, sollten Sie
nie eine Zeile in A einfügen, die zu einem Konflikt mit einem Schlüsselwert
@@ -25466,7 +25172,7 @@ Wenn die Anfrage auf dem Slave zu einem Fehler führt, beendet sich der
Slave-Thread und in der @code{.err}-Datei erscheint eine Meldung. Sie
sollten sich dann manuell mit dem Slave verbinden, die Ursache des Fehlers
beheben (zum Beispiel nicht existierende Tabellen) und dann den SQL-Befehl
-@code{SLAVE START} laufen lassen (verfübar ab Version 3.23.16). In Version
+@code{SLAVE START} laufen lassen (verfügbar ab Version 3.23.16). In Version
3.23.15 müssen Sie den Server neu starten.
@item
Wenn die Verbindung zum Master verloren geht, versucht der Slave
@@ -25490,7 +25196,7 @@ In Version 3.23.15 werden alle Tabellen und Datenbanken repliziert. Ab
Version 3.23.16 können Sie die Replikation mit der
@code{replicate-do-db}-Anweisung in @code{my.cnf} auf einen Satz von
Datenbanken beschränken oder einen Satz von Datenbanken mit
-@code{replicate-ignore-db} ausschliessen. Beachten Sie, dass es bis Version
+@code{replicate-ignore-db} ausschließen. Beachten Sie, dass es bis Version
3.23.23 einen Bug gab, so dass mit @code{LOAD DATA INFILE} nicht sauber
umgegangen wurde, wenn Sie diesen Befehl in einer Datenbank ausführten, die
von der Replikation ausgeschlossen war.
@@ -25528,7 +25234,8 @@ benutzen, um alte Log-Dateien loszuwerden, während der Slave läuft.
@end itemize
-@node Replikationsoptionen, SQL und Replikation, Replikationsfeatures, Replikation
+@node Replication Options, Replication SQL, Replication Features, Replication
+@c German node Replikationsoptionen
@subsection Replikationsoptionen in my.cnf
Wenn Sie Replikation benutzen, empfehlen wir, dass Sie MySQL-Version
@@ -25580,7 +25287,7 @@ dass Sie Aktualisierungen nur in der aktuellen Datenbank ausführen.
Beispiel: @code{binlog-do-db=eine_datenbank}.
@item @code{binlog-ignore-db=datenbank} @tab
-Weist den Master an, das Aktualisierung der aktuellen DAtenbank 'datenbank'
+Weist den Master an, das Aktualisierung der aktuellen Datenbank 'datenbank'
nicht in der Binär-Log-Datei gespeichert werden sollen. ignoriert. Beachten
Sie bei der Benutzung, dass Sie sicherstellen sollten, dass Sie
Aktualisierungen nur in der aktuellen Datenbank ausführen.
@@ -25718,7 +25425,7 @@ Beispiel: @code{replicate-do-db=eine_datenbank}.
@item @code{log-slave-updates} @tab
Weist den Slave an, Aktualisierungen vom Slave-Thread in die binäre
-Log-Datei zu schreiben. Ist vorgabemässig ausgeschaltet. Sie müssen diese
+Log-Datei zu schreiben. Ist vorgabemäßig ausgeschaltet. Sie müssen diese
Option anschalten, wenn Sie planen, die Slave in eine zirkuläre Kette zu
hängen ('Daisy-Chain').
@@ -25738,7 +25445,8 @@ bevor er abbricht.
@end multitable
-@node SQL und Replikation, Replikations-FAQ, Replikationsoptionen, Replikation
+@node Replication SQL, Replication FAQ, Replication Options, Replication
+@c German node SQL und Replikation
@subsection SQL-Befehle in Bezug auf Replikation
@cindex SQL-Befehle, Replikation
@@ -25773,11 +25481,11 @@ Nützlich für den Ausgleich von Replikationsabweichungen.
@item @code{RESET MASTER}
@tab Löscht alle Binär-Log-Dateien, die in der Index-Datei aufgeführt
sind, und setzt die BinärLog-Index-Datei auf leer zurück. In Versionen vor
-3.23.26 versions heisst dieser Befehl @code{FLUSH MASTER}. (Master)
+3.23.26 versions heißt dieser Befehl @code{FLUSH MASTER}. (Master)
@item @code{RESET SLAVE}
@tab Führt dazu, dass der Slave seine Replikationsposition in den
-Master-Logs vergisst. In Versionen vor 3.23.26 versions heisst dieser
+Master-Logs vergisst. In Versionen vor 3.23.26 versions heißt dieser
Befehl @code{FLUSH SLAVE}. (Slave)
@item @code{LOAD TABLE tabelle FROM MASTER}
@@ -25851,13 +25559,14 @@ festzustellen, an welcher Log-Datei sie gerade sind, dann eine Auflistung
aller Log-Dateien auf dem Master mit @code{SHOW MASTER LOGS} machen, die
früheste davon herausfinden, an der noch ein Slave arbeitet (wenn alle
Slaves aktuell sind, ist das die letzte Log-Datei auf der Liste), dann alle
-Logs, die Sie löschen wollen, sichern (optional), und schliesslich bis zum
+Logs, die Sie löschen wollen, sichern (optional), und schließlich bis zum
Ziel-Log löschen.
@end multitable
-@node Replikations-FAQ, Replikationsprobleme, SQL und Replikation, Replikation
+@node Replication FAQ, Replication Problems, Replication SQL, Replication
+@c German node Replikations-FAQ
@subsection Replikation - Häufig gestellte Fragen
@cindex @code{Binlog_Dump}
@@ -25866,11 +25575,11 @@ Ziel-Log löschen.
gestartet habe?
@strong{Antwort}: @code{Binlog_Dump} ist ein kontinuierlicher Prozess, der
-folgendermassen vom Server gehandhabt wird:
+folgendermaßen vom Server gehandhabt wird:
@itemize @bullet
@item
-Zu den Aktualisierungen aufschliessen.
+Zu den Aktualisierungen aufschließen.
@item
Sobald keine Aktualisierungen mehr übrig sind, in den Zustand
@code{pThread_cond_wait()} gehen, durch den er entweder durch eine
@@ -26060,7 +25769,7 @@ geht an alle Server)
Wenn also N = 0, was bedeutet, dass es keine Replikation gibt, kann Ihr
System 1200 / 11, also etwa 109 Schreibvorgänge pro Sekunden handhaben (was
-heisst, dass Sie neunmal so viele Lesevorgänge haben, was der Natur Ihrer
+heißt, dass Sie neunmal so viele Lesevorgänge haben, was der Natur Ihrer
Applikation entspricht).
Wenn N = 1 ist, können Sie bis zu 184 Schreibvorgänge pro Sekunde haben.
@@ -26069,13 +25778,13 @@ Wenn N = 8 ist, können Sie bis zu 400 haben.
Wenn N = 17 ist, können Sie 480 haben.
-Wenn schliesslich N gegen unendlich geht (und Ihr Budget gegen negativ
+Wenn schließlich N gegen unendlich geht (und Ihr Budget gegen negativ
unendlich), können Sie sehr nahe an 600 Schreibvorgänge pro Sekunde kommen
und damit den Systemdurchsatz um etwa den Faktor 5,5 erhöhen. Mit nur 8
Servern jedoch kommen Sie bereits auf eine Steigerung um fast den Faktor 4.
Beachten Sie, dass diese Berechnungen von unbegrenzter Netzwerk-Bandbreite
-ausgehen und verschiedene andere Faktoren vernachläsigen, die auf Ihrem
+ausgehen und verschiedene andere Faktoren vernachlässigen, die auf Ihrem
System signifikant sein könnten. In vielen Fällen werden Sie nicht in der
Lage sein, präzise vorauszusagen, was auf Ihrem System passieren wird, wenn
Sie N Replikations-Slaves hinzufügen. Dennoch kann die Beantwortung
@@ -26131,7 +25840,8 @@ automatisch den Master auswählt, aber bis es fertig ist, müssen Sie Ihre
eigenen Beobachtungswerkzeuge schaffen.
-@node Replikationsprobleme, , Replikations-FAQ, Replikation
+@node Replication Problems, , Replication FAQ, Replication
+@c German node Replikationsprobleme
@subsection Problemlösung bei Replikation
Wenn Sie den Anweisungen gefolgt sind und Ihre Replikationseinrichtung
@@ -26200,7 +25910,7 @@ Stellen Sie sicher, dass es sich nicht um alten Bug handelt, indem
Sie auf die aktuellste Version aktualisieren.
@item
Wenn alles Weitere fehlschlägt, lesen Sie die Fehler-Log-Dateien. Wenn
-diese gross sind, führen Sie ein @code{grep -i slave /pfad/zu/your-log.err}
+diese Groß sind, führen Sie ein @code{grep -i slave /pfad/zu/your-log.err}
auf dem Slave durch. Es gibt kein allgemeines Muster, nach dem man auf dem
Master suchen könnte, weil die einzigen Fehler, die dieser mitschreibt,
allgemeine Systemfehler sind - falls möglich, wird er Fehler an die Slaves
@@ -26214,7 +25924,7 @@ brauchen wir soviel Informationen von Ihnen wie möglich. Bitte nehmen Sie
sich etwas Zeit und schreiben Sie einen guten Bug-Bericht. Im Idealfall
hätten wir gerne einen Test-Fall in dem Format, das Sie im
@code{mysql-test/t/rpl*}-Verzeichnis des Source-Baums finden. Wenn Sie
-einen sochen Test-Fall schicken, können Sie in den meisten Fällen ein Patch
+einen solchen Test-Fall schicken, können Sie in den meisten Fällen ein Patch
innerhalb von ein oder zwei Tagen erwarten. Diese Zeitspanne hängt
allerdings von einer Anzahl weiterer Faktoren ab.
@@ -26276,17 +25986,10 @@ Informationen wie möglich mitschicken.
-@node MySQL-Optimierung, Referenz, MySQL-Datenbankadministration, Top
+@node MySQL Optimisation, Reference, MySQL Database Administration, Top
+@c German node MySQL-Optimierung
@chapter MySQL-Optimierung
-@menu
-* Überblick über Optimierung:: Überblick über Optimierung
-* Anfragen-Geschwindigkeit:: @code{SELECT}s und andere Anfragen optimnieren
-* Sperren (Locks):: Themen, die Sperren (Locks) betreffen
-* Optimierung der Datenbank-Struktur:: Optimierung der Datenbank-Struktur
-* Optimierung des Servers:: Optimierung des MySQL-Servers
-* Festplatte:: Themen, die die Festplatte betreffen
-@end menu
Optimierung ist eine komplizierte Aufgabe, weil sie ein umfassendes
@@ -26300,7 +26003,17 @@ MySQL zu optimieren. Denken Sie allerdings daran, dass es immer noch
zusätzliche Möglichkeiten gibt, das System noch schneller zu machen.
-@node Überblick über Optimierung, Anfragen-Geschwindigkeit, MySQL-Optimierung, MySQL-Optimierung
+@menu
+* Optimise Overview::
+* Query Speed::
+* Locking Issues::
+* Optimising Database Structure::
+* Optimising the Server::
+* Disk issues::
+@end menu
+
+@node Optimise Overview, Query Speed, MySQL Optimisation, MySQL Optimisation
+@c German node Überblick über Optimierung
@section Überblick über Optimierung
Der wichtigste Teil, um ein System schnell zu machen, ist natürlich das
@@ -26339,27 +26052,29 @@ dessen bewusst sein.
@end itemize
+
+
@menu
-* Design-Einschränkungen:: MySQL-Design-Einschränkungen
-* Portabilität:: Portabilität
-* Interner Gebrauch:: Wofür benutzen wir MySQL?
-* MySQL-Benchmarks:: Die MySQL-Benchmark-Suite
-* Benutzerspezifische Benchmarks:: Wie Sie Ihre eigenen Benchmarks benutzen
+* Design Limitations::
+* Portability::
+* Internal use::
+* MySQL Benchmarks::
+* Custom Benchmarks::
@end menu
-
-@node Design-Einschränkungen, Portabilität, Überblick über Optimierung, Überblick über Optimierung
+@node Design Limitations, Portability, Optimise Overview, Optimise Overview
+@c German node Design-Einschränkungen
@subsection MySQL-Design-Einschränkungen
@cindex Design, Einschränkungen
@cindex Einschränkungen, Design
Weil MySQL extrem schnelles Tabellensperren beherrscht (mehrfache Leser /
-einzelne Schreiber), ist das grösste verbleibende Problem eine Mischung aus
+einzelne Schreiber), ist das größte verbleibende Problem eine Mischung aus
einem laufenden Strom von Einfügevorgängen und langsamen Selects auf
dieselbe Tabelle.
-Wir glauben, dass diese Wahl auf einer sehr grossen Anzahl von Systemen
+Wir glauben, dass diese Wahl auf einer sehr großen Anzahl von Systemen
letztlich einen Gewinn darstellt. Auch dieser Fall ist üblicherweise
dadurch zu lösen, dass man mehrfache Kopien der Tabelle vorhält, aber man
benötigt mehr Anstrengung und Hardware.
@@ -26368,7 +26083,8 @@ Wir arbeiten auch an einigen Erweiterungen, um dieses Problem in Hinsicht
auf einige häufige Applikationsnischen zu lösen.
-@node Portabilität, Interner Gebrauch, Design-Einschränkungen, Überblick über Optimierung
+@node Portability, Internal use, Design Limitations, Optimise Overview
+@c German node Portabilität
@subsection Portabilität
@cindex Portabilität
@@ -26407,14 +26123,14 @@ Siehe @uref{http://www.mysql.com/information/benchmarks.html} wegen der
Ergebnisse aus diesem Benchmark-Test.
Wie Sie an den Ergebnissen sehen, haben alle Datenbanken einige
-Schwachpunkte, das heisst, sie haben verschiedene Design-Kompromisse, die
+Schwachpunkte, das heißt, sie haben verschiedene Design-Kompromisse, die
zu unterschiedlichem Verhalten führen.
Wenn Sie nach Datenbank-Unabhängigkeit streben, müssen Sie ein gutes Gefühl
für die Flaschenhälse jedes SQL-Servers bekommen. MySQL ist SEHR schnell
beim Abrufen und Aktualisieren von Dingen, hat aber Probleme, wenn
gleichzeitig langsame Leser / Schreiber auf dieselbe Tabelle zugreifen.
-Oracle hat ein grosses Problem, wenn Sie versuchen, auf Zeilen zuzugreifen,
+Oracle hat ein großes Problem, wenn Sie versuchen, auf Zeilen zuzugreifen,
der kürzlich aktualisiert wurden (solange, bis sie auf Platte
zurückgeschrieben wurden). Transaktionale Datenbanken sind allgemein nicht
sehr gut darin, Zusammenfassungstabellen aus Log-Tabellen zu erzeugen, weil
@@ -26439,28 +26155,29 @@ zu erzeugen, die alle Ergebnisse cachet, um Ihnen noch höhere Performance
zu bringen. Indem Sie alte Ergebnisse nach einer Weile 'auslaufen' lassen,
können Sie den Cache in vernünftiger Weise 'frisch' halten. Das ist in
Fällen extrem hoher Last recht nett, wobei Sie den Cache dynamisch
-vergrössern und die Verfallszeit (Expire Timeout) höher setzen können, bis
+vergrößern und die Verfallszeit (Expire Timeout) höher setzen können, bis
wieder Normalauslastung eintritt.
In diesem Fall sollte die Tabellenerzeugungsinformation Informationen über
-die ursprüngliche Cache-Grösse enthalten und darüber, wie oft die Tabelle
+die ursprüngliche Cache-Größe enthalten und darüber, wie oft die Tabelle
normalerweise aktualisiert (refresh) werden sollte.
-@node Interner Gebrauch, MySQL-Benchmarks, Portabilität, Überblick über Optimierung
+@node Internal use, MySQL Benchmarks, Portability, Optimise Overview
+@c German node Interner Gebrauch
@subsection Wofür benutzen wir MySQL?
@cindex Gebrauch, von MySQL
@cindex Kunden, von MySQL
In der anfänglichen Phase der Entwicklung von MySQL wurden die Features von
-MySQL für unseren grössten Kunden gemacht. Dieser macht Data-Warehousing
-für eine Reihe der grössten Einzelhändler in Schweden.
+MySQL für unseren größten Kunden gemacht. Dieser macht Data-Warehousing
+für eine Reihe der größten Einzelhändler in Schweden.
Aus allen Verkaufsstellen erhalten wir wöchentliche Zusammenfassungen aller
Bonuskarten-Transaktionen, und es wird erwartet, dass daraus nützliche
Informationen für die Eigentümer der Verkaufsstellen zur Verfügung gestellt
-werden, damit diese herausfinden können, wie ihre Werbemassnahmen ihre
+werden, damit diese herausfinden können, wie ihre Werbemaßnahmen ihre
Kunden beeinflussen.
Die Datenmenge ist recht riesig (etwa 7 Millionen
@@ -26517,12 +26234,13 @@ ist, aber wir können noch nichts Endgültiges darüber aussagen. Nach einigen
Diskussionen mit den Linux-Kernel-Entwicklern ist das eventuell ein
Seiteneffekt von Linux, das dem Stapel-Job so viel Ressourcen gibt, dass
die interaktive Performance sehr gering wird. Dadurch scheint die Maschine
-sehr langsam und unempfänglich für Eingaben zu lassen, während grosse
+sehr langsam und unempfänglich für Eingaben zu lassen, während große
Stapel-Jobs abgearbeitet werden. Wir hoffen, dass dies in zukünftigen
Linux-Kernels besser gehandhabt wird.
-@node MySQL-Benchmarks, Benutzerspezifische Benchmarks, Interner Gebrauch, Überblick über Optimierung
+@node MySQL Benchmarks, Custom Benchmarks, Internal use, Optimise Overview
+@c German node MySQL-Benchmarks
@subsection Die MySQL-Benchmark-Suite
@cindex Benchmark-Suite
@@ -26577,7 +26295,7 @@ Weitere Benchmark-Ergebnisse haben wir unter
Beachten Sie, dass Oracle nicht beinhaltet ist, weil sie gebeten haben,
entfernt zu werden. Alle Oracle-Benchmarks müssen von Oracle freigegeben
werden! Wir glauben, dass das die Aussagefähigkeit von Oracle-Benchmarks
-@strong{SEHR} zweifelhaft erscheinen lässt, weil alle obigen Benchmarks
+@strong{SEHR} zweifelhaft erscheinen läßt, weil alle obigen Benchmarks
dafür da sind zu zeigen, was eine Standard-Installation bei einem einzelnen
Client machen kann.
@@ -26608,16 +26326,17 @@ Wie viele Indexe unterstützt werden.
@item
Welche Funktionen unterstützt werden.
@item
-Wie gross eine Anfrage sein kann.
+Wie Groß eine Anfrage sein kann.
@item
-Wie gross eine @code{VARCHAR}-Spalte sein kann.
+Wie Groß eine @code{VARCHAR}-Spalte sein kann.
@end itemize
Sie finden die Ergebnisse von Crash-me für viele verschiedene Datenbanken
unter @uref{http://www.mysql.com/information/crash-me.php}.
-@node Benutzerspezifische Benchmarks, , MySQL-Benchmarks, Überblick über Optimierung
+@node Custom Benchmarks, , MySQL Benchmarks, Optimise Overview
+@c German node Benutzerspezifische Benchmarks
@subsection Wie Sie Ihre eigenen Benchmarks benutzen
@cindex Benchmarks
@@ -26633,7 +26352,7 @@ entscheiden, auf welche Weise dieser beseitigt werden soll, wenn Sie eines
Tages die zusätzliche Performance benötigen.
Als Beispiel für ein portables Benchmark-Programm schauen Sie sich die
-MySQL-Benchmark-Suite an. @xref{MySQL-Benchmarks, , MySQL-Benchmarks}. Sie
+MySQL-Benchmark-Suite an. @xref\{MySQL Benchmarks, , MySQL-Benchmarks}. Sie
können jedes Programm dieser Suite nehmen und es Ihren Bedürfnissen
entsprechend abändern. Wenn Sie das tun, können Sie unterschiedliche
Lösungen für Ihr Problem finden und testen, was bei Ihnen wirklich die
@@ -26658,7 +26377,8 @@ das wollen. Achten Sie daher darauf, es nur auf Entwicklungssystemen zu
verwenden.
-@node Anfragen-Geschwindigkeit, Sperren (Locks), Überblick über Optimierung, MySQL-Optimierung
+@node Query Speed, Locking Issues, Optimise Overview, MySQL Optimisation
+@c German node Anfragen-Geschwindigkeit
@section @code{SELECT}s und andere Anfragen optimieren
@cindex Anfragen, Geschwindigkeit von
@@ -26671,7 +26391,7 @@ Berechtigungssystem, das Sie einrichten, desto mehr Overhead bekommen Sie.
Falls Sie noch keinerlei @code{GRANT}-Statements ausgeführt haben,
optimiert MySQL die Berechtigungsprüfung zum Teil. Wenn Sie also sehr hohe
Zugriffszahlen haben, kann es einen Zeitvorteil darstellen, Grants zu
-vermeiden. Ansonsten können mehr Berechtigungsprüfungen in einem grösseren
+vermeiden. Ansonsten können mehr Berechtigungsprüfungen in einem größeren
Overhead resultieren.
Wenn Sie Probleme bei einer bestimmten MySQL-Funktion haben, können Sie den
@@ -26692,25 +26412,27 @@ Sekunden auf einer @code{PentiumII-400MHz}-Maschine ausführen kann.
Alle MySQL-Funktionen sollten sehr optimiert sein, aber es mag einige
Ausnahmen geben und @code{benchmark(schleifenzaehler,ausdruck)} ist ein
-grossartiges Werkzeug, um herauszufinden, ob das das Problem bei Ihrer
+großartiges Werkzeug, um herauszufinden, ob das das Problem bei Ihrer
Anfrage darstellt.
+
+
@menu
-* EXPLAIN:: @code{EXPLAIN}-Syntax (Informationen über ein @code{SELECT} erhalten)
-* Performance abschätzen:: Anfragen-Performance abschätzen
-* SELECT-Geschwindigkeit:: Geschwindigkeit von @code{SELECT}-Anfragen
-* WHERE-Optimierung:: Wie MySQL @code{WHERE}-Klauseln optimiert
-* DISTINCT-Optimierung:: Wie MySQL @code{DISTINCT} optimiert
-* LEFT-JOIN-Optimierung:: Wie MySQL @code{LEFT JOIN} optimiert
-* LIMIT-Optimierung:: Wie MySQL @code{LIMIT} optimiert
-* INSERT-Geschwindigkeit:: Geschwindigkeit von @code{INSERT}-Anfragen
-* UPDATE-Geschwindigkeit:: Geschwindigkeit von @code{UPDATE}-Anfragen
-* DELETE-Geschwindigkeit:: Geschwindigkeit von @code{DELETE}-Anfragen
-* Tipps:: Weitere Optimierungstipps
+* EXPLAIN::
+* Estimating performance::
+* SELECT speed::
+* Where optimisations::
+* DISTINCT optimisation::
+* LEFT JOIN optimisation::
+* LIMIT optimisation::
+* Insert speed::
+* Update speed::
+* Delete speed::
+* Tips::
@end menu
-
-@node EXPLAIN, Performance abschätzen, Anfragen-Geschwindigkeit, Anfragen-Geschwindigkeit
+@node EXPLAIN, Estimating performance, Query Speed, Query Speed
+@c German node EXPLAIN
@subsection @code{EXPLAIN}-Syntax (Informationen über ein @code{SELECT} erhalten)
@findex EXPLAIN
@@ -26762,14 +26484,14 @@ unten.
@item possible_keys
Die @code{possible_keys}-Spalte gibt an, welche Indexe MySQL verwenden
konnte, um Zeilen in dieser Tabelle zu finden. Beachten Sie, dass diese
-Spalte völlig unabhängig von der Reihenfolge der Tabellen ist. Das heisst,
+Spalte völlig unabhängig von der Reihenfolge der Tabellen ist. Das heißt,
dass einige der Schlüssel in possible_keys möglicherweise bei der
tatsächlich verwendeten Tabellenreihenfolge nicht verwendbar sind.
Wenn diese Spalte leer ist, gibt es keine relevanten Indexe. In diesem Fall
können Sie die Performance Ihrer Anfrage womöglich verbessern, indem Sie
die @code{WHERE}-Klausel untersuchen, um festzustellen, ob diese auf eine
-oder mehrere Spalten verweist, die zweckmässigerweise indiziert werden
+oder mehrere Spalten verweist, die zweckmäßigerweise indiziert werden
sollten. Wenn das der Fall ist, erzeugen Sie einen entsprechenden Index und
prüfen Sie die Anfrage noch einmal mit @code{EXPLAIN}. @xref{ALTER TABLE}.
@@ -26781,7 +26503,7 @@ Die @code{key}-Spalte gibt den Schlüssel an, den MySQL tatsächlich benutzen
wird. Der Schlüssel ist @code{NULL}, wenn kein Index gewählt wurde. Wenn
MySQL den falschen Index wählt, können Sie ihn wahrscheinlich zwingen,
einen anderen Index zu nehmen, indem Sie @code{myisamchk --analyze} oder
-@xref{myisamchk-Syntax} ausführen oder @code{USE INDEX/IGNORE INDEX}
+@xref\{myisamchk syntax} ausführen oder @code{USE INDEX/IGNORE INDEX}
benutzen. @xref{JOIN}.
@item key_len
@@ -26824,7 +26546,7 @@ SELECT * FROM t1 LEFT JOIN t2 ON t1.id=t2.id WHERE t2.id IS NULL;
Angenommen, @code{t2.id} ist mit @code{NOT NULL} definiert. In diesem Fall
scannt MySQL @code{t1} und schlägt die Zeilen in @code{t2} über
@code{t1.id} nach. Wenn MySQL eine übereinstimmende Zeile in @code{t2}
-findet, weiss er, dass @code{t2.id} nie @code{NULL} sein kann und scannt
+findet, weiß er, dass @code{t2.id} nie @code{NULL} sein kann und scannt
nicht durch den Rest der Zeilen in @code{t2}, die dieselbe @code{id} haben.
Mit anderen Worten, für jede Zeile in @code{t1} muss MySQL nur ein einziges
Mal in @code{t2} nachschlagen, unabhängig davon, wie viel übereinstimmende
@@ -26844,7 +26566,7 @@ Zeilen in sortierter Reihenfolge abgerufen werden sollen. Die Sortierung
wird durchgeführt, indem in Abhängigkeit vom @code{join type} durch alle
Zeilen durchgegangen wird und der Sortierschlüssel und Zeiger auf die
Zeilen für alle Zeilen gespeichert wird, die dem @code{WHERE} entsprechen.
-Danach werden die Schlüssel sortiert. Schliesslich werden die Zeilen in
+Danach werden die Schlüssel sortiert. Schließlich werden die Zeilen in
sortierter Reihenfolge abgerufen.
@item Using index
@@ -26935,7 +26657,7 @@ Werte in der @code{rows}-Spalte der @code{EXPLAIN}-Ausgabe multiplizieren.
Das sollte grob aussagen, wie vielen Zeilen MySQL untersuchen muss, um die
Anfrage auszuführen. Diese Anzahl wird auch benutzt, wenn Sie Anfragen mit
der @code{max_join_size}-Variablen begrenzen.
-@xref{Serverparameter}.
+@xref\{Server parameters}.
Das folgende Beispiel zeigt, wie ein @code{JOIN} progressiv optimiert
werden kann, indem die Informationen genutzt werden, die @code{EXPLAIN}
@@ -26987,7 +26709,7 @@ Die Tabellen haben die unten stehenden Indexe:
@end multitable
@item
-Die @code{tt.ActualPC}-Werte sind nicht gleichmässig verteilt.
+Die @code{tt.ActualPC}-Werte sind nicht gleichmäßig verteilt.
@end itemize
Anfangs, bevor die Optimierung durchgeführt wurde, ergab das
@@ -27006,7 +26728,7 @@ Weil @code{type} bei jeder Tabelle @code{ALL} ist, zeigt die Ausgabe, dass
MySQL eine komplette Verknüpfung (Full Join) aller Tabellen durchführt! Das
dauert recht lange, weil das Produkt der Zeilenanzahl in jeder Tabelle
untersucht werden muss! In diesem Fall ist das @code{74 * 2.135 * 74 *
-3.872 = 45.268.558.720} Zeilen. Wenn die Tabellen grösser wären, können Sie
+3.872 = 45.268.558.720} Zeilen. Wenn die Tabellen größer wären, können Sie
sich vorstellen, wie lange das dauern würde.
Ein Problem liegt hier darin, dass MySQL (noch) keine Indexe auf Spalten
@@ -27062,8 +26784,8 @@ do eq_ref PRIMARY PRIMARY 15 tt.ClientID 1
Das ist fast so gut, wie es überhaupt geht.
-Das verbleibende Problem besteht darin, dass MySQL vorgabemässig annimmt,
-dass die Werte in der @code{tt.ActualPC}-Spalte gleichmässig verteilt sind,
+Das verbleibende Problem besteht darin, dass MySQL vorgabemäßig annimmt,
+dass die Werte in der @code{tt.ActualPC}-Spalte gleichmäßig verteilt sind,
was in der @code{tt}-Tabelle nicht der Fall ist. Glücklicherweise ist es
einfach, MySQL darüber zu informieren:
@@ -27091,7 +26813,8 @@ versuchen, die Tabellen in der @code{FROM}-Klausel in anderer Reihenfolge
anzugeben.
-@node Performance abschätzen, SELECT-Geschwindigkeit, EXPLAIN, Anfragen-Geschwindigkeit
+@node Estimating performance, SELECT speed, EXPLAIN, Query Speed
+@c German node Performance abschätzen
@subsection Anfragen-Performance abschätzen
@cindex abschätzen, Anfragen-Performance
@@ -27101,7 +26824,7 @@ anzugeben.
In den meisten Fällen können Sie die Performance schätzen, indem Sie
Suchvorgänge auf Festplatte zählen. Bei kleinen Tabellen können Sie die
Zeile üblicherweise mit 1 Festplatten-Suchvorgang finden (weil der Index
-wahrscheinlich im Cache ist). Bei grösseren Tabellen können Sie schätzen,
+wahrscheinlich im Cache ist). Bei größeren Tabellen können Sie schätzen,
dass Sie (bei der Benutzung von B++-Baum-Indexen) brauchen werden:
@code{log(zeilen_zahl) / log(index_block_laenge / 3 * 2 / (index_laenge +
daten_zeiger_laenge)) + 1} Suchvorgänge, um die Zeile zu finden.
@@ -27124,15 +26847,16 @@ Suchvorgänge, um den Index zu aktualisieren und die Zeile zu schreiben.
Beachten Sie, dass oben Gesagtes nicht bedeutet, dass Ihre Applikation
allmählich mit N log N verfällt! Solange alles durch das Betriebssystem
oder den SQL-Server gecachet wird, werden die Dinge nur marginal langsamer,
-wenn die Tabellen grösser werden. Wenn die Daten zu gross werden, um
+wenn die Tabellen größer werden. Wenn die Daten zu Groß werden, um
gecachet zu werden, werden die Dinge anfangen, viel langsamer zu laufen,
-bis Ihre Applikation schliesslich komplett durch Suchvorgänge auf
+bis Ihre Applikation schließlich komplett durch Suchvorgänge auf
Festplatte ausgebremst wird (die mit N log N zunehmen). Um das zu
-vermeiden, vergrössern Sie den Index-Cache, wenn die Daten wachsen.
-@xref{Serverparameter}.
+vermeiden, vergrößern Sie den Index-Cache, wenn die Daten wachsen.
+@xref\{Server parameters}.
-@node SELECT-Geschwindigkeit, WHERE-Optimierung, Performance abschätzen, Anfragen-Geschwindigkeit
+@node SELECT speed, Where optimisations, Estimating performance, Query Speed
+@c German node SELECT-Geschwindigkeit
@subsection Geschwindigkeit von @code{SELECT}-Anfragen
@findex SELECT-Geschwindigkeit
@@ -27141,7 +26865,7 @@ vermeiden, vergrössern Sie den Index-Cache, wenn die Daten wachsen.
Wenn Sie ein langsames @code{SELECT ... WHERE} schneller machen wollen, ist
im Allgemeinen das erste, was zu prüfen ist, ob Sie einen Index hinzufügen
-können oder nicht. @xref{MySQL-Indexe, , MySQL-Indexe}. Alle Verweise
+können oder nicht. @xref\{MySQL indexes, , MySQL-Indexe}. Alle Verweise
(Reference) zwischen verschiedenen Tabellen sollten üblicherweise mit
Indexen gemacht werden. Sie können den @code{EXPLAIN}-Befehl benutzen, um
herauszufinden, welche Indexe für ein @code{SELECT} benutzt werden.
@@ -27163,16 +26887,17 @@ mit @code{SHOW INDEX FROM tabelle} überprüfen und die
@code{Cardinality}-Spalte untersuchen.
@item
-Um einen Index und Daten gemäss einem Index zu sortieren, benutzen Sie
+Um einen Index und Daten gemäß einem Index zu sortieren, benutzen Sie
@code{myisamchk --sort-index --sort-records=1} (wenn Sie nach Index 1
sortieren wollen). Wenn Sie einen eindeutigen Index haben, von dem Sie alle
-Datensätze gemäss der Reihenfolge dieses Indexes lesen wollen, ist das eine
+Datensätze gemäß der Reihenfolge dieses Indexes lesen wollen, ist das eine
gute Art, das schneller zu machen. Beachten Sie jedoch, dieses Sortieren
-nicht optimal geschrieben wird und bei einer grossen Tabelle lange dauert!
+nicht optimal geschrieben wird und bei einer großen Tabelle lange dauert!
@end itemize
-@node WHERE-Optimierung, DISTINCT-Optimierung, SELECT-Geschwindigkeit, Anfragen-Geschwindigkeit
+@node Where optimisations, DISTINCT optimisation, SELECT speed, Query Speed
+@c German node WHERE-Optimierung
@subsection Wie MySQL @code{WHERE}-Klauseln optimiert
@findex WHERE
@@ -27309,7 +27034,8 @@ mysql> SELECT ... FROM tabelle ORDER BY schluessel_teil1 DESC,schluessel_teil2 D
@end example
-@node DISTINCT-Optimierung, LEFT-JOIN-Optimierung, WHERE-Optimierung, Anfragen-Geschwindigkeit
+@node DISTINCT optimisation, LEFT JOIN optimisation, Where optimisations, Query Speed
+@c German node DISTINCT-Optimierung
@subsection Wie MySQL @code{DISTINCT} optimiert
@findex DISTINCT
@@ -27320,7 +27046,7 @@ mysql> SELECT ... FROM tabelle ORDER BY schluessel_teil1 DESC,schluessel_teil2 D
@code{DISTINCT} in Kombination mit @code{ORDER BY} benötigt in vielen
Fällen ebenfalls eine temporäre Tabelle.
-WEnn @code{LIMIT #} mit @code{DISTINCT} kombiniert wird, hält MySQL an,
+Wenn @code{LIMIT #} mit @code{DISTINCT} kombiniert wird, hält MySQL an,
sobald er @code{#} eindeutige Zeilen findet.
Wenn Sie nicht Spalten aus allen benutzten Tabellen verwenden, hält MySQL
@@ -27337,7 +27063,8 @@ das mit @code{EXPLAIN}). In diesem Fall hört MySQL auf, von t2 zu lesen
wurde.
-@node LEFT-JOIN-Optimierung, LIMIT-Optimierung, DISTINCT-Optimierung, Anfragen-Geschwindigkeit
+@node LEFT JOIN optimisation, LIMIT optimisation, DISTINCT optimisation, Query Speed
+@c German node LEFT-JOIN-Optimierung
@subsection Wie MySQL @code{LEFT JOIN} optimiert
@findex LEFT JOIN
@@ -27401,7 +27128,7 @@ SELECT * FROM a,b LEFT JOIN c ON (c.key=a.key) LEFT JOIN d (d.key=a.key) WHERE b
MySQL einen kompletten Scan von @code{b} durchführen wird, weil der
@code{LEFT JOIN} erzwingt, dass diese vor @code{d} gelesen wird.
-Das lässt sich in diesem Fall beheben, indem die Anfrage wie folgt geändert
+Das läßt sich in diesem Fall beheben, indem die Anfrage wie folgt geändert
wird:
@example
@@ -27409,7 +27136,8 @@ SELECT * FROM b,a LEFT JOIN c ON (c.key=a.key) LEFT JOIN d (d.key=a.key) WHERE b
@end example
-@node LIMIT-Optimierung, INSERT-Geschwindigkeit, LEFT-JOIN-Optimierung, Anfragen-Geschwindigkeit
+@node LIMIT optimisation, Insert speed, LEFT JOIN optimisation, Query Speed
+@c German node LIMIT-Optimierung
@subsection Wie MySQL @code{LIMIT} optimiert
@findex LIMIT
@@ -27445,12 +27173,13 @@ die Anfrage abgebrochen.
zurück. Das ist nützlich, um die Anfrage zu überprüfen und die Spaltentypen
der Ergebnisspalten zu erhalten.
@item
-Die Grösse der temporären Tabellen benutzt @code{LIMIT #}, um zu berechnen,
+Die Größe der temporären Tabellen benutzt @code{LIMIT #}, um zu berechnen,
wieviel Platz benötigt wird, um die Anfrage aufzulösen.
@end itemize
-@node INSERT-Geschwindigkeit, UPDATE-Geschwindigkeit, LIMIT-Optimierung, Anfragen-Geschwindigkeit
+@node Insert speed, Update speed, LIMIT optimisation, Query Speed
+@c German node INSERT-Geschwindigkeit
@subsection Geschwindigkeit von @code{INSERT}-Anfragen
@findex INSERT
@@ -27468,18 +27197,18 @@ Anfrage an den Server schicken: (2)
@item
Anfrage parsen: (2)
@item
-Datensatz einfügen: (1 x Grösse des Datensatzes)
+Datensatz einfügen: (1 x Größe des Datensatzes)
@item
Indexe einfügen: (1 x Anzahl der Indexe)
@item
-Schliessen: (1)
+Schließen: (1)
@end itemize
Wobei die Zahlen in etwa proportional zur Gesamtzeit sind. Diese Berechnung
zieht den anfänglichen Overhead, um Tabellen zu öffnen, nicht in Betracht
(was einmal für jede gleichzeitig laufende Anfrage gemacht wird).
-Die Grösse der Tabelle verlangsamt das Einfügen von Indexen um N log N
+Die Größe der Tabelle verlangsamt das Einfügen von Indexen um N log N
(B-Bäume).
Einige Möglichkeiten, die Geschwindigkeit von Einfügeoperationen zu
@@ -27496,7 +27225,7 @@ beschleunigen. @xref{SHOW VARIABLES}.
@item
Wenn Sie viele Zeilen von unterschiedlichen Clients aus einfügen, können
Sie mehr Geschwindigkeit erzielen, wenn Sie das @code{INSERT
-DELAYED}-Statement benutzen. @xref{INSERT, , @code{INSERT}}.
+DELAYED}-Statement benutzen. @xref\{HANDLER, , @code{INSERT}}.
@item
Beachten Sie, dass Sie mit @code{MyISAM}-Tabellen Zeilen zur selben Zeit
einfügen können, zu der @code{SELECT}s laufen, wenn es keine gelöschten
@@ -27529,7 +27258,7 @@ werden keine Indexe aktualisiert, was deswegen sehr schnell läuft.
@item
Wenn Sie in Zukunft nur noch aus der Tabelle lesen, benutzen Sie
-@code{myisampack}, um sie kleiner zu machen. @xref{Komprimiertes Format}.
+@code{myisampack}, um sie kleiner zu machen. @xref\{Compressed format}.
@item
Erzeugen Sie die Indexe mit @code{myisamchk -r -q /pfad/zu/db/tabelle} neu.
@@ -27595,16 +27324,17 @@ schneller.
@end itemize
Um sowohl für @code{LOAD DATA INFILE} als auch für @code{INSERT} mehr
-Geschwindigkeit zu erzielen, vergrössern Sie den Schlüssel-Puffer.
-@xref{Serverparameter}.
+Geschwindigkeit zu erzielen, vergrößern Sie den Schlüssel-Puffer.
+@xref\{Server parameters}.
-@node UPDATE-Geschwindigkeit, DELETE-Geschwindigkeit, INSERT-Geschwindigkeit, Anfragen-Geschwindigkeit
+@node Update speed, Delete speed, Insert speed, Query Speed
+@c German node UPDATE-Geschwindigkeit
@subsection Geschwindigkeit von @code{UPDATE}-Anfragen
Update-Anfragen werden wie eine @code{SELECT}-Anfrage optimiert, mit dem
zusätzlichen Overhead eines Schreibvorgangs. Die Geschwindigkeit des
-Schreibvorgangs hängt von der Grösse der Daten und von der Anzahl der
+Schreibvorgangs hängt von der Größe der Daten und von der Anzahl der
Indexe, die aktualisiert werden, ab. Indexe, die nicht geändert werden,
werden nicht aktualisiert.
@@ -27619,7 +27349,8 @@ Wenn Sie das oft durchführen, ist es daher sehr wichtig, gelegentlich
@code{OPTIMIZE TABLE} auszuführen. @xref{OPTIMIZE TABLE, , @code{OPTIMIZE TABLE}}.
-@node DELETE-Geschwindigkeit, Tipps, UPDATE-Geschwindigkeit, Anfragen-Geschwindigkeit
+@node Delete speed, Tips, Update speed, Query Speed
+@c German node DELETE-Geschwindigkeit
@subsection Geschwindigkeit von @code{DELETE}-Anfragen
Wenn Sie alle Zeilen in der Tabelle löschen wollen, sollten Sie
@@ -27627,11 +27358,12 @@ Wenn Sie alle Zeilen in der Tabelle löschen wollen, sollten Sie
Die Zeit, die für das Löschen eines Datensatzes benötigt wird, ist exakt
proportional zur Anzahl der Indexe. Um Datensätze schneller zu löschen,
-können Sie die Grösse des Index-Caches herauf setzen.
-@xref{Serverparameter}.
+können Sie die Größe des Index-Caches herauf setzen.
+@xref\{Server parameters}.
-@node Tipps, , DELETE-Geschwindigkeit, Anfragen-Geschwindigkeit
+@node Tips, , Delete speed, Query Speed
+@c German node Tipps
@subsection Weitere Optimierungstipps
@cindex Optimierung, Tipps
@@ -27645,7 +27377,7 @@ Benutzen Sie persistente Verbindungen zur Datenbank, um
Verbindungs-Overhead zu vermeiden. Wenn Sie keine persistenten Verbindungen
benutzen können und viele neue Verbindungen zur Datenbank aufmachen,
sollten Sie den Wert der @code{Thread_cache_size}-Variablen ändern.
-@xref{Serverparameter}.
+@xref\{Server parameters}.
@item
Überprüfen Sie immer, dass alle Ihre Anfragen tatsächlich die Indexe
benutzen, die Sie in den Tabellen erzeugt haben. In MySQL kann man das mit
@@ -27662,13 +27394,13 @@ TABLE} laufen lassen, nachdem Sie viele Zeilen gelöscht haben.
@item
Benutzen Sie @code{ALTER TABLE ... ORDER BY ausdruck1,ausdruck2,...}, wenn
Sie Zeilen zumeist in der Reihenfolge ausdruck1,ausdruck2,... abrufen. Wenn
-Sie diese Option nach grossen Änderungen in der Tabelle nutzen, erzielen
+Sie diese Option nach großen Änderungen in der Tabelle nutzen, erzielen
Sie eventuell höhere Performance.
@item
In einigen Fällen kann es sinnvoll sein, eine Spalte einzuführen, die auf
der Grundlage von Informationen aus anderen Spalten 'gehashed' ist. Wenn
diese Spalte kurz und halbwegs eindeutig ist, kann das schneller sein als
-ein grosser Index auf mehrere Spalten. In MySQL ist es sehr einfach, eine
+ein großer Index auf mehrere Spalten. In MySQL ist es sehr einfach, eine
solche zusätzliche Spalte zu benutzen:
@code{SELECT * FROM tabelle WHERE hash=MD5(concat(spalte1,spalte2))
AND spalte_1='constant' AND spalte_2='constant'}
@@ -27676,7 +27408,7 @@ AND spalte_1='constant' AND spalte_2='constant'}
Bei Tabellen, die sich viel ändern, sollten Sie versuchen, alle
@code{VARCHAR}- oder @code{BLOB}-Spalten zu vermeiden. Sonst erhalten Sie
dynamische Zeilenlängen, sobald Sie eine einzige @code{VARCHAR}- oder
-@code{BLOB}-Spalte verwenden. @xref{Tabellentypen}.
+@code{BLOB}-Spalte verwenden. @xref\{Table types}.
@item
Normalerweise nützt es nichts, eine Tabelle in verschiedene Tabellen
aufzuteilen, nur weil die Zeile 'viel' werden. Um auf eine Zeile
@@ -27688,7 +27420,7 @@ wirklich etwas ausmacht, wenn eine Tabelle aufgeteilt wird, ist, wenn die
Tabelle dynamische Zeilenlänge hat (siehe oben), was nicht in eine feste
Zeilenlänge umgewandelt werden kann, oder wenn Sie die Tabelle sehr oft
scannen müssen, die meisten der Spalten hierfür aber nicht benötigen.
-@xref{Tabellentypen}.
+@xref\{Table types}.
@item
Wenn Sie sehr oft etwas auf der Grundlage von Informationen aus sehr vielen
Zeilen berechnen müssen (zum Beispiel Dinge zählen), ist es wahrscheinlich
@@ -27701,7 +27433,7 @@ Tabellensperren haben (viele Leser / einzelne Schreiber). Bei den meisten
sonstigen Datenbanken ergibt das ebenfalls bessere Performance, weil der
Zeilensperr-Manager weniger zu tun haben wird.
@item
-Wenn Sie Statistiken aus grossen Log-Tabellen gewinnen wollen, benutzen Sie
+Wenn Sie Statistiken aus großen Log-Tabellen gewinnen wollen, benutzen Sie
Zusammenfassungstabellen, statt die gesamte Tabelle zu scannen. Die Wartung
der Zusammenfassungen sollte wesentlich leichter sein, als die Statistiken
'live' zu generieren. Es ist viel schneller, neue Zusammenfassungstabellen
@@ -27752,13 +27484,13 @@ Benutzten Sie @code{INSERT /*! LOW_PRIORITY */}, wenn Sie wollen, dass Ihre
Selects höhere Priorität haben.
@item
Benutzen Sie @code{SELECT /*! HIGH_PRIORITY */}, um zu bewirken, dass
-Selects in der Wartereihe nach vorn springen. Das heisst, der Select wird
+Selects in der Wartereihe nach vorn springen. Das heißt, der Select wird
sogar dann durchgeführt, wenn jemand darauf wartet, etwas zu schreiben.
@item
Benutzen Sie das mehrzeilige @code{INSERT}-Statement, um viele Zeilen mit
einem SQL-Befehl zu speichern (viele SQL-Server unterstützen das).
@item
-Benutzen Sie @code{LOAD DATA INFILE}, um grössere Datenmengen zu laden. Das
+Benutzen Sie @code{LOAD DATA INFILE}, um größere Datenmengen zu laden. Das
ist schneller als normale Einfügevorgänge und wird noch schneller, wenn
@code{myisamchk} in @code{mysqld} integriert wird.
@item
@@ -27766,13 +27498,15 @@ Benutzen Sie @code{AUTO_INCREMENT}-Spalten, um eindeutige Werte zu
erzeugen.
@item
Benutzen Sie gelegentlich @code{OPTIMIZE TABLE}, um Fragmentierungen zu
-vermeiden, wenn Sie das dynamische Tabellenformat verwenden. @xref TABLE, , @code{OPTIMIZE TABLE}}.
+vermeiden, wenn Sie das dynamische Tabellenformat verwenden.
+@c German FIX changed @xref from TABLE to OPTIMIZE TABLE (point to proper node)
+@xref{OPTIMIZE TABLE}.
@item
Benutzen Sie - wenn möglich - @code{HEAP}-Tabellen, um mehr Geschwindigkeit
-zu erzielen. @xref{Tabellentypen}.
+zu erzielen. @xref\{Table types}.
@item
Bei einer normalen Webserver-Konfiguration sollten Bilder als separate
-Dateien gespeichert werden. Das heisst, speichern Sie nur einen Verweis zur
+Dateien gespeichert werden. Das heißt, speichern Sie nur einen Verweis zur
Datei in der Datenbank. Der Hauptgrund ist, dass normale Webserver viel
besser darin sind, Dateien zu cachen als Datenbankinhalte. Daher ist es
viel einfacher, ein schnelles System zu bekommen, wenn Sie Dateien
@@ -27815,7 +27549,7 @@ Textdateien nicht parsen müssen, um Zeilen- und Spaltenbegrenzungen zu
finden.
@item
Ausserdem können Sie Replikation benutzen, um die Geschwindigkeit zu
-steigern. @xref{Replikation}.
+steigern. @xref\{Replication}.
@item
Wenn eine Tabelle mit @code{DELAY_KEY_WRITE=1} deklariert wird, werden
Aktualisierungen auf Indexe schneller, weil diese nicht auf Platte
@@ -27828,17 +27562,20 @@ sollten Sie durch @code{DELAY_KEY_WRITE} nichts verlieren.
@end itemize
-@node Sperren (Locks), Optimierung der Datenbank-Struktur, Anfragen-Geschwindigkeit, MySQL-Optimierung
+@node Locking Issues, Optimising Database Structure, Query Speed, MySQL Optimisation
+@c German node Sperren (Locks)
@section Sperren (Locking)
+
+
@menu
-* Internes Sperren:: Wie MySQL Tabellen sperrt
-* Tabellensperren:: Themen, die Tabellensperren betreffen
+* Internal locking::
+* Table locking::
@end menu
-
-@node Internes Sperren, Tabellensperren, Sperren (Locks), Sperren (Locks)
+@node Internal locking, Table locking, Locking Issues, Locking Issues
+@c German node Internes Sperren
@subsection Wie MySQL Tabellen sperrt
@cindex internes Sperren
@@ -27846,7 +27583,7 @@ sollten Sie durch @code{DELAY_KEY_WRITE} nichts verlieren.
@cindex Tabellen, sperren
Im Anhang finden Sie eine Erörterung zu den unterschiedlichen
-Sperrmethoden. @xref{Sperrmethoden}.
+Sperrmethoden. @xref\{Locking methods}.
Jedes Sperren in MySQL ist blockierungsfrei. Das wird erreicht, indem alle
Sperren zugleich am Anfang einer Anfrage angefordert werden, und indem
@@ -27912,7 +27649,8 @@ Lesesperren dieselbe Priorität, was bei einigen Applikationen eventuell
hilfreich ist.
-@node Tabellensperren, , Internes Sperren, Sperren (Locks)
+@node Table locking, , Internal locking, Locking Issues
+@c German node Tabellensperren
@subsection Themen, die Tabellensperren betreffen
@cindex Probleme, Tabellensperren
@@ -27921,7 +27659,7 @@ Der Tabellensperren-Code in MySQL ist blockierungsfrei.
MySQL benutzt Tabellensperren (anstelle von Zeilensperren oder
Spaltensperren) für alle Tabellentypen ausser @code{BDB}-Tabellen, um eine
-sehr hohe Sperrgeschwindigkeit zu erzielen. Bei grossen Tabellen ist
+sehr hohe Sperrgeschwindigkeit zu erzielen. Bei großen Tabellen ist
Tabellensperren bei den meisten Applikationen VIEL besser als
Zeilensperren, aber es gibt natürlich ein paar Fallstricke.
@@ -27948,7 +27686,7 @@ Weil Aktualisierung von Tabellen normalerweise als wichtiger erachtet
werden als @code{SELECT}, erhalten alle Statements, die eine Tabelle
aktualisieren, eine höhere Priorität als Statements, die Informationen aus
der Tabelle abrufen. Das sollte sicherstellen, dass Aktualisierungen nicht
-'verhungern', wenn viele grosse Anfragen auf eine bestimmte Tabelle
+'verhungern', wenn viele große Anfragen auf eine bestimmte Tabelle
durchgeführt werden. (Sie können das ändern, indem Sie bei dem Statement,
dass die Aktualisierung durchführt, LOW_PRIORITY verwenden, oder beim
@code{SELECT}-Statement @code{HIGH_PRIORITY}.)
@@ -28018,7 +27756,7 @@ gleichzeitige @code{SELECT}s und @code{INSERT}s unterstützen.
@item
Wenn Sie hauptsächlich @code{INSERT}- und @code{SELECT}-Statements mischen,
wird das @code{DELAYED}-Attribut für @code{INSERT} wahrscheinlich Ihre
-Probleme lösen. @xref{INSERT, , @code{INSERT}}.
+Probleme lösen. @xref\{HANDLER, , @code{INSERT}}.
@item
Wenn Sie Probleme mit @code{SELECT} und @code{DELETE} haben, mag die
@@ -28027,23 +27765,26 @@ Wenn Sie Probleme mit @code{SELECT} und @code{DELETE} haben, mag die
@end itemize
-@node Optimierung der Datenbank-Struktur, Optimierung des Servers, Sperren (Locks), MySQL-Optimierung
+@node Optimising Database Structure, Optimising the Server, Locking Issues, MySQL Optimisation
+@c German node Optimierung der Datenbank-Struktur
@section Optimierung der Datenbank-Struktur
+
+
@menu
-* Design:: MySQL-Datenbank-Design-Überlegungen
-* Datengrösse:: Wie Sie Ihre Daten so klein wie möglich bekommen
-* MySQL-Indexe:: Wie MySQL Indexe benutzt
-* Indexe:: Spalten-Indexe
-* Mehrspaltige Indexe:: Mehrspaltige Indexe
-* Tabellen-Cache:: Wie MySQL Tabellen öffnet und schliesst
-* Viele Tabellen erzeugen:: Nachteile der Erzeugung grosser Mengen von Tabellen in derselben Datenbank
-* Offene Tabellen:: Warum gibt es so viele offene Tabellen?
+* Design::
+* Data size::
+* MySQL indexes::
+* Indexes::
+* Multiple-column indexes::
+* Open tables::
+* Table cache::
+* Creating many tables::
@end menu
-
-@node Design, Datengrösse, Optimierung der Datenbank-Struktur, Optimierung der Datenbank-Struktur
+@node Design, Data size, Optimising Database Structure, Optimising Database Structure
+@c German node Design
@subsection MySQL-Datenbank-Design-Überlegungen
@cindex Design, Überlegungen zum Datenbank-Design
@@ -28087,11 +27828,12 @@ Ist es schwieriger, NUR die Index-Daten zu cachen.
@end itemize
-@node Datengrösse, MySQL-Indexe, Design, Optimierung der Datenbank-Struktur
+@node Data size, MySQL indexes, Design, Optimising Database Structure
+@c German node Datengröße
@subsection Wie Sie Ihre Daten so klein wie möglich bekommen
-@cindex Daten, Grösse
-@cindex verringern, Datengrösse
+@cindex Daten, Größe
+@cindex verringern, Datengröße
@cindex Speicherplatz, minimieren
@cindex Tabellen, Performance verbessern
@cindex Performance, verbessern
@@ -28105,9 +27847,9 @@ darüber hinaus weniger Ressourcen in Anspruch, wenn es auf kleinere Spalten
durchgeführt wird.
MySQL unterstützt viele verschiedene Tabellentypen und Zeilenformate. Wenn
-Sie das richtige Tabellenformat benutzen, kann Ihnen das grosse
+Sie das richtige Tabellenformat benutzen, kann Ihnen das große
Performance-Gewinne bringen.
-@xref{Tabellentypen}.
+@xref\{Table types}.
Sie erhalten bessere Performance auf eine Tabelle und minimieren den
benötigten Speicherplatz, wenn Sie die unten aufgeführten Techniken
@@ -28128,13 +27870,13 @@ Deklarieren Sie Spalten - falls möglich - als @code{NOT NULL}. Das macht
alles schneller und Sie sparen ein Bit pro Spalte. Beachten Sie, dass, wenn
Sie wirklich @code{NULL} in Ihrer Applikation benötigen, Sie dieses
natürlich benutzen sollten. Vermeiden Sie nur, einfach alle Spalten
-vorgabemässig auf @code{NULL} zu haben.
+vorgabemäßig auf @code{NULL} zu haben.
@item
Wenn Sie keine Spalten variabler Länge haben (@code{VARCHAR}, @code{TEXT}
-oder @code{BLOB}-Spalten), wird ein Festgrössenformat benutzt. Das ist
+oder @code{BLOB}-Spalten), wird ein Festgrößenformat benutzt. Das ist
schneller, mag aber leider etwas Speicherplatz verschwenden.
-@xref{MyISAM-Tabellenformate}.
+@xref\{MyISAM table formats}.
@item
Der primäre Index einer Tabelle sollte so kurz wie möglich sein. Das macht
@@ -28142,7 +27884,7 @@ die Identifikation einer Zeile schnell und effizient.
@item
Bei jeder Tabelle müssen Sie entscheiden, welche Speicher- / Index-Methode
-benutzt werden soll. @xref{Tabellentypen}.
+benutzt werden soll. @xref\{Table types}.
@item
Erzeugen Sie nur die Indexe, die Sie tatsächlich brauchen. Indexe sind gut
@@ -28160,7 +27902,7 @@ indexieren. MySQL unterstützt einen Index auf einem Teil einer
Zeichen-Spalte. Kürzere Indexe sind nicht nur schneller, weil sie weniger
Plattenplatz brauchen, sondern auch, weil Sie mehr Treffer im Index-Cache
erhalten und daher weniger Festplattenzugriffe benötigen.
-@xref{Serverparameter}.
+@xref\{Server parameters}.
@item
Unter manchen Umständen kann es vorteilhaft sein, eine Tabelle zu teilen,
@@ -28171,7 +27913,8 @@ kann, um die relevanten Zeilen zu finden.
@end itemize
-@node MySQL-Indexe, Indexe, Datengrösse, Optimierung der Datenbank-Struktur
+@node MySQL indexes, Indexes, Data size, Optimising Database Structure
+@c German node MySQL-Indexe
@subsection Wie MySQL Indexe benutzt
@cindex Indexe, Benutzung von
@@ -28179,7 +27922,7 @@ kann, um die relevanten Zeilen zu finden.
Indexe werden benutzt, um Zeilen mit einem bestimmten Spaltenwert schnell
zu finden. Ohne Index müsste MySQL mit dem ersten Datensatz anfangen und
dann durch die gesamte Tabelle lesen, bis er die relevanten Zeilen findet.
-Je grösser die Tabelle, desto mehr Zeit kostet das. Wenn die Tabellen für
+Je größer die Tabelle, desto mehr Zeit kostet das. Wenn die Tabellen für
die infrage kommenden Zeilen einen Index hat, kann MySQL schnell eine
Position bekommen, um mitten in der Daten-Datei loszusuchen, ohne alle
Daten zu betrachten. Wenn eine Tabelle 1.000 Zeilen hat, ist das mindestens
@@ -28206,7 +27949,7 @@ Den @code{MAX()}- oder @code{MIN()}-Wert für eine spezielle indizierte
Spalte zu finden. Das wird durch einen Präprozessor optimiert, der
überprüft, ob Sie @code{WHERE} schluessel_teil_# = constant auf allen
Schlüsselteilen < N verwenden. In diesem Fall führt MySQL ein einzige
-Schlüsselnachschlagen durch und ersetzt den @code{MIN()}-Ausdruck mit eienr
+Schlüsselnachschlagen durch und ersetzt den @code{MIN()}-Ausdruck mit einer
Konstanten. Wenn alle Ausdrücke durch Konstanten ersetzt sind, gibt die
Anfrage sofort ein Ergebnis zurück:
@@ -28237,7 +27980,7 @@ SELECT * FROM foo WHERE schluessel_teil1=konstante GROUP BY schluessel_teil2;
In einigen Fällen kann eine Anfrage so optimiert werden, dass Sie Werte
abruft, ohne in der Daten-Datei nachzuschlagen. Wenn alle benutzten Spalten
einer Tabelle numerisch sind und ein ganz links stehendes Präfix für einen
-Schlüssel ergeben, können die Werte mit grösserer Geschwindigkeit aus dem
+Schlüssel ergeben, können die Werte mit größerer Geschwindigkeit aus dem
Index-Baum abgerufen werden:
@example
@@ -28355,16 +28098,10 @@ dann schneller die wenigen Zeilen im Ergebnis finden kann.
@end itemize
-@menu
-* Indexe:: Spalten-Indexe
-* Mehrspaltige Indexe:: Mehrspaltige Indexe
-* Tabellen-Cache:: Wie MySQL Tabellen öffnet und schliesst
-* Viele Tabellen erzeugen:: Nachteile der Erzeugung grosser Mengen von Tabellen in derselben Datenbank
-* Offene Tabellen:: Warum gibt es so viele offene Tabellen?
-@end menu
-@node Indexe, Mehrspaltige Indexe, MySQL-Indexe, Optimierung der Datenbank-Struktur
+@node Indexes, Multiple-column indexes, MySQL indexes, Optimising Database Structure
+@c German node Indexe
@subsection Spalten-Indexe
@cindex Indexe, Spalten
@@ -28376,7 +28113,7 @@ auf den relevanten Spalten ist die beste Art, die Performance von
@code{SELECT}-Operationen zu verbessern.
Die maximale Anzahl von Schlüsseln und die maximale Index-Länge ist durch
-den Tabellen-Handler vorgegeben. @xref{Tabellentypen}. Bei allen
+den Tabellen-Handler vorgegeben. @xref\{Table types}. Bei allen
Tabellen-Handlern können Sie zumindest 16 Schlüssel und eine
Gesamtindexlänge von zumindest 256 Bytes haben.
@@ -28407,9 +28144,10 @@ erzeugen. Sie werden für die Volltextsuche benutzt. Nur der
@code{MyISAM}-Tabellentyp unterstützt @code{FULLTEXT}-Indexe. Sie können
nur auf @code{VARCHAR}- und @code{TEXT}-Spalten erzeugt werden. Die
Indexierung erfolgt immer über die gesamte Spalte; teilweises Indexieren
-wird nicht unterstützt. Siehe @ref{Volltextsuche} für Details.
+wird nicht unterstützt. Siehe @ref\{Fulltext Search} für Details.
-@node Mehrspaltige Indexe, Tabellen-Cache, Indexe, Optimierung der Datenbank-Struktur
+@node Multiple-column indexes, Open tables, Indexes, Optimising Database Structure
+@c German node Mehrspaltige Indexe
@subsection Mehrspaltige Indexe
@cindex mehrspaltige Indexe
@@ -28469,25 +28207,26 @@ mysql> SELECT * FROM test WHERE nachname="Widenius"
@end example
Weitere Informationen über die Art, wie MySQL Indexe benutzt, um die
-Anfragen-Performance zu verbessern, finden Sie unter @ref{MySQL-Indexe, ,
+Anfragen-Performance zu verbessern, finden Sie unter @ref\{MySQL indexes, ,
MySQL-Indexe}.
-@node Tabellen-Cache, Viele Tabellen erzeugen, Mehrspaltige Indexe, Optimierung der Datenbank-Struktur
-@subsection Wie MySQL Tabellen öffnet und schliesst
+@node Open tables, Table cache, Multiple-column indexes, Optimising Database Structure
+@c German node Tabellen-Cache
+@subsection Wie MySQL Tabellen öffnet und schließt
@findex table_cache
@cindex Tabellen, öffnen
-@cindex Tabellen, schliessen
+@cindex Tabellen, schließen
@cindex öffnen, Tabellen
-@cindex schliessen, Tabellen
+@cindex schließen, Tabellen
@cindex Tabellen-Cache
@code{table_cache}, @code{max_connections} und @code{max_tmp_tables}
beeinflussen die maximale Anzahl von Dateien, die der Server offen halten
kann. Wenn Sie einen oder mehrere dieser Werte erhöhen, können Sie an eine
-Begrenzung stossen, die durch Ihr Betriebssystem in Bezug auf die Anzahl
+Begrenzung stoßen, die durch Ihr Betriebssystem in Bezug auf die Anzahl
offener Datei-Deskriptoren pro Prozess festgelegt wird. Diese Begrenzung
kann man jedoch auf vielen Systemen erhöhen. Sehen Sie im Handbuch Ihres
Betriebssystems nach, wie man das macht, weil die Methode, wie die
@@ -28509,7 +28248,7 @@ mehr aus und läuft sehr unzuverlässig. Beachten Sie auch, dass der
MyISAM-Tabellen-Handler zwei Datei-Deskriptoren für jede einzelne offene
Tabelle benötigt. Sie können die Anzahl von Datei-Deskriptoren, die für
MySQL verfügbar sind, in der @code{--open-files-limit=#}-Startoption
-angeben. @xref{Nicht genug Datei-Handles}.
+angeben. @xref\{Not enough file handles}.
Der Cache offener Tabellen kann bis auf @code{table_cache} anwachsen
(Vorgabewert 64; das kann mit der @code{-O Tabellen-Cache=#}-Option für
@@ -28529,7 +28268,7 @@ Reihenfolge der kürzlich am wenigsten benutzten Tabellen.
@item
Wenn der Cache voll ist und keine Tabellen freigegeben werden können, aber
eine neue Tabelle geöffnet werden muss, wird der Cache temporär wie
-benötigt vergrössert.
+benötigt vergrößert.
@item
Wenn der Cache gerade im Zustand temporärer Erweiterung ist und eine
@@ -28550,16 +28289,17 @@ wird dem Thread ein dediziertes Tabellenobjekt zugewiesen. Diese
Tabellenobjekt wird nicht mit anderen Threads geteilt und wird solange
nicht geschlossen, bis der Thread @code{HANDLER tabelle CLOSE} aufruft oder
stirbt.
-@xref{HANDLER}.
+@xref\{INSERT}.
Sie können prüfen, ob Ihr Tabellen-Cache zu klein ist, indem Sie die
-mysqld-Variable @code{opened_tables} ansehen. Wenn diese recht gross ist,
+mysqld-Variable @code{opened_tables} ansehen. Wenn diese recht Groß ist,
selbst wenn Sie nicht viele @code{FLUSH TABLES} ausgeführt haben, sollten
-Sie Ihren Tabellen-Cache vergrössern. @xref{SHOW STATUS}.
+Sie Ihren Tabellen-Cache vergrößern. @xref{SHOW STATUS}.
-@node Viele Tabellen erzeugen, Offene Tabellen, Tabellen-Cache, Optimierung der Datenbank-Struktur
-@subsection Nachteile der Erzeugung grosser Mengen von Tabellen in derselben Datenbank
+@node Table cache, Creating many tables, Open tables, Optimising Database Structure
+@c German node Viele Tabellen erzeugen
+@subsection Nachteile der Erzeugung großer Mengen von Tabellen in derselben Datenbank
@cindex Tabellen, zu viele
@@ -28568,10 +28308,11 @@ create-Operationen langsam. Wenn Sie ein @code{SELECT}-Statements auf viele
unterschiedliche Tabellen ausführen, gibt es ein bisschen Overhead, wenn
der Tabellen-Cache voll ist, weil für jede Tabelle, die geöffnet wird, eine
andere geschlossen werden muss. Sie können diese Overhead verringern, indem
-Sie den Tabellen-Cache grösser machen.
+Sie den Tabellen-Cache größer machen.
-@node Offene Tabellen, , Viele Tabellen erzeugen, Optimierung der Datenbank-Struktur
+@node Creating many tables, , Table cache, Optimising Database Structure
+@c German node Offene Tabellen
@subsection Warum gibt es so viele offene Tabellen?
@cindex Tabellen, offene
@@ -28594,21 +28335,24 @@ Arbeitsspeicher und einen externen Datei-Deskriptor für die Daten-Datei.
Der Index-Datei-Deskriptor wird mit allen Threads geteilt.
-@node Optimierung des Servers, Disk issues, Optimierung der Datenbank-Struktur, MySQL-Optimierung
+@node Optimising the Server, Disk issues, Optimising Database Structure, MySQL Optimisation
+@c German node Optimierung des Servers
@section Optimierung des MySQL-Servers
+
+
@menu
-* System:: System / Kompilierzeitpunkt und Tuning der Startparameter
-* Serverparameter:: Serverparameter tunen
-* Kompilier- und Link-Optionen:: Wie Kompilieren und Linken die Geschwindigkeit von MySQL beeinflusst
-* Speicherbenutzung:: Wie MySQL Speicher benutzt
-* DNS:: Wie MySQL DNS benutzt
-* SET OPTION:: @code{SET}-Syntax
+* System::
+* Server parameters::
+* Compile and link options::
+* Memory use::
+* DNS::
+* SET OPTION::
@end menu
-
-@node System, Serverparameter, Optimierung des Servers, Optimierung des Servers
+@node System, Server parameters, Optimising the Server, Optimising the Server
+@c German node System
@subsection System / Kompilierzeitpunkt und Tuning der Startparameter
@cindex Kompilieren, Optimierung
@@ -28618,17 +28362,17 @@ Der Index-Datei-Deskriptor wird mit allen Threads geteilt.
Wir fangen mit den Dingen auf Systemebene an, weil einige dieser
Entscheidungen sehr früh getroffen werden müssen. In anderen Fällen mag ein
kurzer Blick auf diesen Teil ausreichen, weil er nicht so wichtig für
-grosse Verbesserungen ist. Es ist jedoch immer nett, ein Gefühl dafür zu
+große Verbesserungen ist. Es ist jedoch immer nett, ein Gefühl dafür zu
bekommen, wie viel man gewinnen kann, wenn man Dinge auf dieser Ebene
ändert.
-Es ist wirklich wichtig, dass vorgabemässige Betriebssystem zu kennen! Um
+Es ist wirklich wichtig, dass vorgabemäßige Betriebssystem zu kennen! Um
das meiste aus Mehrprozessor-Maschinen herauszuholen, sollte man Solaris
benutzen (weil die Threads wirklich gut funktionieren) oder Linux (weil der
2.2-Kernel wirklich gute Mehrprozessor-Unterstützung bietet). Linux hat auf
-32-Bit-Maschinen vorgabemässig eine Dateigrössenbeschränkung von 2 GB. Das
+32-Bit-Maschinen vorgabemäßig eine Dateigrößenbeschränkung von 2 GB. Das
wird hoffentlich bald behoben, wenn neue Dateisysteme herausgebracht werden
-(XFS/Reiserfs). Wenn Sie dringen Unterstützung für grössere Datei als 2 GB
+(XFS/Reiserfs). Wenn Sie dringen Unterstützung für größere Datei als 2 GB
auf Linux-Intel-32-Bit benötigen, sollten Sie den LFS-Patch für das
ext2-Dateisystem holen.
@@ -28652,10 +28396,10 @@ bevor Sie @code{myisamchk} laufen lassen. Auf manchen Systemen ist diese
Umschaltung zwingend erforderlich, weil externes Sperren in keinem Fall
funktioniert.
-Die @code{--skip-locking}-Option ist vorgabemässig angeschaltet, wenn Sie
+Die @code{--skip-locking}-Option ist vorgabemäßig angeschaltet, wenn Sie
mit MIT-pThreads kompilieren, weil @code{flock()} von MIT-pThreads nicht
vollständig auf allen Plattformen unterstützt wird. Auch für Linux ist es
-vorgabemässig angeschaltet, weil Linux-Dateisperren bis jetzt nicht
+vorgabemäßig angeschaltet, weil Linux-Dateisperren bis jetzt nicht
zuverlässig funktionieren.
Der einzige Fall, wo Sie @code{--skip-locking} nicht benutzen können, sit,
@@ -28669,15 +28413,16 @@ selbst wenn Sie @code{--skip-locking} benutzen.
@end itemize
-@node Serverparameter, Kompilier- und Link-Optionen, System, Optimierung des Servers
+@node Server parameters, Compile and link options, System, Optimising the Server
+@c German node Serverparameter
@subsection Serverparameter tunen
@cindex Parameter, Server
-@cindex @code{mysqld}-Server, Puffer-Grössen
-@cindex Puffer-Grössen, @code{mysqld}-Server
+@cindex @code{mysqld}-Server, Puffer-Größen
+@cindex Puffer-Größen, @code{mysqld}-Server
@cindex Startparameter
-Sie erhalten die Puffer-Grössen, die der @code{mysqld}-Server benutzt, mit
+Sie erhalten die Puffer-Größen, die der @code{mysqld}-Server benutzt, mit
diesem Befehl:
@example
@@ -28757,7 +28502,7 @@ sein, dass diese beiden richtig gesetzt sind, bevor Sie versuchen, irgend
eine der anderen Variablen zu ändern.
Wenn Sie viel Arbeitsspeicher haben (>= 256 MB) und viele Tabellen und
-maximale Performance bei einer mässigen Anzahl von Clients haben wollen,
+maximale Performance bei einer mäßigen Anzahl von Clients haben wollen,
sollten Sie etwas wie das Folgende benutzen:
@example
@@ -28788,7 +28533,7 @@ shell> safe_mysqld -O key_buffer=512k -O sort_buffer=16k \
@end example
Wenn Sie @code{GROUP BY} oder @code{ORDER BY} auf Dateien anwenden, die
-grösser als Ihr verfügbarer Arbeitsspeicher sind, sollten Sie den Wert von
+größer als Ihr verfügbarer Arbeitsspeicher sind, sollten Sie den Wert von
@code{record_rnd_buffer} heraufsetzen, um das Lesen von Zeilen nach
Sortiervorgängen zu beschleunigen.
@@ -28820,7 +28565,8 @@ kommen, in der Ausgabe nicht gezeigt.
output.
-@node Kompilier- und Link-Optionen, Memory use, Serverparameter, Optimierung des Servers
+@node Compile and link options, Memory use, Server parameters, Optimising the Server
+@c German node Kompilier- und Link-Optionen
@subsection Wie Kompilieren und Linken die Geschwindigkeit von MySQL beeinflusst
@cindex Linken, Geschwindigkeit
@@ -28840,7 +28586,7 @@ Unter Linux erhalten Sie den schnellsten Code, wenn Sie mit @code{pgcc} und
kompilieren, brauchen Sie etwa 200 MB Arbeitsspeicher, weil @code{gcc/pgcc}
viel Speicher benötigt, um alle Funktionen inline zu machen. Sie sollten
beim Konfigurieren von MySQL auch @code{CXX=gcc} setzen, um das
-Einschliessen der @code{libstdc++}-Bibliothek zu vermeiden (die nicht
+Einschließen der @code{libstdc++}-Bibliothek zu vermeiden (die nicht
benötigt wird). Beachten Sie, dass bei einigen Version von @code{pgcc} der
erzeugte Code nur auf echten Pentium-Prozessoren läuft, selbst wenn Sie in
den Compiler-Optionen angeben, dass Sie wollen, dass der Code auf alle
@@ -28856,7 +28602,7 @@ es stellte sich heraus, dass keiner von beiden ausreichend Bug-frei war,
damit MySQL mit angeschalteten Optimierungen kompiliert werden konnte.
Wenn Sie MySQL kompilieren, sollten Sie nur Unterstützung für die
-Zeichensätze einschliessen, die Sie benutzen werden (Option
+Zeichensätze einschließen, die Sie benutzen werden (Option
@code{--with-charset=xxx}). Die Standard-MySQL-Binärdistributionen werden
mit Unterstützung für alle Zeichensätze kompiliert.
@@ -28879,7 +28625,7 @@ strippen, ist die resultierende Binärdatei bis zu 4% schneller.
@item
Wenn Sie sich über TCP/IP statt über Unix-Sockets verbinden, ist das auf
demselben Computer 7,5% langsamer. (Wenn Sie sich zu @code{localhost}
-verbinden, benutzt MySQL vorgabemässig Sockets.)
+verbinden, benutzt MySQL vorgabemäßig Sockets.)
@item
Wenn Sie sich über TCP/IP von einem anderen Computer über ein
@@ -28905,7 +28651,7 @@ Das Kompilieren mit @code{gcc} 2.95.2 für ultrasparc mit der Option
@item
Auf Solaris 2.5.1 sind MIT-pThreads 8% bis 12% langsamer als Solaris-native
Threads, auf einem Einprozessorsystem. Bei mehr Last / Prozessoren sollte
-der Unterschied grösser werden.
+der Unterschied größer werden.
@item
Laufenlassen mit @code{--log-bin} macht @strong{MySQL} 1% langsamer.
@@ -28926,7 +28672,8 @@ Standard-MySQL-Linux-Binärdatei wird statisch gelinkt, um sie schneller und
portierbarer zu machen.
-@node Speicherbenutzung, DNS, Kompilier- und Link-Optionen, Optimierung des Servers
+@node Memory use, DNS, Compile and link options, Optimising the Server
+@c German node Speicherbenutzung
@subsection Wie MySQL Speicher benutzt
@cindex Speicherbenutzung
@@ -28939,14 +28686,14 @@ für die Speicherbenutzung relevanten Servervariablen angegeben.
@item
Der Schlüssel-Puffer (Variable @code{key_buffer_size}) wird von allen
Threads geteilt. Andere Puffer, die vom Server benutzt werden, werden bei
-Bedarf zugewiesen. @xref{Serverparameter}.
+Bedarf zugewiesen. @xref\{Server parameters}.
@item
Jede Verbindung benutzt etwas Thread-spezifischen Platz: Einen Stack
(Vorgabe 64 KB, Variable @code{thread_stack}), einen Verbindungspuffer
(Variable @code{net_buffer_length}) und a Ergebnispuffer (Variable
@code{net_buffer_length}). Die Verbindungspuffer und Ergebnispuffer werden
-bei Bedarf dynamisch bis zu @code{max_allowed_packet} vergrössert. Wenn
+bei Bedarf dynamisch bis zu @code{max_allowed_packet} vergrößert. Wenn
eine Anfrage läuft, wird auch eine Kopie der aktuellen Anfragezeichenkette
zugewiesen.
@@ -28955,8 +28702,8 @@ Alle Threads teilen sich denselben grundlegenden Speicher.
@item
Nur die komprimierten ISAM- / MyISAM-Tabellen werden Speicher-gemappt. Das
-liegt daran, dass der 32-Bit-Adressraum von 4 GB für die meisten grossen
-Tabellen nicht gross genug ist. Wenn Systeme mit 64-Bit-Adressraum
+liegt daran, dass der 32-Bit-Adressraum von 4 GB für die meisten großen
+Tabellen nicht Groß genug ist. Wenn Systeme mit 64-Bit-Adressraum
gebräuchlicher werden, werden wir vielleicht eine allgemeine Unterstützung
für Speicher-Mapping hinzufügen.
@@ -28973,20 +28720,20 @@ Suchvorgänge auf Festplatte zu vermeiden. (Variable @code{record_rnd_buffer}).
Alle Joins werden in einem Durchgang durchgeführt und die meisten Joins
können sogar ohne Benutzung einer temporären Tabelle durchgeführt werden.
Die meisten temporären Tabellen sind Speicher-basierende (HEAP-) Tabellen.
-Temporäre Tabellen mit grosser Datensatzlänge (berechnet als Summe aller
+Temporäre Tabellen mit großer Datensatzlänge (berechnet als Summe aller
Spaltenlängen) oder die @code{BLOB}-Spalten enthalten, werden auf
Festplatte gespeichert.
Ein Problem in MySQL-Versionen vor Version 3.23.2 ist, dass Sie den Fehler
-@code{The table tabelle is full} erhalten, wenn die Grösse der HEAP-Tabelle
+@code{The table tabelle is full} erhalten, wenn die Größe der HEAP-Tabelle
@code{tmp_table_size} überschreitet. In neueren Versionen wird dies so
gehandhabt, dass die Speicher-basierende (HEAP-) Tabelle bei Bedarf
automatisch in eine Festplatten-basierende Tabelle (MyISAM) umgewandelt
-wird. Um das Problem zu umgehen, können Sie die Grösse von temporären
+wird. Um das Problem zu umgehen, können Sie die Größe von temporären
Tabellen durch Setzen der @code{tmp_table_size}-Option für @code{mysqld}
ändern, oder durch Setzen der SQL-Option @code{SQL_BIG_TABLES} im
Client-Programm. @xref{SET OPTION, , @code{SET OPTION}}. In MySQL-Version
-3.20 war die maximale Grösse der temporären Tabelle
+3.20 war die maximale Größe der temporären Tabelle
@code{record_buffer*16}. Wenn Sie also diese Version benutzen, müssen Sie
den Wert von @code{record_buffer} herauf setzen. Sie können @code{mysqld}
auch mit der @code{--big-tables}-Option starten, um temporäre Tabellen
@@ -28995,8 +28742,8 @@ vieler komplizierter Anfragen beeinflussen.
@item
Den meisten Sortier-Anfragen werden ein Sortierpuffer und 0 bis 2 temporäre
-Dateien zugewiesen, abhängig von der Grösse der Ergebnismenge.
-@xref{Temporäre Dateien}.
+Dateien zugewiesen, abhängig von der Größe der Ergebnismenge.
+@xref\{Temporary files}.
@item
Fast alles Parsen und Berechnen wird in einem lokalen Speicherbereich
@@ -29009,7 +28756,7 @@ mit @code{malloc()} und @code{free()} gemacht).
Jede Index-Datei wird einmal geöffnet. Die Daten-Datei wird einmal für
jeden gleichzeitig laufenden Thread geöffnet. Für jeden gleichzeitigen
Thread wird eine Tabellenstruktur, Spaltenstrukturen für jede Spalte und
-ein Puffer der Grösse @code{3 * n} zugewiesen, wobei @code{n} die maximale
+ein Puffer der Größe @code{3 * n} zugewiesen, wobei @code{n} die maximale
Zeilenlänge ist (@code{BLOB}-Spalten werden nicht mitgerechnet). Eine
@code{BLOB}-Spalte benutzt 5 bis 8 Bytes plus die Länge der
@code{BLOB}-Daten. Der @code{ISAM}- / @code{MyISAM}-Tabellen-Handler
@@ -29017,8 +28764,8 @@ benutzt einen zusätzlichen Zeilenpuffer für internen Gebrauch.
@item
Bei jeder Tabelle, die @code{BLOB}-Spalten enthält, wird ein Puffer
-dynamisch vergrössert, um grössere @code{BLOB}-Werte einzulesen. Wenn Sie
-eine Tabelle scannen, wird ein Puffer so gross wie der grösste
+dynamisch vergrößert, um größere @code{BLOB}-Werte einzulesen. Wenn Sie
+eine Tabelle scannen, wird ein Puffer so Groß wie der größte
@code{BLOB}-Wert zugewiesen.
@item
@@ -29026,12 +28773,12 @@ Tabellen-Handler für alle Tabellen in Benutzung werden in einem Cache
gespeichert und als FIFO verwaltet. Normalerweise hat der Cache 64
Einträge. Wenn eine Tabelle gleichzeitig von zwei laufenden Threads
benutzt wurde, enthält der Cache zwei Einträge für die Tabelle.
-@xref{Tabellen-Cache}.
+@xref\{Open tables}.
@item
-Ein @code{mysqladmin flush-tables}-Befehl schliesst alle Tabellen, die
+Ein @code{mysqladmin flush-tables}-Befehl schließt alle Tabellen, die
nicht in Benutzung sind, und kennzeichnet alle Tabellen in Benutzung als zu
-schliessen, sobald der aktuell ausführende Thread fertig ist. Das setzt
+schließen, sobald der aktuell ausführende Thread fertig ist. Das setzt
effektiv den meisten benutzten Speicher frei.
@end itemize
@@ -29045,7 +28792,8 @@ kommerziellen Memory-Leak-Detektoren getestet, daher sollte es keine
Memory-Leaks geben.
-@node DNS, SET OPTION, Speicherbenutzung, Optimierung des Servers
+@node DNS, SET OPTION, Memory use, Optimising the Server
+@c German node DNS
@subsection Wie MySQL DNS benutzt
@cindex DNS
@@ -29082,7 +28830,8 @@ Wenn Sie keine Verbindungen über @code{TCP/IP} zulassen wollen, starten Sie
@code{mysqld} mit @code{--skip-networking}.
-@node SET OPTION, , DNS, Optimierung des Servers
+@node SET OPTION, , DNS, Optimising the Server
+@c German node SET OPTION
@subsection @code{SET}-Syntax
@findex SET OPTION
@@ -29102,7 +28851,7 @@ Das mappt alle Zeichenketten von und zum Client auf das angegebene Mapping.
Momentan ist die einzige Option für @code{zeichensatz_name}
@code{cp1251_koi8}, aber Sie können leicht neue Mappings hinzufügen, indem
Sie die @file{sql/convert.cc}-Datei in der MySQL-Quelldistribution
-editieren. Das vorgabemässige Mapping kann durch Setzen des
+editieren. Das vorgabemäßige Mapping kann durch Setzen des
@code{zeichensatz_name}-Werts auf @code{DEFAULT} wieder hergestellt
werden.
@@ -29154,18 +28903,18 @@ Transaktionen durchführt.
@cindex table is full
Falls auf @code{1} gesetzt, werden alle temporären Tabellen auf Platte
statt im Arbeitsspeicher gespeichert. Das ist etwas langsamer, aber Sie
-erhalten nicht den Fehler @code{The table tabelle is full}, wenn Sie grosse
-@code{SELECT}-Operationen ausführen, die eine grosse temporäre Tabelle
+erhalten nicht den Fehler @code{The table tabelle is full}, wenn Sie große
+@code{SELECT}-Operationen ausführen, die eine große temporäre Tabelle
erfordern. Der Vorgabewert für eine neue Verbindung ist @code{0} (das
-heisst, temporäre Tabellen im Arbeitsspeicher benutzen).
+heißt, temporäre Tabellen im Arbeitsspeicher benutzen).
@item SQL_BIG_SELECTS = 0 | 1
Falls auf @code{0} gesetzt, bricht MySQL ab, wenn ein @code{SELECT} versucht
wird, das wahrscheinlich sehr lange dauern wird. Das ist nützlich, wenn ein
-unratsames @code{WHERE}-Statement abgesetzt wurde. Ein grosse Anfrage ist
+unratsames @code{WHERE}-Statement abgesetzt wurde. Ein große Anfrage ist
definiert als ein @code{SELECT}, das wahrscheinlich mehr als
@code{max_join_size} Zeilen untersuchen muss. Der Vorgabewert für eine neue
-Verbindung ist @code{1} (was alle @code{SELECT}-Statements zulässt).
+Verbindung ist @code{1} (was alle @code{SELECT}-Statements zuläßt).
@item SQL_BUFFER_RESULT = 0 | 1
@code{SQL_BUFFER_RESULT} erzwingt, dass das Ergebnis von @code{SELECT}'s in
@@ -29218,7 +28967,7 @@ Update-Log-Datei durchgeführt, wenn der Client die
@item SQL_QUOTE_SHOW_CREATE = 0 | 1
Falls auf @code{1} gesetzt, setzt @code{SHOW CREATE TABLE} Tabellen- und
-Spaltennamen in Anführungszeichen. Das ist vorgabemässig
+Spaltennamen in Anführungszeichen. Das ist vorgabemäßig
@strong{angeschaltet}, damit Replikation von Tabellen mit merkwürdigen
Spaltennamen funktioniert. @ref{SHOW CREATE TABLE, , @code{SHOW CREATE TABLE}}.
@@ -29240,14 +28989,12 @@ wird. Das wird hauptsächlich zusammen mit der Update-Log-Datei benutzt.
@end table
-@menu
-* SET TRANSACTION:: @code{SET TRANSACTION}-Syntax
-@end menu
-@node Festplatte, , Optimierung des Servers, MySQL-Optimierung
+@node Disk issues, , Optimising the Server, MySQL Optimisation
+@c German node Festplatte
@section Festplatte, Anmerkungen
@cindex Festplatten, Anmerkungen
@@ -29255,10 +29002,10 @@ wird. Das wird hauptsächlich zusammen mit der Update-Log-Datei benutzt.
@itemize @bullet
@item
-Wie bereits erwähnt sind Suchvorgänge auf der Festplatte ein grosser
+Wie bereits erwähnt sind Suchvorgänge auf der Festplatte ein großer
Performance-Flaschenhals. Die Probleme werden mehr und mehr deutlich, wenn
die Datenmenge wächst, so dass effizientes Caching unmöglich wird. Bei
-grossen Datenbanken, in denen Sie auf Daten mehr oder weniger zufällig
+großen Datenbanken, in denen Sie auf Daten mehr oder weniger zufällig
zugreifen, können Sie sicher davon ausgehen, dass Sie zumindest eine
Plattenzugriff brauchen, um zu lesen, und eine Reihe weiterer
Plattenzugriffe, um Dinge zu schreiben. Um dieses Problem zu minimieren,
@@ -29275,23 +29022,23 @@ Das bedeutet, dass Sie die Index- und / oder Daten-Datei(en) aus dem
normalen Daten-Verzeichnis auf eine andere Festplatte verknüpfen (die auch
'gestriped' sein kann). Das macht sowohl den Suchvorgang als auch die
Lesezeiten besser (wenn die Platten nicht für andere Dinge benutzt werden).
-@xref{Symbolische Links}.
+@xref\{Symbolic links}.
@cindex Stripen, Definition
@item Stripen
-'Stripen' heisst, dass Sie viele Festplatten haben und den ersten Block
+'Stripen' heißt, dass Sie viele Festplatten haben und den ersten Block
auf die erste Platte legen, den zweiten Block auf die zweite Platte und den
n-ten Block auf die n-te Platte usw. Das bedeutet, wenn Ihre normale
-Datengrösse weniger als die Stripe-Grösse ist (oder perfekt passt), dass
+Datengröße weniger als die Stripe-Größe ist (oder perfekt passt), dass
Sie wesentlich bessere Performance erhalten. Beachten Sie, dass Stripen
-sehr stark vom Betriebssystem und von der Stripe-Grösse abhängig ist.
+sehr stark vom Betriebssystem und von der Stripe-Größe abhängig ist.
Machen Sie Benchmark-Tests Ihrer Applikation mit unterschiedlichen
-Stripe-Grössen. @xref{Benutzerspezifische Benchmarks}.
+Stripe-Größen. @xref\{Custom Benchmarks}.
Beachten Sie, dass der Geschwindigkeitsunterschied für das Stripen
@strong{sehr} stark vom Parameter abhängig ist. Abhängig davon, wie Sie den
Stripe-Parameter setzen und von der Anzahl von Festplatten erhalten Sie
-Unterschiede in der Grössenordnung von Faktoren. Beachten Sie, dass Sie
+Unterschiede in der Größenordnung von Faktoren. Beachten Sie, dass Sie
entscheiden müssen, ob Sie für zufällige oder sequentielle Zugriffe
optimieren.
@end table
@@ -29343,7 +29090,7 @@ Auf vielen Betriebssystemen können Sie die Platten mit dem 'async'-Flag
mounten, um das Dateisystem auf asynchrone Aktualisierung zu setzen. Wenn
Ihr Computer ausreichend stabil ist, sollte Ihnen das mehr Performance
geben, ohne zu viel Zuverlässigkeit zu opfern. (Dieser Flag ist unter Linux
-vorgabemässig angeschaltet.)
+vorgabemäßig angeschaltet.)
@item
Wenn Sie nicht wissen müssen, wann auf eine Datei zuletzt zugegriffen
@@ -29351,12 +29098,14 @@ wurden (was auf einem Datenbank-Server nicht wirklich nötig ist), können
Sie Ihr Dateisystem mit dem noatime-Flag mounten.
@end itemize
+
+
@menu
-* Symbolische Links:: Symbolische Links benutzen
+* Symbolic links::
@end menu
-
-@node Symbolische Links, , Festplatte, Festplatte
+@node Symbolic links, , Disk issues, Disk issues
+@c German node Symbolische Links
@subsection Symbolische Links benutzen
@cindex Symbolische Links
@@ -29374,13 +29123,15 @@ Platten per SymLink zu verknüpfen, und das bei Tabellen nur im Notfall zu
tun.
@cindex Datenbanken, Symbolische Links
+
+
@menu
-* Symbolische Links auf Datenbanken:: Benutzung symbolischer Links für Datenbanken
-* Symbolische Links auf Tabellen:: Benutzung symbolischer Links für Tabellen
+* Symbolic links to databases::
+* Symbolic links to tables::
@end menu
-
-@node Symbolische Links auf Datenbanken, Symbolische Links auf Tabellen, Symbolische Links, Symbolische Links
+@node Symbolic links to databases, Symbolic links to tables, Symbolic links, Symbolic links
+@c German node Symbolische Links auf Datenbanken
@subsubsection Benutzung symbolischer Links für Datenbanken
Um eine Datenbank per SymLink zu verknüpfen, legt man zuerst ein
@@ -29425,10 +29176,11 @@ if (1)
Unter Windows können Sie interne symbolische Links auf Verzeichnisse
benutzen, indem Sie MySQL mit @code{-DUSE_SYMDIR} kompilieren. Das erlaubt
Ihnen, verschiedene Datenbanken auf verschiedene Platte zu legen.
-@xref{Symbolische Links auf Windows}.
+@xref\{Windows symbolic links}.
-@node Symbolische Links auf Tabellen, , Symbolische Links auf Datenbanken, Symbolische Links
+@node Symbolic links to tables, , Symbolic links to databases, Symbolic links
+@c German node Symbolische Links auf Tabellen
@subsubsection Benutzung symbolischer Links für Tabellen
@cindex Datenbanken, Symbolische Links
@@ -29496,7 +29248,7 @@ auf die sie zeigen, werden gelöscht.
@item
Wenn Sie keine Symlinks benutzen, sollten Sie die
@code{--skip-symlink}-Option für @code{mysqld} benutzen, damit niemand eine
-Datei ausserhabl des @code{mysqld} Daten-Verzeichnisses löschen oder
+Datei ausserhalb des @code{mysqld} Daten-Verzeichnisses löschen oder
umbenennen kann.
@end itemize
@@ -29515,20 +29267,10 @@ Dinge, die noch nicht unterstützt werden:
@end itemize
-@node Referenz, Tabellentypen, MySQL-Optimierung, Top
+@node Reference, Table types, MySQL Optimisation, Top
+@c German node Referenz
@chapter MySQL-Sprachreferenz
-@menu
-* Sprachstruktur:: Sprachstruktur
-* Spaltentypen:: Spaltentypen
-* Funktionen:: Funktionen
-* Datenmanipulation:: Datenmanipulation: @code{SELECT}, @code{INSERT}, @code{UPDATE}, @code{DELETE}
-* Datendefinition:: Datendefinition: @code{CREATE}, @code{DROP}, @code{ALTER}
-* Grundlegende Benutzerbefehle:: Grundlegende Befehle des MySQL-Dienstprogramms für Benutzer
-* Transaktionale Befehle:: Transaktionale und Sperrbefehle von MySQL
-* HANDLER::
-* Volltextsuche:: MySQL-Volltextsuche
-@end menu
MySQL hat eine sehr komplexe, aber intuitive und leicht zu erlernende
SQL-Schnittstelle. Dieses Kapitel beschreibt die verschiedenen Befehle,
@@ -29538,20 +29280,35 @@ gesamte in MySQL beinhaltete Funktionalität. Um dieses Kapitel effektiv zu
nutzen, sollten Sie unter den verschiedenen Stichworten nachschlagen.
-@node Sprachstruktur, Spaltentypen, Referenz, Referenz
+@menu
+* Language Structure::
+* Column types::
+* Functions::
+* Data Manipulation::
+* Data Definition::
+* Basic User Commands::
+* Transactional Commands::
+* Fulltext Search::
+* Query Cache::
+@end menu
+
+@node Language Structure, Column types, Reference, Reference
+@c German node Sprachstruktur
@section Sprachstruktur
+
+
@menu
-* Literale:: Literale: Wie Zeichenketten und Zahlen geschrieben werden
-* Erlaubte Namen:: Datenbank-, Tabellen-, Index-, Spalten- und Alias-Namen
-* Gross-/Kleinschreibung in Namen:: Gross-/Kleinschreibung in Namen
-* Variablen:: Benutzer-Variablen
-* Kommentare:: Kommentar-Syntax
-* Reservierte Wörter:: Ist MySQL pingelig hinsichtlich reservierter Wörter?
+* Literals::
+* Legal names::
+* Name case sensitivity::
+* Variables::
+* Comments::
+* Reserved words::
@end menu
-
-@node Literale, Erlaubte Namen, Sprachstruktur, Sprachstruktur
+@node Literals, Legal names, Language Structure, Language Structure
+@c German node Literale
@subsection Literale: Wie Zeichenketten und Zahlen geschrieben werden
@cindex Zeichenketten, Definition
@@ -29560,12 +29317,6 @@ nutzen, sollten Sie unter den verschiedenen Stichworten nachschlagen.
@cindex Fluchtzeichen (Escape-Zeichen)
@cindex Backslash, Fluchtzeichen (Escape-Zeichen)
-@menu
-* Zeichenketten-Syntax:: Zeichenketten
-* Zahlen-Syntax:: Zahlen
-* Hexadezimale Werte:: Hexadezimale Werte
-* NULL-Werte:: @code{NULL}-Werte
-@end menu
Dieser Abschnitt beschreibt die verschiedenen Arten, in MySQL Zeichenketten
@@ -29574,7 +29325,15 @@ und Fallstricke, in denen man sich bei den grundlegenden Datentypen von
MySQL verfangen kann.
-@node Zeichenketten-Syntax, Zahlen-Syntax, Literale, Literale
+@menu
+* String syntax::
+* Number syntax::
+* Hexadecimal values::
+* NULL values::
+@end menu
+
+@node String syntax, Number syntax, Literals, Literals
+@c German node Zeichenketten-Syntax
@subsubsection Zeichenketten
Eine Zeichenkette ist eine Folge von Zeichen, die entweder von Apostrophs
@@ -29649,7 +29408,7 @@ Ein Backslash- (@samp{\}) Zeichen.
Ein @samp{%}-Zeichen. Dieses wird benutzt, um nach literalen Instanzen von
@samp{%} in Zusammenhängen zu suchen, wo @samp{%} ansonsten als
Platzhalterzeichen interpretiert werden würde.
-@xref{Zeichenketten-Vergleichsfunktionen}.
+@xref\{String comparison functions}.
@findex _ (Platzhalterzeichen)
@findex Wild card character (_)
@@ -29657,7 +29416,7 @@ Platzhalterzeichen interpretiert werden würde.
Ein @samp{_}-Zeichen. Dieses wird benutzt, um nach literalen Instanzen von
@samp{_} in Zusammenhängen zu suchen, wo @samp{_} ansonsten als
Platzhalterzeichen interpretiert werden würde.
-@xref{Zeichenketten-Vergleichsfunktionen}.
+@xref\{String comparison functions}.
@end table
Beachten Sie, dass bei der Benutzung von @samp{\%} oder @samp{\_} in
@@ -29671,7 +29430,7 @@ Zeichenkette zu schreiben:
@itemize @bullet
@item
-Ein @samp{'} innerhalb einee Zeichenkette, die mit @samp{'} begrenzt wird,
+Ein @samp{'} innerhalb einer Zeichenkette, die mit @samp{'} begrenzt wird,
kann als @samp{''} geschrieben werden.
@item
@@ -29734,25 +29493,26 @@ ASCII 34, Anführungszeichen. Das geben Sie als @samp{\"} ein.
@findex DBI->quote
Wenn Sie C-Code schreiben, können Sie die C-API-Funktion
@code{mysql_escape_string()} für Fluchtzeichen (Escape-Zeichen) für das
-@code{INSERT}-Statement benutzen. @xref{C-API-Funktionsüberblick}. In Perl
+@code{INSERT}-Statement benutzen. @xref\{C API function overview}. In Perl
können Sie die @code{quote}-Methode des @code{DBI}-Pakets benutzen, um
Sonderzeichen in die korrekten Flucht-Folgen umzuwandeln.
-@xref{Perl-DBI-Klasse, , Perl-@code{DBI}-Klasse}.
+@xref\{Perl DBI Class, , Perl-@code{DBI}-Klasse}.
Sie sollten auf jede Zeichenkette, die eins der oben erwähnten
Sonderzeichen enthalten könnte, eine der Flucht-Funktionen anwenden!
-@node Zahlen-Syntax, Hexadezimale Werte, Zeichenketten-Syntax, Literale
+@node Number syntax, Hexadecimal values, String syntax, Literals
+@c German node Zahlen-Syntax
@subsubsection Zahlen
@cindex Zahlen
@cindex gültige Zahlen, Beispiele
@cindex Ganzzahlen
-@cindex Fliesskommazahlen
+@cindex Fließkommazahlen
@cindex negative Werte
-Ganzzahlen werden als Folge von Ziffern repräsentiert. Fliesskommazahlen
+Ganzzahlen werden als Folge von Ziffern repräsentiert. Fließkommazahlen
benutzen @samp{.} als Dezimalseparator. Jedem Zahlentyp kann @samp{-}
vorangestellt werden, um einen negativen Wert anzuzeigen.
@@ -29764,7 +29524,7 @@ Beispiele gültiger Ganzzahlen:
-32
@end example
-Beispiele gültiger Fliesskommazahlen:
+Beispiele gültiger Fließkommazahlen:
@example
294.42
@@ -29772,11 +29532,12 @@ Beispiele gültiger Fliesskommazahlen:
148.00
@end example
-Eine Ganzzahl kann in einem Fliesskomma-Zusammenhang benutzt werden, sie
-wird dann als die äquivalente Fliesskommazahl interpretiert.
+Eine Ganzzahl kann in einem Fließkomma-Zusammenhang benutzt werden, sie
+wird dann als die äquivalente Fließkommazahl interpretiert.
-@node Hexadezimale Werte, NULL-Werte, Zahlen-Syntax, Literale
+@node Hexadecimal values, NULL values, Number syntax, Literals
+@c German node Hexadezimale Werte
@subsubsection Hexadezimale Werte
@tindex hexadezimale Werte
@@ -29800,21 +29561,23 @@ ANSI-SQL. Die 0x-Syntax basiert auf ODBC. Hexadezimale Zeichenketten werden
oft von ODBC benutzt, um Werte für BLOB-Spalten anzugeben.
-@node NULL-Werte, , Hexadezimale Werte, Literale
+@node NULL values, , Hexadecimal values, Literals
+@c German node NULL-Werte
@subsubsection @code{NULL}-Werte
@tindex NULL-Wert
Der @code{NULL}-Wert bedeutet ``keine Daten'' und unterscheidet sich von
Werten wie @code{0} bei numerischen Typen oder der leeren Zeichenkette bei
-Zeichenkettentypen. @xref{Probleme mit NULL, , Probleme mit @code{NULL}}.
+Zeichenkettentypen. @xref\{Problems with NULL, , Probleme mit @code{NULL}}.
@code{NULL} kann durch @code{\N} repräsentiert werden, wenn Sie die
Textdatei-Import- oder Exportformate (@code{LOAD DATA INFILE}, @code{SELECT
... INTO OUTFILE}) benutzen. @xref{LOAD DATA, , @code{LOAD DATA}}.
-@node Erlaubte Namen, Gross-/Kleinschreibung in Namen, Literale, Sprachstruktur
+@node Legal names, Name case sensitivity, Literals, Language Structure
+@c German node Erlaubte Namen
@subsection Datenbank-, Tabellen-, Index-, Spalten- und Alias-Namen
@cindex Namen
@@ -29825,9 +29588,6 @@ Textdatei-Import- oder Exportformate (@code{LOAD DATA INFILE}, @code{SELECT
@cindex Spalten, Namen
@cindex Aliase, Namen
-@menu
-* Gross-/Kleinschreibung in Namen:: Gross-/Kleinschreibung in Namen
-@end menu
Datenbank-, Tabellen-, Index-, Spalten- und Alias-Namen folgen in MySQL
@@ -29840,7 +29600,7 @@ alle denselben Regeln.
Beachten Sie, dass sich die Regeln ab MySQL-Version 3.23.6 geändert haben,
als das Quoten von Bezeichnern (für Datenbank-, Tabellen- und Spaltennamen)
eingeführt wurde, mit @samp{`}. @samp{"} funktioniert ebenfalls, um
-Bezeichner zu quoten, wenn Sie im ANSI-Modus fahren. @xref{ANSI-Modus}.
+Bezeichner zu quoten, wenn Sie im ANSI-Modus fahren. @xref\{ANSI mode}.
@multitable @columnfractions .15 .15 .70
@item @strong{Bezeichner} @tab @strong{Maximale Länge} @tab @strong{Erlaubte Zeichen}
@@ -29867,9 +29627,9 @@ In vorherigen Versionen von MySQL sind die Namensregeln wie folgt:
@item
Ein Name muss aus alphanumerischen Zeichen des aktuellen Zeichensatzes
bestehen und darf darüber hinaus @samp{_} und @samp{$} enthalten. Der
-vorgabemässige Zeichensatz ist ISO-8859-1 Latin1; dass kann durch die
+vorgabemäßige Zeichensatz ist ISO-8859-1 Latin1; dass kann durch die
@code{--default-character-set}-Option für @code{mysqld} geändert werden.
-@xref{Zeichensätze}.
+@xref\{Character sets}.
@item
Ein Name kann mit jedem Zeichen anfangen, das in einem Namen erlaubt ist.
@@ -29925,25 +29685,26 @@ akzeptiert, weil einige ODBC-Programme Tabellenname ein @samp{.}-Zeichen
voranstellen.
-@node Gross-/Kleinschreibung in Namen, Variablen, Erlaubte Namen, Sprachstruktur
-@subsection Gross-/Kleinschreibung in Namen
+@node Name case sensitivity, Variables, Legal names, Language Structure
+@c German node Groß-/Kleinschreibung in Namen
+@subsection Groß-/Kleinschreibung in Namen
-@cindex Namen, Gross-/Kleinschreibung
-@cindex Gross-/Kleinschreibung, in Namen
-@cindex Datenbanknamen, Gross-/Kleinschreibung
-@cindex Tabellennamen, Gross-/Kleinschreibung
-@cindex Spaltennamen, Gross-/Kleinschreibung
-@cindex Aliasnamen, Gross-/Kleinschreibung
+@cindex Namen, Groß-/Kleinschreibung
+@cindex Groß-/Kleinschreibung, in Namen
+@cindex Datenbanknamen, Groß-/Kleinschreibung
+@cindex Tabellennamen, Groß-/Kleinschreibung
+@cindex Spaltennamen, Groß-/Kleinschreibung
+@cindex Aliasnamen, Groß-/Kleinschreibung
In MySQL entsprechen Datenbanken und Tabellen Verzeichnissen und Dateien
-innerhalb dieser Verzeichnisse. Folglich hängt die Gross-/Kleinschreibung
+innerhalb dieser Verzeichnisse. Folglich hängt die Groß-/Kleinschreibung
davon ab, wie das zugrunde liegende Betriebssystem die
-Gross-/Kleinschreibung von Datenbank- und Tabellennamen festlegt. Das
+Groß-/Kleinschreibung von Datenbank- und Tabellennamen festlegt. Das
bedeutet, dass Datenbank- und Tabellennamen unter Unix von der
-Gross-/Kleinschreibung abhängen und unter Windows nicht.
-@xref{Erweiterungen zu ANSI}.
+Groß-/Kleinschreibung abhängen und unter Windows nicht.
+@xref\{Extensions to ANSI}.
-@strong{HINWEIS:} Obwohl die Gross-/Kleinschreibung für Datenbank- und
+@strong{HINWEIS:} Obwohl die Groß-/Kleinschreibung für Datenbank- und
Tabellennamen unter Windows keine Rolle spielt, sollten Sie nicht auf eine
angegebene Datenbank oder Tabelle innerhalb derselben Anfrage mit
unterschiedlicher Schreibweise verweisen. Folgende Anfrage würde nicht
@@ -29955,9 +29716,9 @@ mysql> SELECT * FROM meine_tabelle WHERE MEINE_TABELLE.spalte=1;
@end example
Spaltennamen hängen in keinem Fall von der verwendeten
-Gross-/Kleinschreibung ab.
+Groß-/Kleinschreibung ab.
-Aliase auf Tabellen hängen von der Gross-/Kleinschreibung ab. Folgende
+Aliase auf Tabellen hängen von der Groß-/Kleinschreibung ab. Folgende
Anfrage würde nicht funktionieren, weil sie auf den Alias sowohl mit
@code{a} als auch mit @code{A} verweist:
@@ -29966,7 +29727,7 @@ mysql> SELECT spalten_name FROM tabelle AS a
WHERE a.spalten_name = 1 OR A.spalten_name = 2;
@end example
-Aliase auf Spalten hängen nicht von der verwendeten Gross-/Kleinschreibung
+Aliase auf Spalten hängen nicht von der verwendeten Groß-/Kleinschreibung
ab.
Wenn Sie Probleme damit haben, sich an die Schreibweise von Tabellennamen zu
@@ -29975,7 +29736,7 @@ Beispiel bei der Erzeugung von Datenbanken und Tabellen Kleinschreibung in
Namen.
Eine Möglichkeit, dieses Problem zu vermeiden, ist, @code{mysqld} mit
-@code{-O lower_case_tabelles=1} zu starten. Vorgabemässig ist diese Option
+@code{-O lower_case_tabelles=1} zu starten. Vorgabemäßig ist diese Option
1 unter Windows und 0 unter Unix.
Wenn @code{lower_case_tabelles} 1 ist, wandelt MySQL alle Tabellennamen in
@@ -29985,7 +29746,8 @@ Tabellennamen in Kleinschreibung umwandeln müssen, bevor Sie @code{mysqld}
starten.
-@node Variablen, Kommentare, Gross-/Kleinschreibung in Namen, Sprachstruktur
+@node Variables, Comments, Name case sensitivity, Language Structure
+@c German node Variablen
@subsection Benutzer-Variablen
@cindex Variablen, Benutzer-
@@ -29995,11 +29757,11 @@ starten.
MySQL unterstützt Thread-spezifische Variablen mit der
@code{@@variablename}-Syntax. Eine Variable kann aus alphanumerischen
Zeichen des aktuellen Zeichensatzes sowie aus @samp{_}, @samp{$} und
-@samp{.} bestehen. Der vorgabemässige Zeichensatz ist ISO-8859-1 Latin1;
+@samp{.} bestehen. Der vorgabemäßige Zeichensatz ist ISO-8859-1 Latin1;
das kann mit der @code{--default-character-set}-Option für @code{mysqld}
-geändert werden. @xref{Zeichensätze}.
+geändert werden. @xref\{Character sets}.
-Variablen müssen nicht initialisiert werden. Sie enthalten vorgabemässig
+Variablen müssen nicht initialisiert werden. Sie enthalten vorgabemäßig
@code{NULL} und können Ganzzahl-, Real- oder Zeichenketten-Werte speichern.
Alle Variablen für einen Thread werden automatisch freigegeben, wenn der
Thread beendet wird.
@@ -30026,17 +29788,17 @@ select @@t1:=(@@t2:=1)+@@t3:=4,@@t1,@@t2,@@t3;
Vergleiche reserviert ist.)
Benutzer-Variablen können benutzt werden, wo Ausdrücke erlaubt sind.
-Beachten Sie, dass das momentan keine Zusammenhänge einschliesst, in denen
+Beachten Sie, dass das momentan keine Zusammenhänge einschließt, in denen
explizit Zahlen erforderlich sind, wie in der @code{LIMIT}-Klausel eines
@code{SELECT}-Statements oder der @code{IGNORE Anzahl LINES}-Klausel eines
@code{LOAD DATA}-Statements.
@strong{HINWEIS:} In einem @code{SELECT}-Statement wird jeder Ausdruck
-erst dann ausgewertet, wenn er an den Client geschickt wird. Das heisst,
+erst dann ausgewertet, wenn er an den Client geschickt wird. Das heißt,
dass Sie in der @code{HAVING}-, @code{GROUP BY}- oder @code{ORDER
BY}-Klausel nicht auf einen Ausdruck verweisen können, der Variablen
beinhaltet, die nicht im @code{SELECT}-Teil gesetzt wurden. Folgendes
-Statement zum Beispiel funktioniert erwartungsgemäss NICHT:
+Statement zum Beispiel funktioniert erwartungsgemäß NICHT:
@example
SELECT (@@aa:=id) AS a, (@@aa+3) AS b FROM tabelle HAVING b=5;
@@ -30046,12 +29808,9 @@ Der Grund ist, dass @code{@@aa} nicht den Wert der aktuellen Zeile enthält,
sondern den Wert von @code{id} der vorher akzeptierten Zeile.
-@menu
-* Kommentare:: Kommentar-Syntax
-* Reservierte Wörter:: Ist MySQL pingelig hinsichtlich reservierter Wörter?
-@end menu
-@node Kommentare, Reservierte Wörter, Variablen, Sprachstruktur
+@node Comments, Reserved words, Variables, Language Structure
+@c German node Kommentare
@subsection Kommentar-Syntax
@findex Kommentar-Syntax
@@ -30103,10 +29862,11 @@ ausführen und wenn Sie Befehle in eine Datei schreiben und @code{mysql} mit
lesen.
MySQL unterstützt nicht den ANSI-SQL-Kommentarstil @samp{--} ohne
-nachfolgendes Leerzeichen. @xref{Fehlende Kommentare}.
+nachfolgendes Leerzeichen. @xref\{ANSI diff comments}.
-@node Reservierte Wörter, , Kommentare, Sprachstruktur
+@node Reserved words, , Comments, Language Structure
+@c German node Reservierte Wörter
@subsection Ist MySQL pingelig hinsichtlich reservierter Wörter?
@cindex Schlüsselwörter
@@ -30220,7 +29980,8 @@ Benutzung haben.
@end itemize
-@node Spaltentypen, Funktionen, Sprachstruktur, Referenz
+@node Column types, Functions, Language Structure, Reference
+@c German node Spaltentypen
@section Spaltentypen
@cindex Spalten, Typen
@@ -30239,20 +30000,20 @@ Die von MySQL unterstützten Spaltentypen sind unten aufgeführt. Folgende
Code-Buchstaben werden in der Beschreibung benutzt:
@cindex Anzeigebreite
-@cindex Grösse, Anzeigebreite
+@cindex Größe, Anzeigebreite
@cindex Ziffern
@cindex Dezimalpunkt
@cindex Klammern, eckige
@cindex eckige Klammern
@table @code
@item M
-Gibt die maximale Anzeigebreite an. Die grösste erlaubte Anzeigebreite ist
+Gibt die maximale Anzeigebreite an. Die größte erlaubte Anzeigebreite ist
255.
@item D
-Trifft auf Fliesskomma-Typen zu und bezeichnet die Anzahl von Ziffern nach
-dem Dezimalpunkt. Der grösste mögliche Wert ist 30, aber er sollte nicht
-grösser sein als @code{M}-2.
+Trifft auf Fließkomma-Typen zu und bezeichnet die Anzahl von Ziffern nach
+dem Dezimalpunkt. Der größte mögliche Wert ist 30, aber er sollte nicht
+größer sein als @code{M}-2.
@end table
Eckige Klammern (@samp{[} und @samp{]}) geben Teile der Typ-Festlegung an,
@@ -30282,14 +30043,14 @@ Eine kleine Ganzzahl. Der vorzeichenbehaftete Bereich ist @code{-32768} bis
@tindex MEDIUMINT
@item MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL]
-A Ganzzahl mittlerer Grösse. Der vorzeichenbehaftete Bereich ist
+A Ganzzahl mittlerer Größe. Der vorzeichenbehaftete Bereich ist
@code{-8388608} bis @code{8388607}. Der vorzeichenlose Bereich ist @code{0}
bis @code{16777215}.
@tindex INT
@item INT[(M)] [UNSIGNED] [ZEROFILL]
-Eine Ganzzahl normaler Grösse. Der vorzeichenbehaftete Bereich ist
+Eine Ganzzahl normaler Größe. Der vorzeichenbehaftete Bereich ist
@code{-2147483648} bis @code{2147483647}. Der vorzeichenlose Bereich ist
@code{0} bis @code{4294967295}.
@@ -30301,7 +30062,7 @@ Ein Synonym für @code{INT}.
@tindex BIGINT
@item BIGINT[(M)] [UNSIGNED] [ZEROFILL]
-Eine grosse Ganzzahl. Der vorzeichenbehaftete Bereich ist
+Eine große Ganzzahl. Der vorzeichenbehaftete Bereich ist
@code{-9223372036854775808} bis @code{9223372036854775807}. Der
vorzeichenlose Bereich ist @code{0} bis @code{18446744073709551615}.
@@ -30312,7 +30073,7 @@ Einiger Dinge sollten Sie sich bei @code{BIGINT}-Spalten bewusst sein:
@cindex Rundungsfehler
Weil alle arithmetischen Berechnungen mit vorzeichenbehafteten
@code{BIGINT}- oder @code{DOUBLE}-Werten durchgeführt werden, sollten Sie
-keine vorzeichenlosen Ganzzahlen grösser als @code{9223372036854775807} (63
+keine vorzeichenlosen Ganzzahlen größer als @code{9223372036854775807} (63
Bits) benutzen, ausser bei Bit-Funktionen! Wenn Sie das doch tun, können
einige der letzten Ziffern im Ergebnis falsch sein, weil Rundungsfehler
beim Umwandeln von @code{BIGINT} in @code{DOUBLE} auftreten.
@@ -30320,11 +30081,11 @@ beim Umwandeln von @code{BIGINT} in @code{DOUBLE} auftreten.
MySQL 4.0 kann @code{BIGINT} in folgenden Fällen handhaben:
@itemize @bullet
@item
-Benutzen Sie Ganzzahlen, um grosse vorzeichenlose Wert in einer
+Benutzen Sie Ganzzahlen, um große vorzeichenlose Wert in einer
@code{BIGINT}-Spalte zu speichern.
@item
-Bei @code{MIN(grosse_ganzzahl_spalte)} und
-@code{MAX(grosse_ganzzahl_spalte)}.
+Bei @code{MIN(große_ganzzahl_spalte)} und
+@code{MAX(große_ganzzahl_spalte)}.
@item
Bei der Benutzung der Operatoren (@code{+}, @code{-}, @code{*} usw.), wenn
beide Operanden Ganzzahlen sind.
@@ -30337,31 +30098,31 @@ wird diese nicht zwischendurch als Double dargestellt.
@item
@samp{-}, @samp{+} und @samp{*} benutzen arithmetische
@code{BIGINT}-Berechnungen, wenn beide Argumente @code{INTEGER}-Werte sind!
-Das heisst, wenn Sie zwei Ganzzahlen multiplizieren (oder Ergebnisse von
+Das heißt, wenn Sie zwei Ganzzahlen multiplizieren (oder Ergebnisse von
Funktionen, die Ganzzahlen zurückgeben), erhalten Sie vielleicht
-unerwartete Ergebnisse, wenn das Ergebnis grösser als
+unerwartete Ergebnisse, wenn das Ergebnis größer als
@code{9223372036854775807} ist.
@end itemize
-@cindex Fliesskommazahl
+@cindex Fließkommazahl
@tindex FLOAT
@tindex FLOAT(genauigkeit)
@item FLOAT(genauigkeit) [ZEROFILL]
-Eine Fliesskommazahl. Kann nicht vorzeichenlos sein. @code{genauigkeit} ist
-@code{<=24} bei einer Fliesskommazahl einfacher Genauigkeit und zwischen 25
-und 53 bei einer Fliesskommazahl doppelter Genauigkeit. Diese Typen sind
+Eine Fließkommazahl. Kann nicht vorzeichenlos sein. @code{genauigkeit} ist
+@code{<=24} bei einer Fließkommazahl einfacher Genauigkeit und zwischen 25
+und 53 bei einer Fließkommazahl doppelter Genauigkeit. Diese Typen sind
wie die unten beschriebenen @code{FLOAT} und @code{DOUBLE}-Typen.
@code{FLOAT(X)} hat denselben Wertebereich wie die entsprechenden
@code{FLOAT}- und @code{DOUBLE}-Typen, jedoch ist die Anzeigebreite und die
Anzahl der Dezimalstellen undefiniert.
-In MySQL-Version 3.23 ist das ein echter Fliesskommawert. In früheren
+In MySQL-Version 3.23 ist das ein echter Fließkommawert. In früheren
MySQL-Versionen hat @code{FLOAT(genauigkeit)} immer 2 Dezimalstellen.
Beachten Sie, dass bei der Benutzung von @code{FLOAT} unerwartete Probleme
auftreten können, weil alle Berechnungen in MySQL mit doppelter Genauigkeit
-durchgeführt werden. @xref{Keine übereinstimmenden Zeilen}.
+durchgeführt werden. @xref\{No matching rows}.
@cindex ODBC-Kompatibilität
@cindex Kompatibilität, mit ODBC
@@ -30371,25 +30132,25 @@ Diese Syntax steht wegen der ODBC-Kompatibilität zur Verfügung.
@tindex FLOAT(M,D)
@item FLOAT[(M,D)] [ZEROFILL]
-Eine kleine Fliesskommazahl (einfacher Genauigkeit). Kann nicht
+Eine kleine Fließkommazahl (einfacher Genauigkeit). Kann nicht
vorzeichenlos sein. Der Wertebereich umfasst @code{@w{-3.402823466E+38}}
bis @code{@w{-1.175494351E-38}}, @code{0} und @code{@w{1.175494351E-38}}
bis @code{3.402823466E+38}. M ist die Anzeigebreite und D ist die Anzahl
von Dezimalstellen. @code{FLOAT} ohne Argument oder mit einem Argument <=
-24 steht für eine Fliesskommazahl einfacher Genauigkeit.
+24 steht für eine Fließkommazahl einfacher Genauigkeit.
@tindex DOUBLE
@tindex FLOAT(genauigkeit)
@item DOUBLE[(M,D)] [ZEROFILL]
-Eine normal grosse Fliesskommazahl (doppelter Genauigkeit). Kann nicht
+Eine normal große Fließkommazahl (doppelter Genauigkeit). Kann nicht
vorzeichenlos sein. Der Wertebereich umfasst
@code{@w{-1.7976931348623157E+308}} bis
@code{@w{-2.2250738585072014E-308}}, @code{0} und
@code{2.2250738585072014E-308} bis @code{1.7976931348623157E+308}. M ist
die Anzeigebreite und D ist die Anzahl von Dezimalstellen. @code{DOUBLE}
ohne Argument oder @code{FLOAT(X)} mit 25 <= X <= 53 steht für eine
-Fliesskommazahl doppelter Genauigkeit.
+Fließkommazahl doppelter Genauigkeit.
@tindex DOUBLE PRECISION
@tindex REAL
@@ -30401,7 +30162,7 @@ Synonyme für @code{DOUBLE}.
@tindex DECIMAL
@item DECIMAL[(M[,D])] [ZEROFILL]
-Eine unkomprimierte Fliesskommazahl. Kann nicht vorzeichenlos sein. Verhält
+Eine unkomprimierte Fließkommazahl. Kann nicht vorzeichenlos sein. Verhält
sich wie eine @code{CHAR}-Spalte: ``Unkomprimiert'' bedeutet, dass die Zahl
als Zeichenkette gespeichert wird, wobei ein Zeichen für jede Ziffer des
Wertes steht. Der Dezimalpunkt und, bei negativen Zahlen, das
@@ -30455,7 +30216,7 @@ einer @code{INSERT}- oder @code{UPDATE}-Operation zu speichern, weil sie
automatisch auf das Datum und die Zeit der jüngsten Operation gesetzt wird,
wenn Sie nicht selbst einen Wert zuweisen. Sie können sie auch auf das
aktuelle Datum und die aktuelle Zeit setzen, indem Sie einen
-@code{NULL}-Wert zuweisen. @xref{Datums- und Zeit-Typen}.
+@code{NULL}-Wert zuweisen. @xref\{Date and time types}.
Ein @code{TIMESTAMP} wird immer mit 4 Bytes gespeichert. Das
@code{M}-Argument betrifft nur die Anzeige der @code{TIMESTAMP}-Spalte.
@@ -30494,12 +30255,12 @@ zuweisen. (Der @code{YEAR}-Typ ist neu seit MySQL-Version 3.22.).
Eine Zeichenkette fester Länge, die beim Speichern rechts stets mit
Leerzeichen bis zur angegebenen Länge aufgefüllt wird. Der Wertebereich von
@code{M} ist 1 bis 255 Zeichen. Leerzeichen am Ende werden beim Abruf des
-Wertes entfernt. @code{CHAR}-Werte werden nach dem vorgabemässigen
-Zeichensatz ohne Berücksichtigung der Gross-/Kleinschreibung sortiert und
+Wertes entfernt. @code{CHAR}-Werte werden nach dem vorgabemäßigen
+Zeichensatz ohne Berücksichtigung der Groß-/Kleinschreibung sortiert und
verglichen, es sei denn, dass Schlüsselwort @code{BINARY} wird angegeben.
@code{NATIONAL CHAR} (Kurzform @code{NCHAR}) ist die Art, wie ANSI-SQL bei
-einer CHAR-Spalte festlegt, dass der vorgabemässige Zeichensatz verwendet
+einer CHAR-Spalte festlegt, dass der vorgabemäßige Zeichensatz verwendet
werden soll. Das ist der Vorgabewert in MySQL.
@code{CHAR} ist eine Abkürzung für @code{CHARACTER}.
@@ -30520,10 +30281,10 @@ NULL} definiert ist, belegt nur 1 Bit und kann 2 Werte annehmen:
Eine Zeichenkette variabler Länge. @strong{HINWEIS:} Leerzeichen am Ende
werden bei der Speicherung des Wertes entfernt (das unterscheidet den Typ
von der ANSI-SQL-Spezifikation). Der Wertebereich von @code{M} ist 1 bis
-255 Zeichen. @code{VARCHAR}-Werte werden nach dem vorgabemässigen
-Zeichensatz ohne Berücksichtigung der Gross-/Kleinschreibung sortiert und
+255 Zeichen. @code{VARCHAR}-Werte werden nach dem vorgabemäßigen
+Zeichensatz ohne Berücksichtigung der Groß-/Kleinschreibung sortiert und
verglichen, es sei denn, dass Schlüsselwort @code{BINARY} wird angegeben.
-@xref{Stille Spaltentyp-Änderungen}.
+@xref\{Silent column changes}.
@code{VARCHAR} ist eine Abkürzung für @code{CHARACTER VARYING}.
@xref{CHAR}.
@@ -30534,7 +30295,7 @@ verglichen, es sei denn, dass Schlüsselwort @code{BINARY} wird angegeben.
@itemx TINYTEXT
Eine @code{BLOB}- oder @code{TEXT}-Spalte mit einer maximalen Länge von 255
-(2^8 - 1) Zeichen. @xref{Stille Spaltentyp-Änderungen}. @xref{BLOB}.
+(2^8 - 1) Zeichen. @xref\{Silent column changes}. @xref{BLOB}.
@tindex BLOB
@tindex TEXT
@@ -30542,7 +30303,7 @@ Eine @code{BLOB}- oder @code{TEXT}-Spalte mit einer maximalen Länge von 255
@itemx TEXT
Eine @code{BLOB}- oder @code{TEXT}-Spalte mit einer maximalen Länge von
-65535 (2^16 - 1) Zeichen. @xref{Stille Spaltentyp-Änderungen}. @xref{BLOB}.
+65535 (2^16 - 1) Zeichen. @xref\{Silent column changes}. @xref{BLOB}.
@tindex MEDIUMBLOB
@tindex MEDIUMTEXT
@@ -30550,7 +30311,7 @@ Eine @code{BLOB}- oder @code{TEXT}-Spalte mit einer maximalen Länge von
@itemx MEDIUMTEXT
Eine @code{BLOB}- oder @code{TEXT}-Spalte mit einer maximalen Länge von
-16777215 (2^24 - 1) Zeichen. @xref{Stille Spaltentyp-Änderungen}.
+16777215 (2^24 - 1) Zeichen. @xref\{Silent column changes}.
@xref{BLOB}.
@tindex LONGBLOB
@@ -30559,7 +30320,7 @@ Eine @code{BLOB}- oder @code{TEXT}-Spalte mit einer maximalen Länge von
@itemx LONGTEXT
Eine @code{BLOB}- oder @code{TEXT}-Spalte mit einer maximalen Länge von
-4294967295 (2^32 - 1) Zeichen. @xref{Stille Spaltentyp-Änderungen}.
+4294967295 (2^32 - 1) Zeichen. @xref\{Silent column changes}.
Beachten Sie, dass Sie nicht den gesamten Wertebereich dieses Typs benutzen
können, weil das Client-Server-Protokoll und MyISAM-Tabellen momentan eine
Beschränkungen auf 16 MB pro Kommunikationspaket / Tabellenzeile haben.
@@ -30582,17 +30343,19 @@ denen jeder aus den Auflistungswerten @code{'wert1'}, @code{'wert2'},
haben. @xref{SET}.
@end table
+
+
@menu
-* Numerische Typen:: Numerische Typen
-* Datums- und Zeit-Typen:: Datums- und Zeit-Typen
-* Zeichenketten-Typen:: Zeichenketten-Typen
-* Typen auswählen:: Den richtigen Typ für eine Spalte auswählen
-* Spaltentypen anderer Hersteller:: Spaltentypen anderer Datenbanken benutzen
-* Speicherbedarf:: Speicherbedarf von Spaltentypen
+* Numeric types::
+* Date and time types::
+* String types::
+* Choosing types::
+* Other-vendor column types::
+* Storage requirements::
@end menu
-
-@node Numerische Typen, Datums- und Zeit-Typen, Spaltentypen, Spaltentypen
+@node Numeric types, Date and time types, Column types, Column types
+@c German node Numerische Typen
@subsection Numerische Typen
MySQL unterstützt alle numerischen Typen von ANSI/ISO-SQL92. Diese Typen
@@ -30625,7 +30388,7 @@ speichern, weil er nicht das Vorzeichen für positive Zahlen speichern
muss).
In ANSI/ISO-SQL92 ist die Syntax @code{DECIMAL(p)} äquivalent zu
-@code{DECIMAL(p,0)}. Gleichermassen ist die Syntax @code{DECIMAL}
+@code{DECIMAL(p,0)}. Gleichermaßen ist die Syntax @code{DECIMAL}
äquivalent zu @code{DECIMAL(p,0)}, wobei es der Implementation überlassen
bleibt, den Wert von @code{p} festzulegen. MySQL unterstützt momentan keine
dieser abweichenden Formen der @code{DECIMAL}- / @code{NUMERIC}-Datentypen.
@@ -30634,7 +30397,7 @@ dieser Typen darin liegt, sowohl Genauigkeit als auch Bereich explizit
steuern zu können.
@code{DECIMAL}- und @code{NUMERIC}-Werte sind als Zeichenketten gespeichert
-statt als Fliesskommazahlen, um die dezimale Genauigkeit dieser Werte zu
+statt als Fließkommazahlen, um die dezimale Genauigkeit dieser Werte zu
bewahren. Ein Zeichen wird benutzt für jede Ziffer des Werts, den
Dezimalpunkt (wenn @code{bereich} > 0) und das @samp{-}-Zeichen (für
negative Zahlen). Wenn @code{bereich} 0 ist, enthalten @code{DECIMAL}- und
@@ -30647,8 +30410,8 @@ gegebenen @code{DECIMAL}- oder @code{NUMERIC}-Spalte kann durch
werden. Wenn einer solchen Spalte ein Wert mit mehr Ziffern nach dem
Dezimalpunkt zugewiesen wird, als durch @code{bereich} zugelassen, wird der
Wert auf diesen @code{bereich} gerundet. Wenn einer @code{DECIMAL}- oder
-@code{NUMERIC}-Spalte ein Wert zugewiesen wird, dessen Grösse den
-Wertebereich überschreitet, der von der festgelegten (oder vorgabemässigen)
+@code{NUMERIC}-Spalte ein Wert zugewiesen wird, dessen Größe den
+Wertebereich überschreitet, der von der festgelegten (oder vorgabemäßigen)
@code{genauigkeit} und @code{bereich} festgelegt wird, speichert MySQL den
Wert des entsprechenden Endpunkts des Wertebereichs.
@@ -30663,10 +30426,10 @@ Leerzeichen aufzufüllen. Das begrenzt allerdings nicht den Wertebereich,
der in der Spalte gespeichert werden kann, noch die Anzahl von Ziffern, die
bei Werten angezeigt werden, die die angegebene Breite für die Spalte
überschreiten. In Verbindung mit dem optionalen Erweiterungsattribut
-@code{ZEROFILL} wird - statt vorgabemässig mit Leerzeichen - mit Nullen
+@code{ZEROFILL} wird - statt vorgabemäßig mit Leerzeichen - mit Nullen
aufgefüllt. Bei einer Spalte zum Beispiel, die als @code{INT(5) ZEROFILL}
deklariert wurde, wird @code{4} als @code{00004} dargestellt. Beachten Sie,
-dass Werte in einer Ganzzahlspalte, die grösser sind als die Anzeigebreite,
+dass Werte in einer Ganzzahlspalte, die größer sind als die Anzeigebreite,
Probleme bei der Erzeugung temporärer Tabellen für einige komplizierte
Joins durch MySQL auftreten können, weil MySQL in diesen Fällen darauf
vertraut, dass die Daten in die Original-Spaltenbreite passten.
@@ -30674,7 +30437,7 @@ vertraut, dass die Daten in die Original-Spaltenbreite passten.
Alle Ganzzahl-Typen können ein optionales (Nicht-Standard-) Attribut
@code{UNSIGNED} haben. Vorzeichenlose Werte können dafür benutzt werden,
nur positive Zahlen in einer Spalte zuzulassen, wenn Sie eine Wertebereich
-brauchen, der etwas grösser ausfällt.
+brauchen, der etwas größer ausfällt.
Der @code{FLOAT}-Typ wird benutzt, um näherungsweise numerische Datentypen
zu repräsentieren. Der ANSI/ISO-SQL92-Standard erlaubt eine optionale
@@ -30698,7 +30461,7 @@ Genauigkeitsfestlegungen. Als Erweiterung zum ANSI/ISO-SQL92-Standard
erkennt MySQL @code{DOUBLE} als ein Synonym für den @code{DOUBLE
PRECISION}-Typ. Im Gegensatz zur Anforderung des Standard, dass die
Genauigkeit für @code{REAL} kleiner sein muss als die für @code{DOUBLE
-PRECISION}, implementiert MySQL beide als 8-Byte-Fliesskommawerte doppelter
+PRECISION}, implementiert MySQL beide als 8-Byte-Fließkommawerte doppelter
Genauigkeit (wenn er nicht im ``ANSI-Modus'' läuft). Für maximale
Portabilität sollte Code, der die Speicherung näherungsweiser numerischer
Daten erfordert, @code{FLOAT} oder @code{DOUBLE PRECISION} ohne Festlegung
@@ -30713,11 +30476,11 @@ Der Wertebereich einer @code{INT}-Spalte ist zum Beispiel
@code{-2147483648} bis @code{2147483647}. Wenn Sie versuchen,
@code{-9999999999} in eine @code{INT}-Spalte einzufügen, wird der Wert auf
den unteren Endpunkt des Bereichs abgeschnitten, und es wird
-@code{-2147483648} gespeichert. Gleichermassen wird beim Einfügen in eine
+@code{-2147483648} gespeichert. Gleichermaßen wird beim Einfügen in eine
solche Spalte nicht @code{9999999999}, sondern @code{2147483647}
gespeichert.
-Wenn die @code{INT}-Spalte @code{UNSIGNED} ist, ist die Grösse des
+Wenn die @code{INT}-Spalte @code{UNSIGNED} ist, ist die Größe des
Wertebereichs dieselbe, aber ihre Endpunkte verschieben sich zu @code{0}
und @code{4294967295}. Wenn Sie versuchen, @code{-9999999999} bzw.
@code{9999999999} zu speichern, werden die in der Spalte gespeicherten
@@ -30728,31 +30491,26 @@ Umwandlungen, die aufgrund von Abschneiden geschehen, werden als
@code{UPDATE} und in mehrzeiligen @code{INSERT}-Statements berichtet.
-@node Datums- und Zeit-Typen, Zeichenketten-Typen, Numerische Typen, Spaltentypen
+@node Date and time types, String types, Numeric types, Column types
+@c German node Datums- und Zeit-Typen
@subsection Datums- und Zeit-Typen
@cindex Typen, Datum und Zeit
@cindex Datums- und Zeit-Typen
-@menu
-* Jahr 2000:: Jahr-2000-Probleme und Datentypen
-* DATETIME:: Die @code{DATETIME}-, @code{DATE}- und @code{TIMESTAMP}-Typen
-* TIME:: Der @code{TIME}-Typ
-* YEAR:: Der @code{YEAR}-Typ
-@end menu
Die Datums- und Zeit-Typen sind @code{DATETIME}, @code{DATE},
@code{TIMESTAMP}, @code{TIME} und @code{YEAR}. Jeder dieser Typen hat einen
zulässigen Wertebereich sowie einen ``0''-Wert, der benutzt wird, wenn Sie
einen wirklich unzulässigen Wert speichern. Beachten Sie, dass MySQL es
-zulässt, dass Sie bestimmte 'nicht ganz' zulässige Datumswerte speichern,
+zuläßt, dass Sie bestimmte 'nicht ganz' zulässige Datumswerte speichern,
zum Beispiel @code{1999-11-31}. Der Grund hierfür ist, dass wir meinen,
dass es in der Verantwortung der Applikation liegt, Datumsüberprüfungen
vorzunehmen, und nicht beim SQL-Server. Um Datumsprüfungen 'schnell' zu
machen, überprüft MySQL nur, dass der Monat im Bereich 0 bis 12 liegt und
der Tag im Bereich 0 bis 31. Diese Bereiche sind deshalb so definiert, weil
-es MySQL zulässt, dass Sie in einer @code{DATE}- oder
+es MySQL zuläßt, dass Sie in einer @code{DATE}- oder
@code{DATETIME}-Spalte Datumsangaben speichern, bei denen der Tag oder
Monat-Tag 0 sind. Das ist extrem nützlich für Applikationen, die einen
Geburtstag speichern müssen, dessen exaktes Datum unbekannt ist. In diesem
@@ -30818,14 +30576,22 @@ werden in @strong{MyODBC}-Version 2.50.12 und höher automatisch in
@end itemize
-@node Jahr 2000, DATETIME, Datums- und Zeit-Typen, Datums- und Zeit-Typen
+@menu
+* Y2K issues::
+* DATETIME::
+* TIME::
+* YEAR::
+@end menu
+
+@node Y2K issues, DATETIME, Date and time types, Date and time types
+@c German node Jahr 2000
@subsubsection Jahr-2000-Probleme und Datumstypen
@cindex Jahr-2000-Probleme
@cindex Datumstypen, Jahr-2000-Probleme
MySQL selbst ist Jahr-2000-konform (Jahr-2000-sicher,
-@pxref{Jahr-2000-Konformität}), aber Eingabewerte, die an MySQL
+@pxref\{Year 2000 compliance}), aber Eingabewerte, die an MySQL
übergeben werden, sind das möglicherweise nicht. Jede Eingabe von
Jahreswerten mit 2 Ziffern ist mehrdeutig, weil das Jahrhundert unbekannt
ist. Solche Werte müssen in 4-stellige Form umgedeutet werden, weil MySQL
@@ -30854,7 +30620,7 @@ Eingaben in Form 4-stelliger Jahreswerte bereit stellen.
korrekt.
Beachten Sie, dass einige Funktionen wie @code{MIN()} und @code{MAX()} ein
-@code{TIMESTAMP / DATE} in eine Zahl umwandeln. Das heisst, dass ein
+@code{TIMESTAMP / DATE} in eine Zahl umwandeln. Das heißt, dass ein
Zeitstempel mit einer 2-stelligen Jahresangabe bei diesen Funktionen nicht
korrekt funktioniert. Das kann in diesem Fall dadurch behoben werden, dass
der @code{TIMESTAMP / DATE} in ein 4-stelliges Jahresformat umgewandelt
@@ -30862,7 +30628,8 @@ wird, oder etwas wie @code{MIN(DATE_ADD(zeitstempel,INTERVAL 0 DAYS))}
benutzt wird.
-@node DATETIME, TIME, Jahr 2000, Datums- und Zeit-Typen
+@node DATETIME, TIME, Y2K issues, Date and time types
+@c German node DATETIME
@subsubsection Die @code{DATETIME}-, @code{DATE}- und @code{TIMESTAMP}-Typen
@tindex DATETIME
@@ -30877,7 +30644,7 @@ Der @code{DATETIME}-Typ wird benutzt, wenn Sie Werte brauchen, die sowohl
Datums- als auch Zeitinformationen beinhalten. MySQL ruft
@code{DATETIME}-Werte ab und zeigt sie an im @code{'YYYY-MM-DD
HH:MM:SS'}-Format. Der unterstützte Wertebereich ist @code{'1000-01-01
-00:00:00'} bis @code{'9999-12-31 23:59:59'}. (``Unterstützt'' heisst, dass
+00:00:00'} bis @code{'9999-12-31 23:59:59'}. (``Unterstützt'' heißt, dass
frühere Werte zwar funktionieren können, dass es aber keine Garantie dafür
gibt.)
@@ -30958,10 +30725,10 @@ werden:
@item @code{TIMESTAMP(2)} @tab @code{YY}
@end multitable
-Alle @code{TIMESTAMP}-Spalten haben dieselbe Speichergrösse, unabhängig von
+Alle @code{TIMESTAMP}-Spalten haben dieselbe Speichergröße, unabhängig von
der Anzeigebreite. Die gebräuchlichsten Anzeigebreiten sind 6, 8, 12 und
14. Sie können zur Zeit der Tabellenerzeugung beliebige Anzeigebreiten
-festlegen, aber Werte von 0 oder grösser als 14 werden auf 14 gesetzt.
+festlegen, aber Werte von 0 oder größer als 14 werden auf 14 gesetzt.
Ungerade Werte im Bereich von 1 bis 13 werden auf die nächst höhere gerade
Zahl gesetzt.
@@ -31023,7 +30790,7 @@ werden in den ``0''-Wert des jeweiligen Typs umgewandelt (@code{'0000-00-00
Bei Werten, die als Zeichenketten angegeben werden, die Begrenzer für
Datumsanteile enthalten, ist es nicht notwendig, zwei Ziffern für Monats-
oder Tageswerte anzugeben, die weniger als @code{10} sind.
-@code{'1979-6-9'} ist dasselbe wie @code{'1979-06-09'}. Gleichermassen ist
+@code{'1979-6-9'} ist dasselbe wie @code{'1979-06-09'}. Gleichermaßen ist
es bei Zeichenketten, die Begrenzer für Zeitanteile enthalten, nicht
notwendig, zwei Ziffern für Stunden-, Monats- oder Sekundenwerte anzugeben,
die weniger als @code{10} sind. @code{'1979-10-30 1:2:3'} ist dasselbe wie
@@ -31072,7 +30839,7 @@ breiter zu machen, werden Informationen angezeigt, die vorher ``versteckt''
waren.
@item
-Gleichermassen führt das Verengen einer @code{TIMESTAMP}-Spalte nicht dazu,
+Gleichermaßen führt das Verengen einer @code{TIMESTAMP}-Spalte nicht dazu,
dass Informationen verloren gehen, ausser in dem Sinn, dass weniger
Informationen dargestellt werden, wenn die Werte angezeigt werden.
@@ -31122,7 +30889,7 @@ Seien Sie auf der Hut vor Fallstricken, wenn Sie Datumswerte angeben:
@itemize @bullet
@item
-Das entspannte Format lässt Werte als Zeichenketten zu, die täuschen
+Das entspannte Format läßt Werte als Zeichenketten zu, die täuschen
können. Ein Wert wie @code{'10:11:12'} zum Beispiel sieht wegen des
@samp{:}-Begrenzers wie ein Zeitwert aus, wird er aber in einem
Datums-Zusammenhang benutzt, wird er als das Datum @code{'2010-11-12'}
@@ -31146,19 +30913,20 @@ umgewandelt.
@end itemize
-@node TIME, YEAR, DATETIME, Datums- und Zeit-Typen
+@node TIME, YEAR, DATETIME, Date and time types
+@c German node TIME
@subsubsection Der @code{TIME}-Typ
@tindex TIME
MySQL ruft @code{TIME}-Werte ab und zeigt sie an im
-@code{'HH:MM:SS'}-Format (oder @code{'HHH:MM:SS'}-Format für grosse
+@code{'HH:MM:SS'}-Format (oder @code{'HHH:MM:SS'}-Format für große
Stundenwerte). @code{TIME}-Werte rangieren von @code{'-838:59:59'} bis
-@code{'838:59:59'}. Der Grund dafür, dass der Stundenanteil so gross sein
+@code{'838:59:59'}. Der Grund dafür, dass der Stundenanteil so Groß sein
kann, liegt darin, dass der @code{TIME}-Typ nicht nur benutzt werden kann,
um die Tageszeit zu repräsentieren (wobei die Stunden weniger als 24 sein
müssen), sondern auch abgelaufene Zeit oder ein Zeitintervall zwischen zwei
-Ereignissen (was viel grösser als 24 Stunden oder sogar negativ sein kann).
+Ereignissen (was viel größer als 24 Stunden oder sogar negativ sein kann).
Sie können @code{TIME}-Werte in einer Vielzahl von Formaten angeben:
@@ -31199,14 +30967,14 @@ als @code{10} sind. @code{'8:3:2'} ist dasselbe wie @code{'08:03:02'}.
Seien Sie vorsichtig damit, einer @code{TIME}-Spalte ``kurze''
@code{TIME}-Werte zuzuweisen. Ohne Semikolon interpretiert MySQL Werte
-unter der Annahme, dass die am rechtesten stehenden Ziffern Sekunden
+unter der Annahme, dass die am weitesten rechts stehenden Ziffern Sekunden
repräsentieren. (MySQL interpretiert @code{TIME}-Werte als vergangene Zeit
statt als Tageszeit.) Sie könnten zum Beispiel denken, dass @code{'1112'}
und @code{1112} @code{'11:12:00'} bedeuten (12 Minuten nach 11 Uhr), aber
MySQL interpretiert sie als @code{'00:11:12'} (11 Minuten, 12 Sekunden).
-Gleichermassen wird @code{'12'} und @code{12} als @code{'00:00:12'}
+Gleichermaßen wird @code{'12'} und @code{12} als @code{'00:00:12'}
interpretiert. @code{TIME}-Werte mit Semikolon werden statt dessen immer
-als Tageszeit interpretiert. Das heisst, @code{'11:12'} bedeutet
+als Tageszeit interpretiert. Das heißt, @code{'11:12'} bedeutet
@code{'11:12:00'}, nicht @code{'00:11:12'}.
Werte, die ausserhalb des @code{TIME}-Wertebereichs liegen, ansonsten aber
@@ -31222,7 +30990,8 @@ Wert war, weil @code{'00:00:00'} selbst ein zulässiger @code{TIME}-Wert
ist.
-@node YEAR, , TIME, Datums- und Zeit-Typen
+@node YEAR, , TIME, Date and time types
+@c German node YEAR
@subsubsection Der @code{YEAR}-Typ
@tindex YEAR
@@ -31269,7 +31038,8 @@ Als Ergebnis einer Funktion, die einen Wert zurück gibt, der in einem
Unzulässige @code{YEAR}-Werte werden in @code{0000} umgewandelt.
-@node Zeichenketten-Typen, Typen auswählen, Datums- und Zeit-Typen, Spaltentypen
+@node String types, Choosing types, Date and time types, Column types
+@c German node Zeichenketten-Typen
@subsection Zeichenketten-Typen
@cindex Typen, Zeichenketten
@@ -31278,12 +31048,6 @@ Unzulässige @code{YEAR}-Werte werden in @code{0000} umgewandelt.
@tindex CHAR
@tindex VARCHAR
-@menu
-* CHAR:: Die @code{CHAR}- und @code{VARCHAR}-Typen
-* BLOB:: Die @code{BLOB}- und @code{TEXT}-Typen
-* ENUM:: Der @code{ENUM}-Typ
-* SET:: Der @code{SET}-Typ
-@end menu
Die Zeichenketten-Typen sind @code{CHAR}, @code{VARCHAR}, @code{BLOB},
@@ -31292,7 +31056,15 @@ diese Typen funktionieren, ihren Speicherbedarf und wie sie in Anfragen
benutzt werden.
-@node CHAR, BLOB, Zeichenketten-Typen, Zeichenketten-Typen
+@menu
+* CHAR::
+* BLOB::
+* ENUM::
+* SET::
+@end menu
+
+@node CHAR, BLOB, String types, String types
+@c German node CHAR
@subsubsection Die @code{CHAR}- und @code{VARCHAR}-Typen
Die @code{CHAR}- und @code{VARCHAR}-Typen sind ähnlich, unterscheiden sich
@@ -31340,52 +31112,54 @@ abgerufen werden, sind in jedem Fall gleich, weil Leerzeichen am Ende von
@code{CHAR}-Spalten beim Abruf entfernt werden.
Werte in @code{CHAR}- und @code{VARCHAR}-Spalten werden unabhängig von der
-Gross-/Kleinschreibung sortiert und verglichen, es sei denn, beim Erzeugen
+Groß-/Kleinschreibung sortiert und verglichen, es sei denn, beim Erzeugen
der Tabelle wurde das @code{BINARY}-Attribut festgelegt. Das
@code{BINARY}-Attribut bedeutet, dass Spaltenwerte abhängig von der
-Gross-/Kleinschreibung in Übereinstimmung mit der ASCII-Reihenfolge der
+Groß-/Kleinschreibung in Übereinstimmung mit der ASCII-Reihenfolge der
Maschine sortiert und verglichen werden, auf der der MySQL-Server läuft.
@code{BINARY} beeinflusst nicht, wie die Spalte gespeichert oder abgerufen
wird.
-Das @code{BINARY}-Attribut ist 'klebrig', das heisst, dass der gesamte
+Das @code{BINARY}-Attribut ist 'klebrig', das heißt, dass der gesamte
Ausdruck als ein @code{BINARY}-Wert verglichen wird, sobald eine
@code{BINARY}-Spalte im Ausdruck benutzt wird.
MySQL ändert eventuell 'still' den Typ von @code{CHAR}- oder
-@code{VARCHAR}-Spalten bei der Tabellenerzeugung. @xref{Stille
-Spaltentyp-Änderungen}.
+@code{VARCHAR}-Spalten bei der Tabellenerzeugung.
+@c German FIX unwrapped @xref
+@xref\{Silent column changes}.
-@node BLOB, ENUM, CHAR, Zeichenketten-Typen
+@node BLOB, ENUM, CHAR, String types
+@c German node BLOB
@subsubsection Die @code{BLOB}- und @code{TEXT}-Typen
@tindex BLOB
@tindex TEXT
-Ein @code{BLOB} ist grosses Binärobjekt (Binary Large OBject), das eine
+Ein @code{BLOB} ist großes Binärobjekt (Binary Large OBject), das eine
variable Menge von Daten enthalten kann. Die vier @code{BLOB}-Typen
@code{TINYBLOB}, @code{BLOB}, @code{MEDIUMBLOB} und @code{LONGBLOB}
unterscheiden sich nur hinsichtlich der maximalen Länge der Werte, die sie
aufnehmen können.
-@xref{Speicherbedarf}.
+@xref\{Storage requirements}.
Die vier @code{TEXT}-Typen @code{TINYTEXT}, @code{TEXT},
@code{MEDIUMTEXT} und @code{LONGTEXT} entsprechen den vier
@code{BLOB}-Typen und haben dieselben maximalen Längen und denselben
Speicherbedarf. Der einzige Unterschied zwischen @code{BLOB}- und
@code{TEXT}-Typen ist, dass beim Sortieren und Vergleichen bei
-@code{BLOB}-Werten Gross-/Kleinschreibung berücksichtigt wird, bei
+@code{BLOB}-Werten Groß-/Kleinschreibung berücksichtigt wird, bei
@code{TEXT}-Werten dagegen nicht. Mit anderen Worten ist ein @code{TEXT}
-ein @code{BLOB} ohne Berücksichtigung der Gross-/Kleinschreibung.
+ein @code{BLOB} ohne Berücksichtigung der Groß-/Kleinschreibung.
Wenn Sie einer @code{BLOB}- oder @code{TEXT}-Spalte einen Wert zuweisen,
der die maximale Länge des Spaltentyps überschreitet, wird der Wert so
zurecht geschnitten, dass er passt.
In fast jeder Hinsicht können Sie eine @code{TEXT}-Spalte als eine
-@code{VARCHAR}-Spalte betrachten, die so gross sein kann, wie Sie wollen.
-Gleichermassen können Sie eine @code{BLOB}-Spalte als eine @code{VARCHAR
+@code{VARCHAR}-Spalte betrachten, die so Groß sein kann, wie Sie wollen.
+Gleichermaßen können Sie eine @code{BLOB}-Spalte als eine @code{VARCHAR
BINARY}-Spalte betrachten. Die Unterschiede sind:
@itemize @bullet
@@ -31416,7 +31190,7 @@ Sie bei der Benutzung eventuell auf Beschränkungen:
@item
Wenn Sie @code{GROUP BY} oder @code{ORDER BY} für @code{BLOB}- oder
@code{TEXT}-Spalten benutzen wollen, müssen Sie den Spaltenwert in ein
-Objekt fester Länge umwandeln. Standardmässig wird das mit der
+Objekt fester Länge umwandeln. Standardmäßig wird das mit der
@code{SUBSTRING}-Funktion gemacht. Beispiel:
@example
@@ -31439,12 +31213,12 @@ mysql> select id,substring(blob_spalte,1,100) as b from tabelle
@end example
@item
-Die maximale Grösse eines @code{BLOB}- oder @code{TEXT}-Objekts wird durch
-seinen Typ festgelegt, aber der grösste Wert, den Sie tatsächlich zwischen
+Die maximale Größe eines @code{BLOB}- oder @code{TEXT}-Objekts wird durch
+seinen Typ festgelegt, aber der größte Wert, den Sie tatsächlich zwischen
Client und Server übertragen können, wird von der Menge verfügbaren
-Arbeitsspeichers und der Grösse des Kommunikationspuffers festgelegt. Sie
-können die Nachrichtenpuffergrösse ändern, müssen das aber auf beiden
-Seiten, also beim Client und beim Server, tun. @xref{Serverparameter}.
+Arbeitsspeichers und der Größe des Kommunikationspuffers festgelegt. Sie
+können die Nachrichtenpuffergröße ändern, müssen das aber auf beiden
+Seiten, also beim Client und beim Server, tun. @xref\{Server parameters}.
@end itemize
Beachten Sie, dass intern jeder @code{BLOB}- oder @code{TEXT}-Wert durch
@@ -31453,7 +31227,8 @@ allen anderen Spaltentypen, für die Speicherplatz einmal pro Spalte
zugewiesen wird, wenn die Tabelle geöffnet wird.
-@node ENUM, SET, BLOB, Zeichenketten-Typen
+@node ENUM, SET, BLOB, String types
+@c German node ENUM
@subsubsection Der @code{ENUM}-Typ
@tindex ENUM
@@ -31516,9 +31291,9 @@ Index jedes Werts wird auch dargestellt:
Eine Aufzählung kann maximal 65535 Elemente enthalten.
-Gross-/Kleinschreibung ist irrelevant, wenn Sie einer @code{ENUM}-Spalte
+Groß-/Kleinschreibung ist irrelevant, wenn Sie einer @code{ENUM}-Spalte
Werte zuweisen. Jedoch haben Werte, die später aus der Spalte abgerufen
-werden, dieselbe Gross-/Kleinschreibung wie die Werte, die für die
+werden, dieselbe Groß-/Kleinschreibung wie die Werte, die für die
Festlegung zulässiger Werte bei der Tabellenerzeugung verwendet wurden.
Wenn Sie eine @code{ENUM} in einem numerischen Zusammenhang benutzen, wird
@@ -31548,7 +31323,8 @@ benutzen Sie: @code{SHOW COLUMNS FROM tabelle LIKE enum_spalte} und gehen
die @code{ENUM}-Definition in der zweiten Spalte durch.
-@node SET, , ENUM, Zeichenketten-Typen
+@node SET, , ENUM, String types
+@c German node SET
@subsubsection Der @code{SET}-Typ
@tindex SET
@@ -31639,7 +31415,8 @@ benutzen Sie: @code{SHOW COLUMNS FROM tabelle LIKE set_spalte} und gehen
die @code{SET}-Definition in der zweiten Spalte durch.
-@node Typen auswählen, Spaltentypen anderer Hersteller, Zeichenketten-Typen, Spaltentypen
+@node Choosing types, Other-vendor column types, String types, Column types
+@c German node Typen auswählen
@subsection Den richtigen Typ für eine Spalte auswählen
@cindex Typen, Spalten
@@ -31659,10 +31436,11 @@ ausreichen.
Um hohe Präzision zu erzielen, können Sie immer auch in einen Festkommawert
umwandeln, der in einer @code{BIGINT} gespeichert wird. Das erlaubt Ihnen,
alle Berechnungen mit Ganzzahlen durchzuführen und die Ergebnisse nur wenn
-notwendig in Fliesskommawerte zurückzuwandeln.
+notwendig in Fließkommawerte zurückzuwandeln.
-@node Spaltentypen anderer Hersteller, Speicherbedarf, Typen auswählen, Spaltentypen
+@node Other-vendor column types, Storage requirements, Choosing types, Column types
+@c German node Spaltentypen anderer Hersteller
@subsection Spaltentypen anderer Datenbanken benutzen
@cindex Typen, Portabilität
@@ -31699,7 +31477,8 @@ absetzen, zeigt MySQL die Tabellenstruktur mit den äquivalenten MySQL-Typen
an.
-@node Speicherbedarf, , Spaltentypen anderer Hersteller, Spaltentypen
+@node Storage requirements, , Other-vendor column types, Column types
+@c German node Speicherbedarf
@subsection Speicherbedarf von Spaltentypen
@cindex Speicherbedarf, Spaltentyp
@@ -31767,13 +31546,13 @@ der Anzahl der Aufzählungswerte (65535 Werte maximal)
abhängig von der Anzahl von SET-Elementen (64 Elemente maximal)
@end multitable
-@cindex @code{BLOB}, Grösse
-@cindex @code{TEXT}, Grösse
-@cindex @code{VARCHAR}, Grösse
+@cindex @code{BLOB}, Größe
+@cindex @code{TEXT}, Größe
+@cindex @code{VARCHAR}, Größe
@code{VARCHAR} und die @code{BLOB}- und @code{TEXT}-Typen sind Typen
variabler Länge, bei denen der Speicherbedarf von der tatsächlichen Länge
der Spaltenwerte abhängt (in der vorstehenden Tabelle dargestellt durch
-@code{L}) statt von der maximal möglichen Grösse des Typs.
+@code{L}) statt von der maximal möglichen Größe des Typs.
@code{VARCHAR(10)} zum Beispiel kann eine Zeichenkette mit einer maximalen
Länge von 10 Zeichen enthalten. Der tatsächliche Speicherbedarf ist die
Länge der Zeichenkette (@code{L}) plus 1 Byte, um die Länge zu speichern.
@@ -31788,22 +31567,23 @@ Wenn eine Tabelle irgend welche Spaltentypen variabler Länge enthält, ist
das Datensatzformat ebenfalls von variabler Länge. Beachten Sie, dass MySQL
bei der Erzeugung einer Tabelle unter bestimmten Umständen eine Spalte
eines Typs variabler Länge in einen Typ fester Länge umwandelt, und
-umgekehrt. @xref{Stille Spaltentyp-Änderungen}.
+umgekehrt. @xref\{Silent column changes}.
-@cindex ENUM, Grösse
-Die Grösse eines @code{ENUM}-Objekts hängt von der Anzahl unterschiedlicher
+@cindex ENUM, Größe
+Die Größe eines @code{ENUM}-Objekts hängt von der Anzahl unterschiedlicher
Aufzählungswerte ab. Bei Aufzählungen mit bis zu 255 möglichen Werten wird
1 Byte benutzt, bei Aufzählungen mit bis zu 65535 Werten 2 Bytes.
@xref{ENUM}.
-@cindex SET, Grösse
-Die Grösse eines @code{SET}-Objekts hängt von der Anzahl unterschiedlicher
-SET-Elemente ab. Wenn die SET-Grösse @code{N} ist, belegt das Objekt
+@cindex SET, Größe
+Die Größe eines @code{SET}-Objekts hängt von der Anzahl unterschiedlicher
+SET-Elemente ab. Wenn die SET-Größe @code{N} ist, belegt das Objekt
@code{(N+7)/8} Bytes, gerundet auf 1, 2, 3, 4 oder 8 Bytes. Ein @code{SET}
kann maximal 64 Elemente besitzen. @xref{SET}.
-@node Funktionen, Datenmanipulation, Spaltentypen, Referenz
+@node Functions, Data Manipulation, Column types, Reference
+@c German node Funktionen
@section Funktionen für die Benutzung in @code{SELECT}- und @code{WHERE}-Klauseln
@cindex Funktionen für @code{SELECT} und @code{WHERE}-Klauseln
@@ -31826,7 +31606,7 @@ Sie können MySQL zwingen, Leerzeichen nach dem Funktionsnamen zu
akzeptieren, indem Sie @code{mysqld} mit @code{--ansi} starten oder
@code{CLIENT_IGNORE_SPACE} bei @code{mysql_connect()}, benutzen, aber in
diesem Fall werden alle Funktionsnamen zu reservierten Wörtern.
-@xref{ANSI-Modus}.
+@xref\{ANSI mode}.
@need 2000
@@ -31850,27 +31630,32 @@ mysql> select MOD(29,9);
-> 2
@end example
+
+
@menu
-* Nicht typenspezifische Operatoren:: Nicht typenspezifische Operatoren und Funktionen
-* Zeichenketten-Funktionen:: Zeichenketten-Funktionen
-* Numerische Funktionen:: Numerische Funktionen
-* Datums- und Zeit-Funktionen:: Datums- und Zeit-Funktionen
-* Weitere Funktionen:: Weitere Funktionen
+* Non-typed Operators::
+* String functions::
+* Numeric Functions::
+* Date and time functions::
+* Other Functions::
+* Group by functions::
@end menu
-
-@node Nicht typenspezifische Operatoren, Zeichenketten-Funktionen, Funktionen, Funktionen
+@node Non-typed Operators, String functions, Functions, Functions
+@c German node Nicht typenspezifische Operatoren
@subsection Nicht typenspezifische Operatoren und Funktionen
+
+
@menu
-* Klammer:: Klammer
-* Vergleichsoperatoren:: Vergleichsoperatoren
-* Logische Operatoren:: Logische Operatoren
-* Ablaufsteuerungsfunktionen:: Ablaufsteuerungsfunktionen
+* Parenthesis::
+* Comparison Operators::
+* Logical Operators::
+* Control flow functions::
@end menu
-
-@node Klammer, Vergleichsoperatoren, Nicht typenspezifische Operatoren, Nicht typenspezifische Operatoren
+@node Parenthesis, Comparison Operators, Non-typed Operators, Non-typed Operators
+@c German node Klammer
@subsubsection Klammer
@findex () (Klammern)
@@ -31895,7 +31680,8 @@ mysql> select (1+2)*3;
-@node Vergleichsoperatoren, Logische Operatoren, Klammer, Nicht typenspezifische Operatoren
+@node Comparison Operators, Logical Operators, Parenthesis, Non-typed Operators
+@c German node Vergleichsoperatoren
@subsubsection Vergleichsoperatoren
@findex Vergleichsoperatoren
@@ -31935,13 +31721,13 @@ Zeitstempel umgewandelt, bevor der Vergleich durchgeführt wird. Das wird
gemacht, um ODBC-freundlicher zu sein.
@item
-In allen anderen Fällen werden die Argumente als Fliesskommazahlen
+In allen anderen Fällen werden die Argumente als Fließkommazahlen
verglichen.
@end itemize
-Vorgabemässig werden Zeichenketten-Vergleiche unabhängig von der verwendeten
-Gross-/Kleinschreibung durchgeführt, indem der aktuelle Zeichensatz benutzt
-wird (vorgabemässig ISO-8859-1 Latin1, der auch für englisch exzellent
+Vorgabemäßig werden Zeichenketten-Vergleiche unabhängig von der verwendeten
+Groß-/Kleinschreibung durchgeführt, indem der aktuelle Zeichensatz benutzt
+wird (vorgabemäßig ISO-8859-1 Latin1, der auch für englisch exzellent
funktioniert).
Die unten stehenden Beispiele erläutern die Umwandlung von Zeichenketten in
@@ -32010,19 +31796,19 @@ mysql> select 2 < 2;
-> 0
@end example
-@findex >= (grösser oder gleich)
-@findex grösser oder gleich (>=)
+@findex >= (größer oder gleich)
+@findex größer oder gleich (>=)
@item >=
-Grösser oder gleich:
+Größer oder gleich:
@example
mysql> select 2 >= 2;
-> 1
@end example
-@findex > (grösser als)
-@findex grösser als (>)
+@findex > (größer als)
+@findex größer als (>)
@item >
-Grösser als:
+Größer als:
@example
mysql> select 2 > 2;
-> 0
@@ -32052,7 +31838,7 @@ mysql> select 1 IS NOT NULL, 0 IS NOT NULL, NULL IS NOT NULL;
@findex BETWEEN ... AND
@item ausdruck BETWEEN min AND max
-Wenn @code{ausdruck} grösser oder gleich @code{min} ist und @code{ausdruck}
+Wenn @code{ausdruck} größer oder gleich @code{min} ist und @code{ausdruck}
kleiner oder gleich @code{max} ist, gibt @code{BETWEEN} @code{1} zurück,
andernfalls @code{0}. Das ist äquivalent zum Ausdruck @code{(min <=
ausdruck AND ausdruck <= max)}, wenn alle Argumente vom selben Typ sind.
@@ -32066,17 +31852,17 @@ Wenn @code{ausdruck} eine @code{TIMESTAMP}-, @code{DATE}- oder
Format formatiert als wären sie Konstanten.
@item
Wenn @code{ausdruck} ein Zeichenketten-Ausdruck ohne Berücksichtigung der
-Gross-/Kleinschreibung ist, wird ein Zeichenkettenvergleich ohne
-Berücksichtigung der Gross-/Kleinschreibung durchgeführt.
+Groß-/Kleinschreibung ist, wird ein Zeichenkettenvergleich ohne
+Berücksichtigung der Groß-/Kleinschreibung durchgeführt.
@item
Wenn @code{ausdruck} ein Zeichenketten-Ausdruck mit Berücksichtigung der
-Gross-/Kleinschreibung ist, wird ein Zeichenkettenvergleich mit
-Berücksichtigung der Gross-/Kleinschreibung durchgeführt.
+Groß-/Kleinschreibung ist, wird ein Zeichenkettenvergleich mit
+Berücksichtigung der Groß-/Kleinschreibung durchgeführt.
@item
Wenn @code{ausdruck} ist ein Ganzzahl-Ausdruck ist, wird ein
Ganzzahlvergleich durchgeführt.
@item
-Ansonsten wird ein Fliesskommazahlenvergleich durchgeführt.
+Ansonsten wird ein Fließkommazahlenvergleich durchgeführt.
@end itemize
@example
@@ -32094,13 +31880,13 @@ mysql> select 2 BETWEEN 2 AND 'x-3';
@item ausdruck IN (wert,...)
Gibt @code{1} zurück, wenn @code{ausdruck} einen Wert hat, der in der
@code{IN}-Liste enthalten ist, ansonsten @code{0}. Wenn alle Werte
-Konstanten sind, werden alle Werte gemäss dem Typ von @code{ausdruck}
+Konstanten sind, werden alle Werte gemäß dem Typ von @code{ausdruck}
ausgewertet und sortiert. Danach wird ein Element mittels binärer Suche
-gesucht. Das heisst, dass @code{IN} sehr schnell ist, wenn die
-@code{IN}-Werteliste ausschliesslich aus Konstanten besteht. Wenn
+gesucht. Das heißt, dass @code{IN} sehr schnell ist, wenn die
+@code{IN}-Werteliste ausschließlich aus Konstanten besteht. Wenn
@code{ausdruck} ein Zeichenketten-Ausdruck mit Berücksichtigung der
-Gross-/Kleinschreibung ist, wird der Zeichenkettenvergleich unter
-Berücksichtigung der Gross-/Kleinschreibung durchgeführt:
+Groß-/Kleinschreibung ist, wird der Zeichenkettenvergleich unter
+Berücksichtigung der Groß-/Kleinschreibung durchgeführt:
@example
mysql> select 2 IN (0,3,5,'wefwf');
@@ -32157,7 +31943,7 @@ mysql> select INTERVAL(22, 23, 30, 44, 200);
@end example
@end table
-Wenn Sie eine Zeichenkette, die Gross-/Kleinschreibung nicht
+Wenn Sie eine Zeichenkette, die Groß-/Kleinschreibung nicht
berücksichtigt, mit einem der Standard-Operatoren vergleichen (@code{=},
@code{<>}..., aber nicht @code{LIKE}), werden Leerzeichen am Ende
ignoriert:
@@ -32168,7 +31954,8 @@ mysql> select "a" ="A ";
@end example
-@node Logische Operatoren, Ablaufsteuerungsfunktionen, Vergleichsoperatoren, Nicht typenspezifische Operatoren
+@node Logical Operators, Control flow functions, Comparison Operators, Non-typed Operators
+@c German node Logische Operatoren
@subsubsection Logische Operatoren
@findex Logische Funktionen
@@ -32230,7 +32017,8 @@ mysql> select 1 && 0;
@end table
-@node Ablaufsteuerungsfunktionen, , Logische Operatoren, Nicht typenspezifische Operatoren
+@node Control flow functions, , Logical Operators, Non-typed Operators
+@c German node Ablaufsteuerungsfunktionen
@subsubsection Ablaufsteuerungsfunktionen
@findex Ablaufsteuerungsfunktionen
@@ -32288,7 +32076,7 @@ mysql> select IF(strcmp('test','test1'),'nein','ja');
@end example
@code{ausdruck1} wird als Ganzzahlwert ausgewertet, woraus folgt, dass Sie
-das Testen auf Fliesskomma- oder Zeichenketten-Werte mit einer
+das Testen auf Fließkomma- oder Zeichenketten-Werte mit einer
Vergleichsoperation durchführen sollten:
@example
@@ -32301,17 +32089,17 @@ mysql> select IF(0.1<>0,1,0);
Im ersten Fall gibt @code{IF(0.1)} @code{0} zurück, weil @code{0.1} in
einen Ganzzahlwert umgewandelt wird, wodurch es auf @code{IF(0)} getestet
wird. Das ist vielleicht nicht das, was Sie erwarten. Im zweiten Fall
-testet der Vergleich den Original-Fliesskommawert, um zu sehen, ob er nicht
+testet der Vergleich den Original-Fließkommawert, um zu sehen, ob er nicht
0 ist. Das Ergebnis des Vergleichs wird als Ganzzahl benutzt.
-Der vorgabemässige Rückgabewert von @code{IF()} (der eine Rolle spielen
+Der vorgabemäßige Rückgabewert von @code{IF()} (der eine Rolle spielen
kann, wenn er in einer temporären Tabelle gespeichert wird), wird in
MySQL-Version 3.23 wie folgt berechnet:
@multitable @columnfractions .55 .45
@item @strong{Ausdruck} @tab @strong{Rückgabewert}
@item ausdruck2 oder ausdruck3 gibt Zeichenkette zurück @tab Zeichenkette
-@item ausdruck2 oder ausdruck3 gibt Fliesskommawert zurück @tab Fliesskommawert
+@item ausdruck2 oder ausdruck3 gibt Fließkommawert zurück @tab Fließkommawert
@item ausdruck2 oder ausdruck3 gibt Ganzzahl zurück @tab Ganzzahl
@end multitable
@@ -32340,15 +32128,16 @@ Der Typ des Rückgabewerts (@code{INTEGER}, @code{DOUBLE} oder
(der Ausdruck nach dem ersten @code{THEN}).
-@node Zeichenketten-Funktionen, Numerische Funktionen, Nicht typenspezifische Operatoren, Funktionen
+@node String functions, Numeric Functions, Non-typed Operators, Functions
+@c German node Zeichenketten-Funktionen
@subsection Zeichenketten-Funktionen
@findex Zeichenketten-Funktionen
@findex Funktionen, Zeichenketten
Funktionen für Zeichenkettenwerte geben @code{NULL} zurück, wenn die Länge
-des Ergebnisses grösser wäre als der
-@code{max_allowed_packet}-Serverparameter. @xref{Serverparameter}.
+des Ergebnisses größer wäre als der
+@code{max_allowed_packet}-Serverparameter. @xref\{Server parameters}.
Bei Funktionen, die mit Zeichenkettenpositionen arbeiten, wird die erste
Position als 1 gezählt.
@@ -32356,7 +32145,7 @@ Position als 1 gezählt.
@table @code
@findex ASCII()
@item ASCII(zeichenkette)
-Gibt den ASCII-Code-Wert des äussersten linken Zeichens der Zeichenkette
+Gibt den ASCII-Code-Wert des äußersten linken Zeichens der Zeichenkette
@code{zeichenkette} zurück. Gibt @code{0} zurück, wenn @code{zeichenkette}
die leere Zeichenkette ist. Gibt @code{NULL} zurück, wenn
@code{zeichenkette} @code{NULL} ist:
@@ -32374,12 +32163,12 @@ Siehe auch @code{ORD()}-Funktion.
@findex ORD()
@item ORD(zeichenkette)
-Wenn das äusserste linke Zeichen der Zeichenkette @code{zeichenkette} ein
+Wenn das äußerste linke Zeichen der Zeichenkette @code{zeichenkette} ein
Multi-Byte-Zeichen ist, gibt diese Funktion den Code des
Multi-Byte-Zeichens zurück, indem der ASCII-Code-Wert des Zeichens in
folgendem Format zurückgegeben wird:
@code{((erstes byte ASCII code)*256+(zweites byte ASCII code))[*256+drittes byte ASCII code...]}.
-Wenn das äusserste linke Zeichen kein Multi-Byte-Zeichen ist, wird derselbe
+Wenn das äußerste linke Zeichen kein Multi-Byte-Zeichen ist, wird derselbe
Wert wie bei der @code{ASCII()}-Funktion zurückgegeben:
@example
@@ -32394,7 +32183,7 @@ Zeichenkettendarstellung der Zahl @code{N} zurück, umgewandelt von Basis
@code{von_basis} zu Basis @code{zu_basis}. Gibt @code{NULL} zurück, wenn
irgend ein Argument @code{NULL} ist. Das Argument @code{N} wird als
Ganzzahl interpretiert, kann aber als Ganzzahl oder Zeichenkette angegeben
-werden. Die kleinste Basis ist @code{2} und die grösste Basis @code{36}.
+werden. Die kleinste Basis ist @code{2} und die größte Basis @code{36}.
Wenn @code{zu_basis} eine negative Zahl ist, wird @code{N} als
vorzeichenbehaftete Zahl betrachtet. Ansonsten wird @code{N} als
vorzeichenlos behandelt. @code{CONV} arbeitet mit 64-Bit-Genauigkeit:
@@ -32521,7 +32310,7 @@ gezählt werden.
Gibt die Position des ersten Auftretens der Teilzeichenfolge
@code{teilzeichenfolge} in der Zeichenkette @code{zeichenkette} an. Gibt
@code{0} zurück, wenn @code{teilzeichenfolge} nicht in @code{zeichenkette}
-enhalten ist:
+enthalten ist:
@example
mysql> select LOCATE('bar', 'foobarbar');
@@ -32588,7 +32377,7 @@ mysql> select RPAD('hi',5,'?');
@findex LEFT()
@item LEFT(zeichenkette,laenge)
-Gibt die äussersten linken @code{laenge} Zeichen der Zeichenkette
+Gibt die äußersten linken @code{laenge} Zeichen der Zeichenkette
@code{zeichenkette} zurück:
@example
@@ -32600,7 +32389,7 @@ Diese Funktion ist Multi-Byte-sicher.
@findex RIGHT()
@item RIGHT(zeichenkette,laenge)
-Gibt die äussersten rechten @code{laenge} Zeichen der Zeichenkette
+Gibt die äußersten rechten @code{laenge} Zeichen der Zeichenkette
@code{zeichenkette} zurück:
@example
@@ -32783,7 +32572,7 @@ Diese Funktion ist Multi-Byte-sicher.
@item ELT(N,zeichenkette1,zeichenkette2,zeichenkette3,...)
Gibt @code{zeichenkette1} zurück, wenn @code{N} = @code{1} ist,
@code{zeichenkette2}, wenn @code{N} = @code{2} ist usw.. Gibt @code{NULL}
-zurück, wenn @code{N} kleiner als @code{1} oder grösser als die Anzahl von
+zurück, wenn @code{N} kleiner als @code{1} oder größer als die Anzahl von
Argumenten ist. @code{ELT()} ist das Komplement von @code{FIELD()}:
@example
@@ -32850,7 +32639,7 @@ mysql> SELECT MAKE_SET(0,'a','b','c');
Gibt eine Zeichenkette zurück, in der Sie für jedes bit, das in 'bit'
gesetzt ist, eine 'an'-Zeichenkette erhalten, und für jedes zurückgesetzte
Bit eine 'aus'-Zeichenkette. Jede Zeichenkette wird mit 'trennzeichen'
-getrennt (vorgabemässig ','), und nur die 'anzahl_bits' (vorgabemässig 64)
+getrennt (vorgabemäßig ','), und nur die 'anzahl_bits' (vorgabemäßig 64)
von 'bits' wird benutzt:
@example
@@ -32863,7 +32652,7 @@ mysql> select EXPORT_SET(5,'Y','N',',',4)
@item LCASE(zeichenkette)
@itemx LOWER(zeichenkette)
Gibt die Zeichenkette @code{zeichenkette} zurück, bei der alle Zeichen in
-Kleinschreibung gemäss dem aktuellen Zeichensatz-Mapping (Vorgabe ist
+Kleinschreibung gemäß dem aktuellen Zeichensatz-Mapping (Vorgabe ist
ISO-8859-1 Latin1) umgewandelt wurden:
@example
@@ -32878,7 +32667,7 @@ Diese Funktion ist Multi-Byte-sicher.
@item UCASE(zeichenkette)
@itemx UPPER(zeichenkette)
Gibt die Zeichenkette @code{zeichenkette} zurück, bei der alle Zeichen in
-Grossschreibung gemäss dem aktuellen Zeichensatz-Mapping (Vorgabe ist
+Großschreibung gemäß dem aktuellen Zeichensatz-Mapping (Vorgabe ist
ISO-8859-1 Latin1) umgewandelt wurden:
@example
@@ -32933,23 +32722,25 @@ Zeichenkette. Eine Zahl, die in eine Zeichenkette umgewandelt wird, wird
als binäre Zeichenkette behandelt. Das betrifft nur Vergleichsoperationen.
+
@menu
-* Zeichenketten-Vergleichsfunktionen:: Zeichenketten-Vergleichsfunktionen
-* Operatoren und Gross-/Kleinschreibung:: Gross-/Kleinschreibung
+* String comparison functions::
+* Case Sensitivity Operators::
@end menu
-@node Zeichenketten-Vergleichsfunktionen, Operatoren und Gross-/Kleinschreibung, Zeichenketten-Funktionen, Zeichenketten-Funktionen
+@node String comparison functions, Case Sensitivity Operators, String functions, String functions
+@c German node Zeichenketten-Vergleichsfunktionen
@subsubsection Zeichenketten-Vergleichsfunktionen
@findex Zeichenketten-Vergleichsfunktionen
@findex Funktionen, Zeichenketten-Vergleich
-@cindex Gross-/Kleinschreibung, in Zeichenketten-Vergleichen
-@cindex Zeichenketten-Vergleiche, Gross-/Kleinschreibung
+@cindex Groß-/Kleinschreibung, in Zeichenketten-Vergleichen
+@cindex Zeichenketten-Vergleiche, Groß-/Kleinschreibung
Normalerweise wird ein Vergleich unter Berücksichtigung der
-Gross-/Kleinschreibung durchgeführt, wenn irgend ein Ausdruck in einem
-Zeichenkettenvergleich abhängig von der verwendeten Gross-/Kleinschreibung
+Groß-/Kleinschreibung durchgeführt, wenn irgend ein Ausdruck in einem
+Zeichenkettenvergleich abhängig von der verwendeten Groß-/Kleinschreibung
ist.
@table @code
@@ -32996,7 +32787,7 @@ mysql> select 'David_' LIKE 'David|_' ESCAPE '|';
@end example
Die folgenden beiden Statements zeigen, dass Zeichenketten-Vergleiche die
-Gross-/Kleinschreibung nicht berücksichtigen, solange nicht einer der
+Groß-/Kleinschreibung nicht berücksichtigen, solange nicht einer der
Operanden eine binäre Zeichenkette ist:
case insensitive unless one of the operands ist a binäre Zeichenkette:
@@ -33035,14 +32826,14 @@ Dasselbe wie @code{NOT (ausdruck LIKE muster [ESCAPE 'fluchtzeichen'])}.
@itemx ausdruck RLIKE muster
Führt einen Mustervergleich eines Zeichenkettenausdrucks @code{ausdruck}
gegen ein Muster @code{muster} durch. Das Muster kann ein erweiterter
-regulärer Ausdruck sein. @xref{Reguläre Ausdrücke}. Gibt @code{1} zurück, wenn
+regulärer Ausdruck sein. @xref\{Regexp}. Gibt @code{1} zurück, wenn
@code{ausdruck} mit @code{muster} übereinstimmt, ansonsten @code{0}.
@code{RLIKE} ist ein Synonym für @code{REGEXP}, was aus Gründen der
@code{mSQL}-Kompatibilität zur Verfügung steht. HINWEIS: Weil MySQL die
C-Escape-Syntax in Zeichenketten benutzt (beispielsweise @samp{\n}), müssen
Sie jeden @samp{\}, den Sie in Ihren @code{REGEXP}-Zeichenketten benutzen,
verdoppeln. Ab MySQL-Version 3.23.4 berücksichtigt @code{REGEXP} nicht die
-verwendete Gross-/Kleinschreibung für normale (nicht binäre)
+verwendete Groß-/Kleinschreibung für normale (nicht binäre)
Zeichenketten:
@example
@@ -33060,7 +32851,7 @@ mysql> select "a" REGEXP "^[a-d]";
@item
@code{REGEXP} und @code{RLIKE} benutzen den aktuellen Zeichensatz
-(vorgabemässig ISO-8859-1 Latin1), wenn über den Typ eines Zeichens
+(vorgabemäßig ISO-8859-1 Latin1), wenn über den Typ eines Zeichens
entschieden wird.
@findex NOT REGEXP
@@ -33086,17 +32877,18 @@ mysql> select STRCMP('text', 'text');
@findex MATCH ... AGAINST()
@item MATCH (spalte1,spalte2,...) AGAINST (ausdruck)
@code{MATCH ... AGAINST()} wird für Volltextsuche benutzt und gibt die
-Relevanz zurück - ein Ähnlichkeitsmass zwischen dem Text in den Spalten
+Relevanz zurück - ein Ähnlichkeitsmaß zwischen dem Text in den Spalten
@code{(spalte1,spalte2,...)} und der Anfrage @code{ausdruck}. Die Relevanz
-ist eine positive Fliesskommazahl. 0 Relevanz bedeutet keine Ähnlichkeit.
+ist eine positive Fließkommazahl. 0 Relevanz bedeutet keine Ähnlichkeit.
Damit @code{MATCH ... AGAINST()} funktioniert, muss zuerst ein
@strong{FULLTEXT}-Index erzeugt werden. @xref{CREATE TABLE, , @code{CREATE TABLE}}. @code{MATCH ... AGAINST()} ist verfügbar ab MySQL-Version 3.23.23.
-Für Details und Benutzungsbeispiele siehe @pxref{Volltextsuche}.
+Für Details und Benutzungsbeispiele siehe @pxref\{Fulltext Search}.
@end table
-@node Operatoren und Gross-/Kleinschreibung, , Zeichenketten-Vergleichsfunktionen, Zeichenketten-Funktionen
-@subsubsection Gross-/Kleinschreibung
+@node Case Sensitivity Operators, , String comparison functions, String functions
+@c German node Operatoren und Groß-/Kleinschreibung
+@subsubsection Groß-/Kleinschreibung
@findex Casts
@@ -33108,7 +32900,7 @@ Für Details und Benutzungsbeispiele siehe @pxref{Volltextsuche}.
@item @code{BINARY}
Der @code{BINARY}-Operator macht die folgende Zeichenkette zu einer binären
Zeichenkette. Das ist eine einfache Möglichkeit, einen Spaltenvergleich
-zwangsweise in Abhängigkeit von der verwendeten Gross-/Kleinschreibung
+zwangsweise in Abhängigkeit von der verwendeten Groß-/Kleinschreibung
durchzuführen, selbst wenn die Spalte nicht als @code{BINARY} oder
@code{BLOB} definiert ist:
@example
@@ -33125,8 +32917,8 @@ effizient zu benutzen, wenn Sie eine indizierte Spalte zu @code{BINARY}
machen.
@end table
-Wenn Sie ein Blob ohne Berücksichtigung der Gross-/Kleinschreibung
-vergleichen wollen, können Sie den Blob jederzeit in Grossschreibung
+Wenn Sie ein Blob ohne Berücksichtigung der Groß-/Kleinschreibung
+vergleichen wollen, können Sie den Blob jederzeit in Großschreibung
umwandeln, bevor Sie den Vergleich durchführen:
@example
@@ -33137,16 +32929,19 @@ Wir planen, bald Casting zwischen unterschiedlichen Zeichensätzen
einzuführen, um Zeichenketten-Vergleiche noch flexibler zu machen.
-@node Numerische Funktionen, Datums- und Zeit-Funktionen, Zeichenketten-Funktionen, Funktionen
+@node Numeric Functions, Date and time functions, String functions, Functions
+@c German node Numerische Funktionen
@subsection Numerische Funktionen
+
+
@menu
-* Arithmetische Funktionen:: Arithmetische Operationen
-* Mathematische Funktionen:: Mathematische Funktionen
+* Arithmetic functions::
+* Mathematical functions::
@end menu
-
-@node Arithmetische Funktionen, Mathematische Funktionen, Numerische Funktionen, Numerische Funktionen
+@node Arithmetic functions, Mathematical functions, Numeric Functions, Numeric Functions
+@c German node Arithmetische Funktionen
@subsubsection Arithmetische Operationen
Es gibt die üblichen arithmetischen Operatoren. Beachten Sie, dass das
@@ -33214,7 +33009,8 @@ Ganzzahl umgewandelt wird!
@end table
-@node Mathematische Funktionen, , Arithmetische Funktionen, Numerische Funktionen
+@node Mathematical functions, , Arithmetic functions, Numeric Functions
+@c German node Mathematische Funktionen
@subsubsection Mathematische Funktionen
Alle mathematischen Funktionen geben im Fehlerfall @code{NULL} zurück.
@@ -33282,7 +33078,7 @@ Diese Funktion kann bei @code{BIGINT}-Werten sicher benutzt werden.
@findex FLOOR()
@item FLOOR(X)
-Gibt den grössten Ganzzahl-Wert zurück, der nicht grösser als @code{X}
+Gibt den größten Ganzzahl-Wert zurück, der nicht größer als @code{X}
ist:
@example
mysql> select FLOOR(1.23);
@@ -33397,7 +33193,7 @@ mysql> select SQRT(20);
@findex PI()
@item PI()
-Gibt den Wert PI zurück. Die vorgabemässig angezeigte Anzahl von
+Gibt den Wert PI zurück. Die vorgabemäßig angezeigte Anzahl von
Dezimalstellen ist 5, aber MySQL benutzt intern die volle doppelte
Genauigkeit für PI.
@example
@@ -33436,7 +33232,7 @@ mysql> select TAN(PI()+1);
@findex ACOS()
@item ACOS(X)
-Gibt den Arcuscosinus von @code{X} zurück, dass heisst den Wert, dessen
+Gibt den Arcuscosinus von @code{X} zurück, dass heißt den Wert, dessen
Cosinus @code{X} ist. Gibt @code{NULL} zurück, wenn @code{X} nicht im
Bereich von @code{-1} bis @code{1} liegt:
@example
@@ -33450,7 +33246,7 @@ mysql> select ACOS(0);
@findex ASIN()
@item ASIN(X)
-Gibt den Arcussinus von @code{X} zurück, das heisst den Wert, dessen Sinus
+Gibt den Arcussinus von @code{X} zurück, das heißt den Wert, dessen Sinus
@code{X} ist. Gibt @code{NULL} zurück, wenn @code{X} nicht im Bereich von
@code{-1} bis @code{1} liegt:
@example
@@ -33462,7 +33258,7 @@ mysql> select ASIN('foo');
@findex ATAN()
@item ATAN(X)
-Gibt den Arcustangens von @code{X} zurück, das heisst den Wert, dessen
+Gibt den Arcustangens von @code{X} zurück, das heißt den Wert, dessen
Tangens @code{X} ist:
@example
mysql> select ATAN(2);
@@ -33497,7 +33293,7 @@ mysql> select COT(0);
@findex RAND()
@item RAND()
@itemx RAND(N)
-Gibt eine Zufallszahl (Fliesskommawert) im Bereich von @code{0} bis
+Gibt eine Zufallszahl (Fließkommawert) im Bereich von @code{0} bis
@code{1.0} zurück. Wenn ein Ganzzahl-Argument @code{N} angegeben wird, wird
es als Ausgangswert benutzt:
@example
@@ -33541,13 +33337,13 @@ Wenn der Rückgabewert in einem @code{REAL}-Zusammenhang benutzt wird oder
alle Argumente Realzahlen sind, werden sie als Realzahlen verglichen.
@item
-Wenn irgend ein Argument eine von der Gross-/Kleinschreibung abhängige
+Wenn irgend ein Argument eine von der Groß-/Kleinschreibung abhängige
Zeichenkette ist, werden die Argumente als Zeichenketten, die von der
-Gross-/Kleinschreibung abhängen, verglichen.
+Groß-/Kleinschreibung abhängen, verglichen.
@item
In sonstigen Fällen werden die Argumente als Zeichenketten verglichen, die
-nicht von der Gross-/Kleinschreibung abhängen:
+nicht von der Groß-/Kleinschreibung abhängen:
@end itemize
@example
@@ -33563,7 +33359,7 @@ In MySQL-Versionen vor Version 3.22.5 können Sie @code{MIN()} statt
@findex GREATEST()
@item GREATEST(X,Y,...)
-Gibt das grösste Argument (das mit dem höchsten Wert) zurück. Die Argumente
+Gibt das größte Argument (das mit dem höchsten Wert) zurück. Die Argumente
werden nach denselben Regeln wie bei @code{LEAST} verglichen:
@example
mysql> select GREATEST(2,0);
@@ -33621,14 +33417,15 @@ Das Obige passiert, weil 10.28 tatsächlich als etwas wie
@end table
-@node Datums- und Zeit-Funktionen, Weitere Funktionen, Numerische Funktionen, Funktionen
+@node Date and time functions, Other Functions, Numeric Functions, Functions
+@c German node Datums- und Zeit-Funktionen
@subsection Datums- und Zeit-Funktionen
@findex Datums- und Zeit-Funktionen
@findex Funktionen, Datums- und Zeit-
Eine Beschreibung des Wertebereichs aller Typen und der gültigen Formate
-für Datums- und Zeitwerte finden Sie unter @ref{Datums- und Zeit-Typen}.
+für Datums- und Zeitwerte finden Sie unter @ref\{Date and time types}.
Hier ist ein Beispiel, das Datums-Funktionen benutzt. Die unten stehende
Anfrage wählt alle Datensätze mit einem @code{datum_spalte}-Wert innerhalb
@@ -33902,7 +33699,7 @@ mysql> SELECT DATE_SUB("1998-01-02", INTERVAL 31 DAY);
Wenn Sie einen Intervallwert angeben, der zu kurz ist (nicht alle
Intervall-Anteile beinhaltet, die vom @code{typ}-Schlüsselwort erwartet
-werden), nimmt MySQL an, dass Sie den äussersten linken Teil des
+werden), nimmt MySQL an, dass Sie den äußersten linken Teil des
Intervallwerts ausgelassen haben. Wenn Sie beispielsweise einen @code{typ}
@code{DAY_SECOND} angeben, wird vom Wert von @code{ausdruck} erwartet, dass
dieser Tages-, Stunden-, Minuten- und Sekunden-Anteile enthält. Wenn Sie
@@ -33926,7 +33723,7 @@ mysql> select date_add("1999-01-01", interval 1 hour);
Wenn Sie wirklich falsche Datumsangaben benutzen, ist das Ergebnis
@code{NULL}. Wenn Sie @code{MONTH}, @code{YEAR_MONTH} oder @code{YEAR}
-hinzuzählen und das Datumsergebnis einen Tag hat, der grösser ist als der
+hinzuzählen und das Datumsergebnis einen Tag hat, der größer ist als der
höchste Tag für den neuen Monat, wird der Tag auf den höchsten Tag des
neuen Monats angepasst:
@@ -33937,7 +33734,7 @@ mysql> select DATE_ADD('1998-01-30', Interval 1 month);
Beachten Sie, dass das Wort @code{INTERVAL} und das
@code{typ}-Schlüsselwort in den vorstehenden Beispielen nicht von der
-verwendeten Gross-/Kleinschreibung abhängen.
+verwendeten Groß-/Kleinschreibung abhängen.
@findex EXTRACT()
@item EXTRACT(typ FROM datum)
@@ -33987,7 +33784,7 @@ berücksichtigt, die verloren gingen, als der Kalender geändert wurde.
@findex DATE_FORMAT()
@item DATE_FORMAT(datum,format)
-Formatiert den @code{datum}-Wert gemäss der @code{format}-Zeichenkette.
+Formatiert den @code{datum}-Wert gemäß der @code{format}-Zeichenkette.
Folgende Spezifikatoren können in der @code{format}-Zeichenkette benutzt
werden:
@multitable @columnfractions .1 .6
@@ -34178,16 +33975,19 @@ mysql> select TIME_TO_SEC('00:39:38');
@end table
-@node Weitere Funktionen, , Datums- und Zeit-Funktionen, Funktionen
+@node Other Functions, Group by functions, Date and time functions, Functions
+@c German node Weitere Funktionen
@subsection Weitere Funktionen
+
+
@menu
-* Bit-Funktionen:: Bit-Funktionen
-* Verschiedene Funktionen:: Verschiedene Funktionen
+* Bit functions::
+* Miscellaneous functions::
@end menu
-
-@node Bit-Funktionen, Verschiedene Funktionen, Weitere Funktionen, Weitere Funktionen
+@node Bit functions, Miscellaneous functions, Other Functions, Other Functions
+@c German node Bit-Funktionen
@subsubsection Bit-Funktionen
@findex arithmetische Funktionen
@@ -34251,7 +34051,8 @@ mysql> select BIT_COUNT(29);
@end table
-@node Verschiedene Funktionen, , Bit-Funktionen, Weitere Funktionen
+@node Miscellaneous functions, , Bit functions, Other Functions
+@c German node Verschiedene Funktionen
@subsubsection Verschiedene Funktionen
@findex Verschiedene Funktionen
@@ -34567,23 +34368,161 @@ um das Testen der Replikation zu erleichtern.
@end table
-@node Datenmanipulation, Datendefinition, Funktionen, Referenz
+@node Group by functions, , Other Functions, Functions
+@c German node GROUP-BY-Funktionen
+@subsection Funktionen zur Benutzung bei @code{GROUP BY}-Klauseln
+
+@findex GROUP-BY-Funktionen
+@findex Funktionen, GROUP BY
+
+Wenn Sie in einem Statement eine Gruppierungsfunktion benutzen, die
+keine @code{GROUP BY}-Klausel enthält, ist das gleichbedeutend mit der
+Gruppierung aller Zeilen.
+
+@table @code
+@findex COUNT()
+@item COUNT(ausdruck)
+Gibt die Anzahl der Zeilen mit Nicht-@code{NULL}-Werten zurück, die
+durch ein @code{SELECT}-Statement abgerufen werden:
+
+@example
+mysql> select student.student_name,COUNT(*)
+ from student,kurs
+ where student.student_id=kurs.student_id
+ GROUP BY student_name;
+
+@end example
+
+@code{COUNT(*)} ist insofern anders, als es die Anzahl der abgerufenen
+Zeilen zurückgibt, egal ob sie @code{NULL}-Werte enthalten oder nicht.
+
+@code{COUNT(*)} ist darauf optimiert, das Ergebnis sehr schnell
+zurückzugeben, wenn es mittels eines @code{SELECT} von einer Tabelle
+abruft, wenn keine weiteren Spalten abgerufen werden und es keine
+@code{WHERE}-Klausel gibt. Beispiel:
+
+@example
+mysql> select COUNT(*) from student;
+@end example
+
+@findex COUNT(DISTINCT)
+@findex DISTINCT
+@item COUNT(DISTINCT ausdruck,[ausdruck...])
+Gibt die Anzahl unterschiedlicher Nich-@code{NULL}-Werte zurück:
+
+@example
+mysql> select COUNT(DISTINCT ergebnisse) from student;
+@end example
+
+Bei MySQL erhalten Sie die Anzahl unterschiedlicher
+Ausdruckskombinationen, die nicht NULL enthalten, indem Sie eine Liste
+von Ausdrücken angeben. In ANSI-SQL müssten Sie eine Verkettung aller
+Ausdrücke innerhalb von @code{CODE(DISTINCT ..)} angeben.
+
+@findex AVG()
+@item AVG(ausdruck)
+Gibt den Durchschnittswert von @code{ausdruck} zurück:
+
+@example
+mysql> select student_name, AVG(test_ergebnis)
+ from student
+ GROUP BY student_name;
+@end example
+
+@findex MIN()
+@findex MAX()
+@item MIN(ausdruck)
+@itemx MAX(ausdruck)
+Gibt den kleinsten oder größten Wert von @code{ausdruck} zurück.
+@code{MIN()} und @code{MAX()} können Zeichenketten-Argumente aufnehmen
+und geben in solchen Fällen den kleinsten oder größten Zeichenketten-
+Wert zurück. @xref\{MySQL indexes}.
+
+@example
+mysql> select student_name, MIN(test_ergebnis), MAX(test_ergebnis)
+ from student
+ GROUP BY student_name;
+@end example
+
+@findex SUM()
+@item SUM(ausdruck)
+Gibt die Summe von @code{ausdruck} zurück. Beachten Sie, dass der
+Rückgabewert NULL ist, wenn die Ergebnismenge keine Zeilen hat!
+
+@findex STD()
+@findex STDDEV()
+@cindex Oracle-Kompatibilität
+@cindex Kompatibilität, mit Oracle
+@item STD(ausdruck)
+@itemx STDDEV(ausdruck)
+Gibt die Standardabweichung von @code{ausdruck} zurück. Das ist eine
+Erweiterung zu ANSI-SQL. Die @code{STDDEV()}-Form dieser Funktion wird
+aus Gründen der Oracle-Kompatibilität zur Verfügung gestellt.
+
+@findex BIT_OR()
+@item BIT_OR(ausdruck)
+Gibt das bitweise @code{OR} aller Bits in @code{ausdruck} zurück. Die
+Berechnung wird mit 64-Bit-(@code{BIGINT})-Genauigkeit durchgeführt.
+
+@findex BIT_AND()
+@item BIT_AND(ausdruck)
+Gibt das bitweise @code{AND} aller Bits in @code{ausdruck} zurück. Die
+Berechnung wird mit 64-Bit-(@code{BIGINT})-Genauigkeit durchgeführt.
+@end table
+
+@cindex @code{GROUP BY}, Erweiterungen zu ANSI-SQL
+MySQL hat die Benutzung von @code{GROUP BY} erweitert. Sie können
+Spalten oder Berechnungen im @code{SELECT}-Ausdruck angeben, die nicht
+im @code{GROUP BY}-Teil erscheinen. Das steht für @emph{jeden möglichen
+Wert für diese Gruppe}. Das können Sie benutzen, um bessere Performance
+zu erzielen, indem Sie Sortieren und Gruppieren unnötiger Bestandteile
+vermeiden. Zum Beispiel müssen Sie in folgender Anfrage nicht nach
+@code{kunde.name} gruppieren:
+
+@example
+mysql> select bestellung.kunde_id,kunde.name,max(zahlungen)
+ from bestellung,kunde
+ where bestellung.kunde_id = kunde.kunde_id
+ GROUP BY bestellung.kunde_id;
+@end example
+
+In ANSI-SQL müssten Sie der @code{GROUP BY}-Klausel @code{kunde.name}
+hinzufügen. In MySQL ist der Name überflüßig, solange Sie nicht im
+ANSI-Modus fahren.
+
+@strong{Benutzen Sie dieses Feature nicht}, wenn die Spalten, die Sie im
+@code{GROUP BY}-Teil auslassen, in der Gruppe nicht eindeutig sind!
+Sonst erhalten Sie unvorhersagbare Ergebnisse.
+
+In einigen Fällen können Sie @code{MIN()} und @code{MAX()} benutzen, um
+einen bestimmten Spaltenwert zu erhalten, selbst wenn er nicht eindeutig
+ist. Folgendes gibt den Wert von @code{spalte} aus der Zeile zurück, die
+den kleinsten Wert in der @code{sortierung}-Spalte enthält:
+
+@example
+substr(MIN(concat(rpad(sortierung,6,' '),spalte)),7)
+@end example
+
+@node Data Manipulation, Data Definition, Functions, Reference
+@c German node Datenmanipulation
@section Datenmanipulation: @code{SELECT}, @code{INSERT}, @code{UPDATE}, @code{DELETE}
+
@menu
-* SELECT:: @code{SELECT}-Syntax
-* UNION::
-* INSERT:: @code{INSERT}-Syntax
-* INSERT DELAYED:: @code{INSERT DELAYED}-Syntax
-* UPDATE:: @code{UPDATE}-Syntax
-* DELETE:: @code{DELETE}-Syntax
-* TRUNCATE:: @code{TRUNCATE}-Syntax
-* REPLACE:: @code{REPLACE}-Syntax
-* LOAD DATA:: @code{LOAD DATA INFILE}-Syntax
+* SELECT::
+* HANDLER::
+* INSERT::
+* INSERT DELAYED::
+* UPDATE::
+* DELETE::
+* TRUNCATE::
+* REPLACE::
+* LOAD DATA::
@end menu
-@node SELECT, UNION, Datenmanipulation, Datenmanipulation
+@node SELECT, HANDLER, Data Manipulation, Data Manipulation
+@c German node SELECT
@subsection @code{SELECT}-Syntax
@findex SELECT
@@ -34646,7 +34585,7 @@ Sie können auf eine Spalte als @code{spalten_name} verweisen, als
@code{tabelle.spalten_name} oder als @code{datenbank.tabelle.spalten_name}.
Sie müssen das @code{tabelle}- oder @code{datenbank.tabelle}-Präfix für
einen Spaltenverweis in einem @code{SELECT}-Statement nicht angeben, es sei
-denn, der Verweis wäre ansonsten mehrdeutig. Sie @ref{Erlaubte Namen}; hier
+denn, der Verweis wäre ansonsten mehrdeutig. Sie @ref\{Legal names}; hier
finden sich Beispiele von Mehrdeutigkeit, die erfordern, dass Sie
ausführlichere Spaltenverweis-Formen benutzen.
@@ -34685,7 +34624,7 @@ das @code{ASC}-Schlüsselwort verwenden.
@item
In der @code{WHERE}-Klausel können Sie beliebige Funktionen verwenden, die
-MySQL unterstützt. @xref{Funktionen}.
+MySQL unterstützt. @xref\{Functions}.
@item
Die @code{HAVING}-Klausel kann auf jede Spalte oder jeden Alias verweisen,
@@ -34742,7 +34681,7 @@ Schlüssel auf den @code{GROUP BY}-Elementen.
@item
@cindex @code{GROUP BY}, Erweiterungen zu ANSI-SQL
-Wenn Sie @code{GROUP BY} benutzen, werden die Ausgabe-Zeilen gemäss dem
+Wenn Sie @code{GROUP BY} benutzen, werden die Ausgabe-Zeilen gemäß dem
@code{GROUP BY} sortiert, als hätten Sie ein @code{ORDER BY} für alle
Felder im @code{GROUP BY} angegeben. MySQL hat @code{GROUP BY} erweitert,
so dass Sie dafür auch @code{ASC} und @code{DESC} angeben können:
@@ -34880,11 +34819,14 @@ schreib-gesperrt.
@end itemize
+
@menu
-* JOIN:: @code{JOIN}-Syntax
+* JOIN::
+* UNION::
@end menu
-@node JOIN, , SELECT, SELECT
+@node JOIN, UNION, SELECT, SELECT
+@c German node JOIN
@subsubsection @code{JOIN}-Syntax
@findex JOIN
@@ -34973,7 +34915,7 @@ Dieses Beispiel findet alle Zeilen in @code{tabelle1} mit einem
@code{id}-Wert, der in @code{tabelle2} nicht vorhanden ist (also alle
Zeilen in @code{tabelle1} ohne entsprechende Zeile in @code{tabelle2}).
Hierbei wird natürlich angenommen, dass @code{tabelle2.id} als @code{NOT
-NULL} deklariert ist. @xref{LEFT-JOIN-Optimierung}.
+NULL} deklariert ist. @xref\{LEFT JOIN optimisation}.
@item
Die @code{USING}-@code{(spalten_liste)}-Klausel nennt eine Auflistung von
@@ -35035,11 +34977,12 @@ mysql> select * from tabelle1 IGNORE INDEX (schluessel3) WHERE schluessel1=1 und
schluessel3=3;
@end example
-@xref{LEFT-JOIN-Optimierung, , @code{LEFT JOIN}-Optimierung}.
+@xref\{LEFT JOIN optimisation, , @code{LEFT JOIN}-Optimierung}.
-@node UNION, INSERT, SELECT, Datenmanipulation
-@subsection @code{UNION}-Syntax
+@node UNION, , JOIN, SELECT
+@c German node UNION
+@subsubsection @code{UNION}-Syntax
@findex UNION
@@ -35072,7 +35015,8 @@ alle zurückgegebenen Zeilen eindeutig (unique), als hätten Sie ein
angeben, erhalten Sie alle übereinstimmenden Zeilen von allen benutzten
@code{SELECT}-Statements.
-@node INSERT, INSERT DELAYED, UNION, Datenmanipulation
+@node HANDLER, INSERT, SELECT, Data Manipulation
+@c German node INSERT
@subsection @code{INSERT}-Syntax
@findex INSERT
@@ -35137,7 +35081,7 @@ von @code{INSERT} verzögert, bis kein anderer Client mehr aus der Tabelle
liest. In diesem Fall muss der Client warten, bis das INSERT-Statement
fertig ist, was lange Zeit dauern kann, wenn die Tabelle stark benutzt
wird. Das ist im Gegensatz zu @code{INSERT DELAYED}, was den Client sofort
-weitermachen lässt. @xref{INSERT DELAYED}. Beachten Sie, dass
+weitermachen läßt. @xref{INSERT DELAYED}. Beachten Sie, dass
@code{LOW_PRIORITY} normalerweise nicht bei @code{MyISAM}-Tabellen benutzt
werden sollte, weil dadurch gleichzeitige Einfügeoperationen verhindert
werden. @xref{MyISAM}.
@@ -35156,7 +35100,7 @@ eingefügt wurden.
Wenn MySQL mit der @code{DONT_USE_DEFAULT_FIELDS}-Option konfiguriert
wurde, erzeugen @code{INSERT}-Statements einen Fehler, wenn Sie nicht
explizit Werte für alle Spalten angeben, die einen Nicht-@code{NULL}-Wert
-erfordern. @xref{Optionen konfigurieren, , @code{configure}-Optionen}.
+erfordern. @xref\{configure options, , @code{configure}-Optionen}.
@item
Den Wert, der für eine @code{AUTO_INCREMENT}-Spalte benutzt wurde, finden
@@ -35208,15 +35152,71 @@ Spaltentyp nicht zulässig ist. Die Spalte wird auf den entsprechenden
0-Wert für diesen Typ gesetzt.
@end itemize
+@findex HANDLER
+@node INSERT, INSERT DELAYED, HANDLER, Data Manipulation
+@c German node HANDLER
+@subsection @code{HANDLER}-Syntax
+
+@example
+HANDLER tabelle OPEN [ AS alias ]
+HANDLER tabelle READ index @{ = | >= | <= | < @} (wert1, wert2, ... ) [ WHERE ... ] [LIMIT ... ]
+HANDLER tabelle READ index @{ FIRST | NEXT | PREV | LAST @} [ WHERE ... ] [LIMIT ... ]
+HANDLER tabelle READ @{ FIRST | NEXT @} [ WHERE ... ] [LIMIT ... ]
+HANDLER tabelle CLOSE
+@end example
+
+Das @code{HANDLER}-Statement ermöglicht direkten Zugriff auf die
+MySQL-Tabellenschnittstelle unter Umgehung des SQL-Optimierers. Daher ist
+es schneller als SELECT.
+
+Die erste Form des @code{HANDLER}-Statements öffnet eine Tabelle und macht
+sie über die folgenden @code{HANDLER ... READ}-Routinen zugänglich. Dieses
+Tabellenobjekt wird nicht mit anderen Threads geteilt und wird nicht
+geschlossen, bis der Thread @code{HANDLER tabelle CLOSE} aufruft oder
+stirbt.
+
+Die zweite Form holt eine (oder mehrere, festgelegt durch die
+@code{LIMIT}-Klausel) Zeile, bei der der angegebene Index mit der Bedingung
+übereinstimmt und die @code{WHERE}-Bedingung erfüllt ist. Wenn der Index
+aus mehreren Teilen besteht (also mehrere Spalten überspannt), werden die
+Werte in einer Komma-getrennten Liste angegeben, wobei es möglich ist, nur
+Werte für einige erste Spalten anzugeben.
+
+Die dritte Form holt eine (oder mehrere, festgelegt durch die
+@code{LIMIT}-Klausel) Zeile in Index-Reihenfolge aus der Tabelle, bei der
+die @code{WHERE}-Bedingung erfüllt ist.
+
+Die vierte Form (ohne Index-Angabe) holt eine (oder mehrere, festgelegt
+durch die @code{LIMIT}-Klausel) Zeile in natürlicher Zeilenreihenfolge aus
+der Tabelle (wie in der Daten-Datei gespeichert), bei der die
+@code{WHERE}-Bedingung erfüllt ist. Das ist schneller als @code{HANDLER
+tabelle READ index}, wenn ein kompletter Tabellen-Scan erwünscht ist.
+
+Die letzte Form schließt eine mit @code{HANDLER ... OPEN} geöffnete
+Tabelle.
+
+@code{HANDLER} ist in gewisser Hinsicht ein Statement auf niedriger Ebene
+(Low-Level), dass zum Beispiel keine Konsistenz gewährleistet. Das heißt,
+@code{HANDLER ... OPEN} nimmt @strong{KEINEN} Schnappschuss der Tabelle auf
+und sperrt die Tabelle @strong{NICHT}. Das bedeutet, dass nach
+@code{HANDLER ... OPEN} Tabellendaten verändert werden können (durch diesen
+oder einen anderen Thread) und dass diese Veränderungen nur teilweise in
+@code{HANDLER ... NEXT}- oder @code{HANDLER ... PREV}-Scans erscheinen.
+
+
+
+
@findex REPLACE ... SELECT
@findex INSERT ... SELECT
+
+
@menu
-* INSERT SELECT:: @code{INSERT ... SELECT}-Syntax
+* INSERT SELECT::
@end menu
-
@node INSERT SELECT, , INSERT, INSERT
+@c German node INSERT SELECT
@subsubsection @code{INSERT ... SELECT}-Syntax
@example
@@ -35248,11 +35248,11 @@ könnte die Situation schnell sehr verwirrend werden!)
@item
Sie können die C-API-Funktion @code{mysql_info()} benutzen, um
-Informationen über die Anfrage zu erhalten. @xref{INSERT}.
+Informationen über die Anfrage zu erhalten. @xref\{HANDLER}.
@item
Um sicherzustellen, dass die Update-Log-Datei/Binär-Log-Datei benutzt
-werden kann, um die Original-Tabellenlänge neu zu erzeugen, lässt MySQL
+werden kann, um die Original-Tabellenlänge neu zu erzeugen, läßt MySQL
während @code{INSERT .... SELECT} keine gleichzeitigen Einfügeoperationen
zu.
@end itemize
@@ -35261,7 +35261,8 @@ Sie können natürlich @code{REPLACE} anstelle von @code{INSERT} benutzen, um
alte Zeilen zu überschreiben.
-@node INSERT DELAYED, UPDATE, INSERT, Datenmanipulation
+@node INSERT DELAYED, UPDATE, INSERT, Data Manipulation
+@c German node INSERT DELAYED
@subsection @code{INSERT DELAYED}-Syntax
@findex INSERT DELAYED
@@ -35291,13 +35292,13 @@ Wenn Sie @code{INSERT DELAYED} benutzen, erhält der Client sofort ein Okay,
und die Zeile wird eingefügt, wenn die Tabelle nicht mehr durch einen
anderen Thread in Benutzung ist.
-Ein weiterer grosser Vorteil von @code{INSERT DELAYED} ist, dass
+Ein weiterer großer Vorteil von @code{INSERT DELAYED} ist, dass
Einfügeoperationen vieler Clients gebündelt und in einem Block geschrieben
werden. Das ist viel schneller als viele separate Inserts durchzuführen.
Beachten Sie, dass momentan die Zeilen in der Warteschlange solange nur im
Arbeitsspeicher gehalten werden, bis sie in die Tabelle eingefügt sind. Das
-heisst, wenn Sie @code{mysqld} auf die harte Tour killen (@code{kill -9})
+heißt, wenn Sie @code{mysqld} auf die harte Tour killen (@code{kill -9})
oder wenn @code{mysqld} unerwartet stirbt, sind Zeilen in der
Warteschlange, die noch nicht auf Festplatte geschrieben wurden, verloren!
@@ -35399,11 +35400,12 @@ Beachten Sie, dass @code{INSERT DELAYED} langsamer ist als ein normales
INSERT, wenn die Tabelle nicht in Benutzung ist. Ausserdem gibt es einen
zusätzlichen Overhead für den Server, um einen separaten Thread für jede
Tabelle zu handhaben, für die Sie @code{INSERT DELAYED} benutzen. Das
-heisst, Sie sollten @code{INSERT DELAYED} nur benutzen, wenn Sie es
+heißt, Sie sollten @code{INSERT DELAYED} nur benutzen, wenn Sie es
wirklich benötigen!
-@node UPDATE, DELETE, INSERT DELAYED, Datenmanipulation
+@node UPDATE, DELETE, INSERT DELAYED, Data Manipulation
+@c German node UPDATE
@subsection @code{UPDATE}-Syntax
@findex UPDATE
@@ -35461,7 +35463,8 @@ In MySQL-Version 3.23 können Sie @code{LIMIT #} benutzen, um
sicherzustellen, dass nur eine angegebene Anzahl von Zeilen geändert wird.
-@node DELETE, TRUNCATE, UPDATE, Datenmanipulation
+@node DELETE, TRUNCATE, UPDATE, Data Manipulation
+@c German node DELETE
@subsection @code{DELETE}-Syntax
@findex DELETE
@@ -35509,11 +35512,11 @@ Arten von Löschvorgängen beschleunigen kann.
In MyISAM-Tabellen werden gelöschte Datensätze in einer verknüpften Liste
verwaltet und nachfolgende @code{INSERT}-Operationen benutzen alte
-Datensatzpositionen neu. Um unbenutzten Platz freizugeben und Dateigrössen
+Datensatzpositionen neu. Um unbenutzten Platz freizugeben und Dateigrößen
zu verringern, benutzen Sie das @code{OPTIMIZE TABLE}-Statement oder das
@code{myisamchk}-Dienstprogramm, um die Tabellen neu zu organisieren.
@code{OPTIMIZE TABLE} ist einfacher, aber @code{myisamchk} ist schneller.
-Siehe @ref{OPTIMIZE TABLE, , @code{OPTIMIZE TABLE}} und @ref{Optimierung}.
+Siehe @ref{OPTIMIZE TABLE, , @code{OPTIMIZE TABLE}} und @ref\{Optimisation}.
Das Multi-Tabellen-Löschformat wird ab MySQL 4.0.0 unterstützt.
@@ -35557,7 +35560,8 @@ Zeit beansprucht. Sie können den @code{DELETE}-Befehl einfach wiederholen,
bis die Anzahl betroffener Zeilen kleiner ist als der @code{LIMIT}-Wert.
-@node TRUNCATE, REPLACE, DELETE, Datenmanipulation
+@node TRUNCATE, REPLACE, DELETE, Data Manipulation
+@c German node TRUNCATE
@subsection @code{TRUNCATE}-Syntax
@findex TRUNCATE
@@ -35589,7 +35593,8 @@ Index-Dateien beschädigt wurden.
@code{TRUNCATE} ist eine Oracle-SQL-Erweiterung.
-@node REPLACE, LOAD DATA, TRUNCATE, Datenmanipulation
+@node REPLACE, LOAD DATA, TRUNCATE, Data Manipulation
+@c German node REPLACE
@subsection @code{REPLACE}-Syntax
@findex REPLACE
@@ -35609,7 +35614,7 @@ or REPLACE [LOW_PRIORITY | DELAYED]
@code{REPLACE} funktioniert genau wie @code{INSERT}, ausser dass der alte
Datensatz gelöscht wird, bevor ein neuer eingefügt wird, wenn ein alter
Datensatz in der Tabelle denselben Wert wie der neue auf einem eindeutigen
-Index hat. @xref{INSERT, , @code{INSERT}}.
+Index hat. @xref\{HANDLER, , @code{INSERT}}.
Mit anderen Worten können Sie auf die Werte einer alten Zeile nicht mit
einem @code{REPLACE}-Statement zugreifen. In einigen alten MySQL-Versionen
@@ -35625,7 +35630,8 @@ Das macht es einfach zu überprüfen, ob @code{REPLACE} eine Zeile
hinzugefügt oder eine ersetzt hat.
-@node LOAD DATA, , REPLACE, Datenmanipulation
+@node LOAD DATA, , REPLACE, Data Manipulation
+@c German node LOAD DATA
@subsection @code{LOAD DATA INFILE}-Syntax
@findex LOAD DATA INFILE
@@ -35654,7 +35660,7 @@ Aus Sicherheitsgründen müssen Dateien, die als auf dem Server liegende
Textdateien eingelesen werden, entweder im Datenbank-Verzeichnis liegen
oder von allen lesbar sein. Darüber hinaus brauchen Sie, wenn Sie
@code{LOAD DATA INFILE} mit Server-Dateien benutzen, die
-@strong{file}-Berechtigung auf dem Server-Host. @xref{Berechtigungen}.
+@strong{file}-Berechtigung auf dem Server-Host. @xref\{Privileges}.
Wenn Sie das Schlüsselwort @code{LOW_PRIORITY} angeben, wird das
@code{LOAD DATA}-Statement verzögert, bis keine anderen Clients mehr aus
@@ -35732,7 +35738,7 @@ der Rest der Textdatei wird ignoriert.
Wenn Sie Daten aus einer lokalen Datei mit dem @code{LOCAL}-Schlüsselwort
laden, hat der Server keine Möglichkeit, die Übertragung der Datei mitten
-in einer Operation zu beenden. Daher ist das vorgabemässige Verhalten
+in einer Operation zu beenden. Daher ist das vorgabemäßige Verhalten
dasselbe, als wenn @code{IGNORE} angegeben wäre.
Wenn Sie @code{LOAD DATA INFILE} auf einer leeren @code{MyISAM}-Tabelle
@@ -35894,7 +35900,7 @@ Ausgabe (mit Kommas als Feldbegrenzern) ist unten dargestellt:
@end example
Wenn Sie @code{OPTIONALLY} angeben, wird das @code{ENCLOSED BY}-Zeichen nur
-benutzt, um @code{CHAR}- und @code{VARCHAR}-Felder zu umschliessen:
+benutzt, um @code{CHAR}- und @code{VARCHAR}-Felder zu umschließen:
@example
1,"eine Zeichenkette",100.20
@@ -35967,7 +35973,7 @@ als ASCII-@code{0} interpretiert (ein Byte mit Wert 0) und @code{NULL}.
Siehe unten zu den Regeln der @code{NULL}-Handhabung.
Weitere Informationen über die @samp{\}-Escape-Syntax finden Sie unter
-@ref{Literale}.
+@ref\{Literals}.
In bestimmten Fällen beeinflussen sich die Handhabungsoptionen für Felder
und Zeilen gegenseitig:
@@ -35987,7 +35993,7 @@ als @code{INT(7)} deklariert ist, werden Werte für die Spalte mit
7-Zeichen-Feldern geschrieben. Bei der Eingabe werden Werte für die Spalte
mit 7-Zeichen-Feldern bezogen. Festzeilenformate beeinflussen auch die
Handhabung von @code{NULL}-Werten (siehe unten). Beachten Sie, dass
-Festgrössenformate nicht funktionieren, wenn Sie einen
+Festgrößenformate nicht funktionieren, wenn Sie einen
Multi-Byte-Zeichensatz benutzen.
@end itemize
@@ -35996,7 +36002,7 @@ Die Handhabung von @code{NULL}-Werten variiert in Abhängigkeit von den
@itemize @bullet
@item
-Bei den vorgabemässigen @code{FIELDS}- und @code{LINES}-Werten wird
+Bei den vorgabemäßigen @code{FIELDS}- und @code{LINES}-Werten wird
@code{NULL} für die Ausgabe als @code{\N} geschrieben und @code{\N} als
@code{NULL} für die Eingabe gelesen (unter der Annahme, dass das
@code{ESCAPED BY}-Zeichen @samp{\} ist).
@@ -36026,7 +36032,7 @@ Einige Fälle werden von @code{LOAD DATA INFILE} nicht unterstützt:
@itemize @bullet
@item
-Festgrössenzeilen (@code{FIELDS TERMINATED BY} und @code{FIELDS ENCLOSED
+Festgrößenzeilen (@code{FIELDS TERMINATED BY} und @code{FIELDS ENCLOSED
BY} sind beide leer) und @code{BLOB}- oder @code{TEXT}-Spalten.
@item
@@ -36088,7 +36094,7 @@ Bei numerischen Typen wird die Spalte auf @code{0} gesetzt.
@item
Bei Datums- und Zeit-Typen wird die Spalte auf den entsprechenden
``0''-Wert für den Typ gesetzt.
-@xref{Datums- und Zeit-Typen}.
+@xref\{Date and time types}.
@end itemize
Beachten Sie, dass das dieselben Werte sind, die sich ergeben, wenn Sie
@@ -36122,7 +36128,7 @@ Records: 1 Deleted: 0 Skipped: 0 Warnings: 0
@end example
Warnungen erfolgen unter denselben Umständen, als wenn Werte über das
-@code{INSERT}-Statement (@pxref{INSERT, , @code{INSERT}}) eingefügt werden,
+@code{INSERT}-Statement (@pxref\{HANDLER, , @code{INSERT}}) eingefügt werden,
ausser dass @code{LOAD DATA INFILE} zusätzlich Warnungen erzeugt, wenn es
zu wenige oder zu viele Felder in der Eingabezeile gibt. Die Warnungen
werden nirgendwo gespeichert; die Anzahl von Warnungen kann daher nur als
@@ -36146,25 +36152,28 @@ Wenn Sie eine MySQL-Version vor 3.23.25 benutzen, können Sie das nur mit
Weitere Informationen über die Effizienz von @code{INSERT} versus
@code{LOAD DATA INFILE} und Möglichkeiten, die Geschwindigkeit zu steigern,
-finden Sie unter @code{LOAD DATA INFILE}, @xref{INSERT-Geschwindigkeit}.
+finden Sie unter @code{LOAD DATA INFILE}, @xref\{Insert speed}.
-@node Datendefinition, Grundlegende Benutzerbefehle, Datenmanipulation, Referenz
+@node Data Definition, Basic User Commands, Data Manipulation, Reference
+@c German node Datendefinition
@section Datendefinition: @code{CREATE}, @code{DROP}, @code{ALTER}
+
+
@menu
-* CREATE DATABASE:: @code{CREATE DATABASE}-Syntax
-* DROP DATABASE:: @code{DROP DATABASE}-Syntax
-* CREATE TABLE:: @code{CREATE TABLE}-Syntax
-* ALTER TABLE:: @code{ALTER TABLE}-Syntax
-* RENAME TABLE:: @code{RENAME TABLE}-Syntax
-* DROP TABLE:: @code{DROP TABLE}-Syntax
-* CREATE INDEX:: @code{CREATE INDEX}-Syntax
-* DROP INDEX:: @code{DROP INDEX}-Syntax
+* CREATE DATABASE::
+* DROP DATABASE::
+* CREATE TABLE::
+* ALTER TABLE::
+* RENAME TABLE::
+* DROP TABLE::
+* CREATE INDEX::
+* DROP INDEX::
@end menu
-
-@node CREATE DATABASE, DROP DATABASE, Datendefinition, Datendefinition
+@node CREATE DATABASE, DROP DATABASE, Data Definition, Data Definition
+@c German node CREATE DATABASE
@subsection @code{CREATE DATABASE}-Syntax
@findex CREATE DATABASE
@@ -36173,9 +36182,10 @@ finden Sie unter @code{LOAD DATA INFILE}, @xref{INSERT-Geschwindigkeit}.
CREATE DATABASE [IF NOT EXISTS] datenbank
@end example
+@c German FIX unwrapped @ref
@code{CREATE DATABASE} erzeugt eine Datenbank mit dem angegebenen Namen.
-Die Regeln für erlaubte Datenbanknamen finden Sie unter @ref{Erlaubte
-Namen}. Ein Fehler tritt auf, wenn die Datenbank bereits existiert und Sie
+Die Regeln für erlaubte Datenbanknamen finden Sie unter @ref\{Legal names}.
+Ein Fehler tritt auf, wenn die Datenbank bereits existiert und Sie
@code{IF NOT EXISTS} nicht angeben.
Datenbanken sind in MySQL als Verzeichnisse implementiert, die Dateien
@@ -36186,10 +36196,11 @@ MySQL-Daten-Verzeichnis.
@cindex @code{mysqladmin}
Sie können auch mit @code{mysqladmin} Datenbanken erzeugen.
-@xref{Clientseitige Skripte}.
+@xref\{Client-Side Scripts}.
-@node DROP DATABASE, CREATE TABLE, CREATE DATABASE, Datendefinition
+@node DROP DATABASE, CREATE TABLE, CREATE DATABASE, Data Definition
+@c German node DROP DATABASE
@subsection @code{DROP DATABASE}-Syntax
@findex DROP DATABASE
@@ -36227,26 +36238,16 @@ Datenbank nicht existiert.
@cindex @code{mysqladmin}
Sie können Datenbanken auch mit @code{mysqladmin} löschen.
-@xref{Clientseitige Skripte}.
+@xref\{Client-Side Scripts}.
-@menu
-* CREATE TABLE:: @code{CREATE TABLE}-Syntax
-* ALTER TABLE:: @code{ALTER TABLE}-Syntax
-* RENAME TABLE:: @code{RENAME TABLE}-Syntax
-* DROP TABLE:: @code{DROP TABLE}-Syntax
-* CREATE INDEX:: @code{CREATE INDEX}-Syntax
-* DROP INDEX:: @code{DROP INDEX}-Syntax
-@end menu
-@node CREATE TABLE, ALTER TABLE, DROP DATABASE, Datendefinition
+@node CREATE TABLE, ALTER TABLE, DROP DATABASE, Data Definition
+@c German node CREATE TABLE
@subsection @code{CREATE TABLE}-Syntax
@findex CREATE TABLE
-@menu
-* Stille Spaltentyp-Änderungen:: Stille Spaltentyp-Änderungen
-@end menu
@example
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tabelle [(create_definition,...)]
@@ -36329,7 +36330,7 @@ select_statement:
@code{CREATE TABLE} erzeugt eine Tabelle mit dem angegebenen Namen in der
aktuellen Datenbank. Die Regeln für erlaubte Tabellennamen finden Sie unter
-@ref{Erlaubte Namen}. Ein Fehler tritt auf, wenn es keine aktuelle
+@ref\{Legal names}. Ein Fehler tritt auf, wenn es keine aktuelle
Datenbank gibt oder wenn die Tabelle bereits existiert.
Ab MySQL-Version 3.22 kann der Tabellenname als @code{datenbank.tabelle}
@@ -36361,7 +36362,7 @@ Sie:
@end multitable
Weitere Information über die Eigenschaften der verschiedenen Spaltentypen
-finden Sie unter @ref{Spaltentypen}:
+finden Sie unter @ref\{Column types}:
@itemize @bullet
@item
@@ -36372,7 +36373,7 @@ behandelt, als wenn @code{NULL} angegeben worden wäre.
Eine Ganzzahl-Spalte kann das zusätzliche Attribut @code{AUTO_INCREMENT}
haben. Wenn Sie einen Wert von @code{NULL} (empfohlen) oder @code{0} in
eine @code{AUTO_INCREMENT}-Spalte einfügen, wird die Spalte auf
-@code{wert+1} gesetzt, wobei @code{wert} der grösste momentan in der
+@code{wert+1} gesetzt, wobei @code{wert} der größte momentan in der
Tabelle vorhandene Spaltenwert ist. @code{AUTO_INCREMENT}-Folgen fangen mit
@code{1} an. @xref{mysql_insert_id, , @code{mysql_insert_id()}}.
@@ -36388,7 +36389,7 @@ von Neuem an.
geben und diese muss indiziert sein. MySQL-Version 3.23 funktioniert
darüber hinaus nur korrekt, wenn die @code{AUTO_INCREMENT}-Spalte nur
positive Werte hat. Das Einfügen einer negativen Zahl wird als Einfügen
-einer sehr grossen positiven Zahl betrachtet. Damit werden
+einer sehr großen positiven Zahl betrachtet. Damit werden
Genauigkeitsprobleme vermieden, wenn Zahlen vom positiven zum negativen
Bereich übergehen. Ausserdem wird sichergestellt, dass man nicht
versehentlich eine @code{AUTO_INCREMENT}-Spalte erhält, die 0 enthält.
@@ -36443,7 +36444,7 @@ nächste Wert in der Folge.
Bei Datums- und Zeit-Typen ausser @code{TIMESTAMP} ist der Vorgabewert der
entsprechende 0-Wert für den Typ. Bei der ersten @code{TIMESTAMP}-Spalte
einer Tabelle ist der Vorgabewert das aktuelle Datum und die aktuelle Zeit.
-@xref{Datums- und Zeit-Typen}.
+@xref\{Date and time types}.
@item
Bei Zeichenketten-Typen ausser @code{ENUM} ist der Vorgabewert die leere
@@ -36451,7 +36452,7 @@ Zeichenkette. Bei @code{ENUM} ist der Vorgabewert der erste
Aufzählungswert.
@end itemize
-Vorgabewerte müssen Konstanten sein. Das heisst zum Beispiel, dass Sie den
+Vorgabewerte müssen Konstanten sein. Das heißt zum Beispiel, dass Sie den
Vorgabewert einer DATE-Spalte nicht als Wert einer Funktion wie
@code{NOW()} oder @code{CURRENT_DATE} setzen können.
@@ -36504,7 +36505,7 @@ Spalten als @code{NOT NULL} deklarieren, sonst tritt ein Fehler auf.
Mit der @code{spalten_name(laenge)}-Syntax können Sie einen Index
festlegen, der nur einen Teil einer @code{CHAR}- oder @code{VARCHAR}-Spalte
enthält. Das kann die Index-Datei viel kleiner machen.
-@xref{Indexe}.
+@xref\{Indexes}.
@item
@cindex @code{BLOB}-Spalten, Indexierung
@@ -36529,14 +36530,16 @@ erzeugen, Diese werden für Volltextsuche benutzt. Nur der
@code{MyISAM}-Tabellentyp unterstützt @code{FULLTEXT}-Indexe. Sie können
auf @code{VARCHAR}- und @code{TEXT}-Spalten erzeugt werden. Die Indexierung
erfolgt immer über die gesamte Spalte, teilweise Indexierung wird nicht
-unterstützt. Siehe @ref{Volltextsuche} für Details zur Funktionsweise.
+unterstützt. Siehe @ref\{Fulltext Search} für Details zur Funktionsweise.
@item
Die @code{FOREIGN KEY}-, @code{CHECK}- und @code{REFERENCES}-Klauseln tun
momentan noch nichts. Die Syntax wird nur aus Gründen der Kompatibilität
bereit gestellt, um das Portieren von Code von anderen SQL-Servern zu
erleichtern und um Applikationen laufen zu lassen, die Tabellen mit
-Referenzen erzeugen. @xref{Fehlende Funktionen}.
+Referenzen erzeugen.
+@c German FIX old ref was @xref{Fehlende Funktionen}.
+@xref\{ANSI diff Foreign Keys}.
@item
Jede @code{NULL}-Spalte benötigt ein zusätzliches Bit, gerundet auf das
@@ -36567,7 +36570,7 @@ Die unterschiedlichen Tabellentypen sind:
@item MRG_MERGE @tab Ein Alias für MERGE-Tabellen.
@item MyISAM @tab Der neue binäre portable Tabellen-Handler, der ISAM ersetzt. @xref{MyISAM}.
@end multitable
-@xref{Tabellentypen}.
+@xref\{Table types}.
Wenn ein Tabellentyp angegeben wird und dieser besondere Typ nicht
verfügbar ist, wählt MySQL den Tabellentyp, der dem angegebenen am nächsten
@@ -36582,7 +36585,7 @@ angegeben:
@multitable @columnfractions .20 .80
@item @code{AUTO_INCREMENT} @tab Der nächste auto_increment-Wert, den Sie für Ihre Tabelle setzen wollen (MyISAM).
-@item @code{AVG_ROW_LENGTH} @tab Näherungsweise die durchschnittliche Zeilenlänge Ihrer Tabelle. Diese Option müssen Sie nur für grosse Tabellen mit unterschiedlich grossen Datensätzen setzen.
+@item @code{AVG_ROW_LENGTH} @tab Näherungsweise die durchschnittliche Zeilenlänge Ihrer Tabelle. Diese Option müssen Sie nur für große Tabellen mit unterschiedlich großen Datensätzen setzen.
@item @code{CHECKSUM} @tab Setzen Sie diesen Wert auf 1, wenn Sie wollen, dass MySQL eine Prüfsumme für alle Zeilen unterhält (macht die Tabelle ein bisschen langsamer bei der Aktualisierung, aber macht es einfacher, beschädigte Tabellen zu finden) (MyISAM).
@item @code{COMMENT} @tab Ein 60-Zeichen-Kommentar für Ihre Tabelle.
@item @code{MAX_ROWS} @tab Maximale Anzahl von Zeilen, die Sie in Ihrer Tabelle zu speichern planen.
@@ -36590,16 +36593,16 @@ angegeben:
@item @code{PACK_KEYS} @tab Setzen Sie diesen Wert auf 1, wenn Sie einen kleineren Index erhalten wollen. Das macht Aktualisierungen üblicherweise langsamer und liest schneller (MyISAM, ISAM). Setzen auf 0 schaltet die Komprimierung von Schlüsseln ab. Setzen auf @code{DEFAULT} (MySQL 4.0) weist die Tabellen-Handler an, nur lange @code{CHAR}- / @code{VARCHAR}-Spalten zu packen.
@item @code{PASSWORD} @tab Verschlüsselt die @code{.frm}-Datei mit einem Passwort. Diese Option tut nichts in der Standard-MySQL-Version.
@item @code{DELAY_KEY_WRITE} @tab Setzen Sie diesen Wert auf 1, wenn Sie Schlüssel-Tabellen-Aktualisierungen verzögern wollen, bis die Tabelle geschlossen wird (MyISAM).
-@item @code{ROW_FORMAT} @tab Definiert, wie die Zeilen gespeichert werden sollen. Momentan funktioniert diese Option nur bei MyISAM-Tabellen, die die @code{DYNAMIC}- und @code{FIXED}-Zeilenformate unterstützen. @xref{MyISAM-Tabellenformate}.
+@item @code{ROW_FORMAT} @tab Definiert, wie die Zeilen gespeichert werden sollen. Momentan funktioniert diese Option nur bei MyISAM-Tabellen, die die @code{DYNAMIC}- und @code{FIXED}-Zeilenformate unterstützen. @xref\{MyISAM table formats}.
@end multitable
Wenn Sie eine @code{MyISAM}-Tabelle benutzen, verwendet MySQL das Produkt
-aus @code{max_rows * avg_row_length} um zu entscheiden, wie gross die
+aus @code{max_rows * avg_row_length} um zu entscheiden, wie Groß die
resultierende Tabelle sein wird. Wenn Sie keine der obigen Optionen
-angeben, ist die maximale Grösse für eine Tabelle 4 GB (oder 2 GB, wenn Ihr
+angeben, ist die maximale Größe für eine Tabelle 4 GB (oder 2 GB, wenn Ihr
Betriebssystem nur 2 GB-Tabellen unterstützt). Das geschieht, um
-Zeigergrössen gering zu halten und um den Index kleiner und schneller zu
-machen, wenn Sie nicht wirklich grosse Dateien benötigen.
+Zeigergrößen gering zu halten und um den Index kleiner und schneller zu
+machen, wenn Sie nicht wirklich große Dateien benötigen.
Wenn Sie @code{PACK_KEYS} nicht benutzen, ist die Vorgabe, nur
Zeichenketten zu komprimieren, nicht Zahlen. Wenn Sie @code{PACK_KEYS=1}
@@ -36612,7 +36615,7 @@ bedeutet, das jeder Schlüssel ein zusätzliches Byte benötigt, um
darzustellen, wie viele Bytes des vorherigen Schlüssels für den nächsten
Schlüssel dieselben sind (beachten Sie, dass der Zeiger auf die Zeile in
der Reihenfolge 'hohes Byte zuerst' direkt nach dem Schlüssel gespeichert
-wird, um die Kompression zu verbessern). Das heisst, wenn Sie viele gleiche
+wird, um die Kompression zu verbessern). Das heißt, wenn Sie viele gleiche
Schlüssel auf zwei Zeilen hintereinander haben, werden alle folgenden
'gleichen' Schlüssel üblicherweise nur 2 Bytes in Anspruch nehmen
(inklusive dem Zeiger auf die Zeile). Vergleichen Sie das mit dem
@@ -36676,13 +36679,13 @@ Wenn Fehler beim Kopieren der Daten in die Tabelle auftreten, wird diese
automatisch gelöscht.
Um sicherzustellen, dass die Update-Log-Datei/Binär-Log-Datei benutzt
-werden kann, um die Original-Tabellen neu zu erzeugen, lässt MySQL keine
+werden kann, um die Original-Tabellen neu zu erzeugen, läßt MySQL keine
gleichzeitigen Einfügeoperationen während @code{CREATE TABLE .... SELECT}
zu.
@item
Die @code{RAID_TYPE}-Option hilft, die 2 GB- / 4 GB-Grenze für die
MyISAM-Daten-Datei zu durchbrechen (nicht für die Index-Datei), auf
-Betriebssystemen, die keine grossen Dateien unterstützen.
+Betriebssystemen, die keine großen Dateien unterstützen.
Sie erzielen mehr Geschwindigkeit vom I/O-Flaschenhals, wenn Sie die
@code{RAID}-Verzeichnisse auf unterschiedliche physikalische Platten legen.
@code{RAID_TYPE} funktioniert auf jedem Betriebssystem, solange Sie MySQL
@@ -36724,12 +36727,17 @@ Wenn Sie @code{DATA directory="verzeichnis"} oder @code{INDEX
directory="verzeichnis"} benutzen, können Sie angeben, wohin die
Tabellen-Handler ihre Tabellen- und Index-Dateien legen sollen. Das
funktioniert nur bei @code{MyISAM}-Tabellen in @code{MySQL} 4.0, wenn Sie
-die @code{--skip-symlink}-Option nicht benutzen. @xref{Symbolische Links auf Tabellen}.
+die @code{--skip-symlink}-Option nicht benutzen. @xref\{Symbolic links to tables}.
@end itemize
-@node Stille Spaltentyp-Änderungen, , CREATE TABLE, CREATE TABLE
+@menu
+* Silent column changes::
+@end menu
+
+@node Silent column changes, , CREATE TABLE, CREATE TABLE
+@c German node Stille Spaltentyp-Änderungen
@subsubsection Stille Spaltentyp-Änderungen
@cindex Stille Spaltentyp-Änderungen
@@ -36752,12 +36760,12 @@ sind, in @code{VARCHAR}-Spalten umgewandelt. Das beeinflusst die Benutzung
dieser Spalten in keiner Weise, denn in MySQL ist @code{VARCHAR} nur eine
andere Art, Zeichen zu speichern. MySQL führt diese Umwandlung durch, weil
sie Platz spart und Tabellenoperationen schneller macht.
-@xref{Tabellentypen}.
+@xref\{Table types}.
@item
@code{TIMESTAMP}-Anzeigebreiten müssen geradzahlig und im Bereich von 2 bis
-14 sein. Wenn Sie eine Anzeigebreite von 0 oder grösser als 14 angeben,
-wird die Grösse auf 14 gesetzt. Ungerade Werte im Bereich von 1 bis 13
+14 sein. Wenn Sie eine Anzeigebreite von 0 oder größer als 14 angeben,
+wird die Größe auf 14 gesetzt. Ungerade Werte im Bereich von 1 bis 13
werden auf den nächst höheren geraden Wert gesetzt.
@item
@@ -36772,7 +36780,7 @@ tabelle} zeigt dagegen immer an, dass einer @code{TIMESTAMP}-Spalte
@item
MySQL mappt bestimmte Spaltentypen, die von anderen
SQL-Datenbank-Herstellern benutzt werden, auf MySQL-Typen.
-@xref{Spaltentypen anderer Hersteller}.
+@xref\{Other-vendor column types}.
@end itemize
Wenn Sie sehen wollen, ob MySQL einen anderen Spaltentyp als den, den Sie
@@ -36781,10 +36789,11 @@ Tabelle ein @code{DESCRIBE tabelle}-Statement ein.
@cindex @code{myisampack}
Bestimmte andere Spaltentyp-Änderungen können auftreten, wenn Sie eine
-Tabelle mit @code{myisampack} komprimieren. @xref{Komprimiertes Format}.
+Tabelle mit @code{myisampack} komprimieren. @xref\{Compressed format}.
-@node ALTER TABLE, RENAME TABLE, CREATE TABLE, Datendefinition
+@node ALTER TABLE, RENAME TABLE, CREATE TABLE, Data Definition
+@c German node ALTER TABLE
@subsection @code{ALTER TABLE}-Syntax
@findex ALTER TABLE
@@ -36823,7 +36832,7 @@ Tabelle und den Typ der Tabelle ändern. @xref{CREATE TABLE, , @code{CREATE TABLE
Wenn Sie @code{ALTER TABLE} benutzen, um eine Spaltenspezifikation zu
ändern, und @code{DESCRIBE tabelle} anzeigt, dass die Spalte nicht geändert
wurde, ist es möglich, dass MySQL Ihre Änderungen aus einem der Gründe
-ignoriert hat, die in @ref{Stille Spaltentyp-Änderungen} beschrieben sind.
+ignoriert hat, die in @ref\{Silent column changes} beschrieben sind.
Wenn Sie beispielsweise versuchen, eine @code{VARCHAR}-Spalte zu
@code{CHAR} zu ändern, benutzt MySQL dennoch @code{VARCHAR}, wenn die
Tabelle weitere Spalten variabler Länge enthält.
@@ -36861,7 +36870,7 @@ die erste Zeile benutzt, die anderen werden gelöscht.
Sie können mehrfache @code{ADD}-, @code{ALTER}-, @code{DROP}- und
@code{CHANGE}-Klauseln in einem einzigen @code{ALTER TABLE}-Statement
angeben. Das ist eine MySQL-Erweiterung zu ANSI-SQL92, welches nur eine
-Klausel pro @code{ALTER TABLE}-Statement zulässt.
+Klausel pro @code{ALTER TABLE}-Statement zuläßt.
@item
@code{CHANGE spalten_name}, @code{DROP spalten_name} und @code{DROP INDEX}
@@ -36936,7 +36945,7 @@ möglich zum neuen Typ passen.
@item
AB MySQL-Version 3.22 können Sie @code{FIRST} oder @code{ADD ... AFTER
spalten_name} benutzen, um eine Spalte an einer bestimmten Position
-innerhalb einer Tabellenzeile einzufügen. Vorgabemässig wird die Spalte am
+innerhalb einer Tabellenzeile einzufügen. Vorgabemäßig wird die Spalte am
Ende hinzugefügt.
@findex ALTER COLUMN
@@ -36985,7 +36994,7 @@ Fällen kann es das Sortieren für MySQL erleichtern, wenn die Tabelle nach
der Spalte geordnet ist, nach der Sie sie später ordnen wollen. Diese
Option ist hauptsächlich nützlich, wenn Sie wissen, dass Sie die Zeilen
meistens in einer bestimmten Reihenfolge abfragen werden. Wenn Sie diese
-Option nach grossen Änderungen in der Tabelle benutzen, können Sie
+Option nach großen Änderungen in der Tabelle benutzen, können Sie
möglicherweise eine höhere Performance erzielen.
@findex ALTER TABLE
@@ -37020,7 +37029,8 @@ machen nichts. Die Syntax für sie steht nur aus Kompatibilitätsgründen
bereit, um das Portieren von Code von anderen SQL-Servern zu erleichtern
und um Applikationen laufen zu lassen, die Tabellen mit Referenzen
erzeugen.
-@xref{Fehlende Funktionen}.
+@c German FIX old ref was @xref{Fehlende Funktionen}.
+@xref\{ANSI diff Foreign Keys}.
@end itemize
Hier ist ein Beispiel, das einige der Anwendungsfälle von @code{ALTER
@@ -37085,14 +37095,15 @@ indem Sie die @code{AUTO_INCREMENT = #}-Tabellenoption benutzen.
@xref{SET OPTION}.
Wenn Sie bei MyISAM-Tabellen nicht die @code{AUTO_INCREMENT}-Spalte ändern,
-ist die Folgenzahl davon nicht betroffen. Wenn Sie eine
+ist die Folgezahl davon nicht betroffen. Wenn Sie eine
@code{AUTO_INCREMENT}-Spalte löschen und dann eine weitere
@code{AUTO_INCREMENT}-Spalte hinzufügen, fangen die Zahlen wieder bei 1 an.
-@xref{Probleme mit ALTER TABLE}.
+@xref\{ALTER TABLE problems}.
-@node RENAME TABLE, DROP TABLE, ALTER TABLE, Datendefinition
+@node RENAME TABLE, DROP TABLE, ALTER TABLE, Data Definition
+@c German node RENAME TABLE
@subsection @code{RENAME TABLE}-Syntax
@findex RENAME TABLE
@@ -37101,7 +37112,7 @@ ist die Folgenzahl davon nicht betroffen. Wenn Sie eine
RENAME TABLE tabelle TO neue_tabelle[, tabelle2 TO neue_tabelle2,...]
@end example
-Das Umbenennen wird atomisch durchgeführt, was heisst, dass kein anderer
+Das Umbenennen wird atomisch durchgeführt, was heißt, dass kein anderer
Thread auf die Tabelle(n) zugreifen kann, während umbenannt wird. Das
ermöglicht, eine Tabelle durch eine leere zu ersetzen:
@@ -37136,7 +37147,8 @@ entgegengesetztes Umbenennen aller umbenannten Tabellen durch, um alles
wieder in den Ausgangszustand zu versetzen.
-@node DROP TABLE, CREATE INDEX, RENAME TABLE, Datendefinition
+@node DROP TABLE, CREATE INDEX, RENAME TABLE, Data Definition
+@c German node DROP TABLE
@subsection @code{DROP TABLE}-Syntax
@findex DROP TABLE
@@ -37160,7 +37172,8 @@ zugelassen. Momentan tun sie nichts.
automatisch jegliche aktiven Transaktionen zuende.
-@node CREATE INDEX, DROP INDEX, DROP TABLE, Datendefinition
+@node CREATE INDEX, DROP INDEX, DROP TABLE, Data Definition
+@c German node CREATE INDEX
@subsection @code{CREATE INDEX}-Syntax
@findex CREATE INDEX
@@ -37209,15 +37222,16 @@ MySQL-Version 3.23.2 und nur beim @code{MyISAM}-Tabellentyp erzeugen
können.
Weitere Informationen darüber, wie MySQL Indexe benutzt, finden Sie unter
-@ref{MySQL-Indexe, , MySQL-Indexe}.
+@ref\{MySQL indexes, , MySQL-Indexe}.
@code{FULLTEXT}-Indexe können nur @code{VARCHAR}- und @code{TEXT}-Spalten
indexieren und funktionieren nur bei @code{MyISAM}-Tabellen.
@code{FULLTEXT}-Indexe sind ab MySQL-Version 3.23.23 verfügbar.
-@ref{Volltextsuche}.
+@ref\{Fulltext Search}.
-@node DROP INDEX, , CREATE INDEX, Datendefinition
+@node DROP INDEX, , CREATE INDEX, Data Definition
+@c German node DROP INDEX
@subsection @code{DROP INDEX}-Syntax
@findex DROP INDEX
@@ -37232,16 +37246,19 @@ Version 3.22 ist @code{DROP INDEX} auf ein @code{ALTER TABLE}-Statement
gemappt, um den Index zu löschen. @xref{ALTER TABLE, , @code{ALTER TABLE}}.
-@node Grundlegende Benutzerbefehle, Transaktionale Befehle, Datendefinition, Referenz
+@node Basic User Commands, Transactional Commands, Data Definition, Reference
+@c German node Grundlegende Benutzerbefehle
@section Grundlegende Befehle des MySQL-Dienstprogramms für Benutzer
+
+
@menu
-* USE:: @code{USE}-Syntax
-* DESCRIBE:: @code{DESCRIBE}-Syntax (Informationen über Spalten erhalten)
+* USE::
+* DESCRIBE::
@end menu
-
-@node USE, DESCRIBE, Grundlegende Benutzerbefehle, Grundlegende Benutzerbefehle
+@node USE, DESCRIBE, Basic User Commands, Basic User Commands
+@c German node USE
@subsection @code{USE}-Syntax
@findex USE
@@ -37251,7 +37268,7 @@ USE datenbank
@end example
Das @code{USE datenbank}-Statement weist MySQL an, @code{datenbank} als
-vorgabemässige Datenbank für nachfolgende Anfragen zu benutzen. Die
+vorgabemäßige Datenbank für nachfolgende Anfragen zu benutzen. Die
Datenbank bleibt die aktuelle, entweder bis zum Ende der Sitzung, oder bis
ein weiteres @code{USE}-Statement abgesetzt wird:
@@ -37263,7 +37280,7 @@ mysql> SELECT count(*) FROM tabelle; # wählt aus von datenbank2.tabelle
@end example
Wenn Sie eine bestimmte Datenbank mit dem @code{USE}-Statement zu aktuellen
-machen, heisst das nicht, dass Sie nicht auf Tabellen in anderen
+machen, heißt das nicht, dass Sie nicht auf Tabellen in anderen
Datenbanken zugreifen können. Das unten stehende Beispiel zeigt den Zugriff
auf die @code{autor}-Tabelle in der @code{datenbank1}-Datenbank und auf
die @code{herausgeber}-Tabelle in der @code{datenbank2}-Datenbank:
@@ -37280,7 +37297,8 @@ The @code{USE}-Statement wird für die Sybase-Kompatibilität zur Verfügung
gestellt.
-@node DESCRIBE, , USE, Grundlegende Benutzerbefehle
+@node DESCRIBE, , USE, Basic User Commands
+@c German node DESCRIBE
@subsection @code{DESCRIBE}-Syntax (Informationen über Spalten erhalten)
@findex DESC
@@ -37299,7 +37317,7 @@ die SQL-@samp{%}- und -@samp{_}-Platzhalterzeichen enthält.
Wenn die Spaltentypen sich von dem unterscheiden, was Sie auf der Grundlage
eines @code{CREATE TABLE}-Statements erwartet hätten, beachten Sie, dass
-MySQL manchmal Spaltentypen ändert. @xref{Stille Spaltentyp-Änderungen}.
+MySQL manchmal Spaltentypen ändert. @xref\{Silent column changes}.
@cindex Oracle-Kompatibilität
@cindex Kompatibilität, mit Oracle
@@ -37309,28 +37327,31 @@ Das @code{SHOW}-Statement stellt ähnliche Informationen bereit.
@xref{SHOW, , @code{SHOW}}.
-@node Transaktionale Befehle, HANDLER, Grundlegende Benutzerbefehle, Referenz
+@node Transactional Commands, Fulltext Search, Basic User Commands, Reference
+@c German node Transaktionale Befehle
@section Transaktionale und Sperrbefehle von MySQL
+
+
@menu
-* COMMIT:: @code{BEGIN/COMMIT/ROLLBACK}-Syntax
-* LOCK TABLES:: @code{LOCK TABLES/UNLOCK TABLES}-Syntax
-* SET TRANSACTION:: @code{SET TRANSACTION}-Syntax
+* COMMIT::
+* LOCK TABLES::
+* SET TRANSACTION::
@end menu
-
-@node COMMIT, LOCK TABLES, Transaktionale Befehle, Transaktionale Befehle
+@node COMMIT, LOCK TABLES, Transactional Commands, Transactional Commands
+@c German node COMMIT
@subsection @code{BEGIN/COMMIT/ROLLBACK}-Syntax
@findex BEGIN
@findex COMMIT
@findex ROLLBACK
-Vorgabemässig läuft MySQL im @code{autocommit}-Modus. Das heisst, dass
+Vorgabemäßig läuft MySQL im @code{autocommit}-Modus. Das heißt, dass
MySQL eine Aktualisierung auf Platte speichert, sobald Sie eine
Aktualisierung ausführen.
-Wenn Sie transaktionssichere Tabellen (wie @code{BDB} oder @code{InnoDB})
+Wenn Sie transaktionssichere Tabellen (wie @code{InnoDB} oder @code{BDB} )
benutzen, können Sie MySQL mit folgendem Befehl in den
Nicht-@code{autocommit}-Modus setzen:
@@ -37368,7 +37389,7 @@ die MySQL-Binär-Log-Datei für Datensicherungen benutzen statt der älteren
Update-Log-Datei. Transaktionen werden in der Binär-Log-Datei in einem
Stück gespeichert, beim @code{COMMIT}, um sicherzustellen, dass
Transaktionen, die zurückgesetzt werden (Rollback), nicht gespeichert
-werden. @xref{Binär-Log-Datei}.
+werden. @xref\{Binary log}.
Folgende Befehle beenden automatisch eine Transaktion (als ob Sie ein
@code{COMMIT} vor der Ausführung des Befehls ausgeführt hätten:
@@ -37383,7 +37404,8 @@ Sie können die Isolationsebene (Isolation Level) für Transaktionen mit
@code{SET TRANSACTION ISOLATION LEVEL ...}. @xref{SET TRANSACTION} ändern.
-@node LOCK TABLES, SET TRANSACTION, COMMIT, Transaktionale Befehle
+@node LOCK TABLES, SET TRANSACTION, COMMIT, Transactional Commands
+@c German node LOCK TABLES
@subsection @code{LOCK TABLES/UNLOCK TABLES}-Syntax
@findex LOCK TABLES
@@ -37415,7 +37437,7 @@ der Tabelle durchführen. Andere Threads werden blockiert.
Der Unterschied zwischen @code{READ LOCAL} und @code{READ} ist, dass
@code{READ LOCAL} nicht kollidierende @code{INSERT}-Statements während der
-Dauer der Sperre zulässt. Das kann jedoch nicht benutzt werden, wenn Sie
+Dauer der Sperre zuläßt. Das kann jedoch nicht benutzt werden, wenn Sie
Datenbankdateien ausserhalb von MySQL bearbeiten, während die Sperre aktiv
ist.
@@ -37427,7 +37449,7 @@ machen!
@code{WRITE}-Sperren haben normalerweise höhere Priorität als
@code{READ}-Sperren, um sicherzustellen, dass Aktualisierungen so früh wie
-möglich bearbeitet werden. Dass heisst, wenn ein Thread eine
+möglich bearbeitet werden. Dass heißt, wenn ein Thread eine
@code{READ}-Sperre erlangt und dann ein anderer Thread eine
@code{WRITE}-Sperre verlangt, dass nachfolgende @code{READ}-Sperrenanfragen
warten, bis der @code{WRITE}-Thread die Sperre erhalten und freigegeben
@@ -37456,7 +37478,7 @@ diesem Schema gibt es jedoch ein paar weitere Dinge, derer man sich bewusst
sein muss:
Wenn Sie eine @code{LOW_PRIORITY_WRITE}-Sperre für eine Tabelle benutzen,
-heisst das, dass MySQL auf diese bestimmte Sperre wartet, bis es keinen
+heißt das, dass MySQL auf diese bestimmte Sperre wartet, bis es keinen
Thread gibt, der eine @code{READ}-Sperre will. Wenn der Thread die
@code{WRITE}-Sperre erhalten hat und darauf wartet, die Sperre für die
nächste Tabelle in der Tabellensperrliste zu erhalten, warten alle anderen
@@ -37479,7 +37501,7 @@ einige Fällen, in denen es wünschenswert sein kann, Tabellen zu sperren:
@itemize @bullet
@item
-Wenn Sie viele Operationen auf einer grossen Zahl von Tabellen laufen
+Wenn Sie viele Operationen auf einer großen Zahl von Tabellen laufen
lassen wollen, ist es viel schneller, die Tabellen zu sperren, die Sie
benutzen werden. Der Nachteil besteht natürlich darin, dass kein anderer
Thread eine @code{READ}-gesperrte Tabelle aktualisieren und kein anderer
@@ -37520,9 +37542,9 @@ auf Benutzerebene @code{GET_LOCK()} und @code{RELEASE_LOCK()} benutzen.
Diese Sperren werden in einer Hash-Tabelle im Server gespeichert und sind
mit @code{pThread_mutex_lock()} und @code{pThread_mutex_unlock()} für die
Erzielung höherer Geschwindigkeit implementiert.
-@xref{Verschiedene Funktionen}.
+@xref\{Miscellaneous functions}.
-Siehe @ref{Internes Sperren} wegen weiterer Informationen über
+Siehe @ref\{Internal locking} wegen weiterer Informationen über
Sperrmethoden.
Sie können alle Tabellen in allen Datenbanken mit Lesesperren sperren, und
@@ -37536,7 +37558,8 @@ schickt automatisch jegliche aktiven Transaktionen ab (Commit), bevor es
versucht, die Tabellen zu sperren.
-@node SET TRANSACTION, , LOCK TABLES, Transaktionale Befehle
+@node SET TRANSACTION, , LOCK TABLES, Transactional Commands
+@c German node SET TRANSACTION
@subsection @code{SET TRANSACTION}-Syntax
@findex ISOLATION LEVEL
@@ -37549,7 +37572,7 @@ SET [GLOBAL | SESSION] TRANSACTION ISOLATION LEVEL
Setzt die Transaktionsisolationsebene für die globale, gesamte Sitzung oder
für die nächste Transaktion.
-Das vorgabemässige Verhalten ist das Setzen der Isolationsebene für die
+Das vorgabemäßige Verhalten ist das Setzen der Isolationsebene für die
nächste (nicht angefangene) Transaktion.
Wenn Sie die @code{GLOBAL}-Berechtigung setzen, betrifft das alle neu
@@ -37558,60 +37581,12 @@ erzeugten Threads. Sie benötigen dafür die @code{PROCESS}-Berechtigung.
Wenn Sie die @code{SESSION}-Berechtigung setzen, betrifft das die folgenden
und alle zukünftigen Transaktionen.
-Sie können die vorgabemässige Isolationsebene für @code{mysqld} mit
-@code{--transaction-isolation=...} setzen. @xref{Kommandozeilenoptionen}.
-
-@findex HANDLER
-@node HANDLER, Volltextsuche, Transaktionale Befehle, Referenz
-@section @code{HANDLER}-Syntax
-
-@example
-HANDLER tabelle OPEN [ AS alias ]
-HANDLER tabelle READ index @{ = | >= | <= | < @} (wert1, wert2, ... ) [ WHERE ... ] [LIMIT ... ]
-HANDLER tabelle READ index @{ FIRST | NEXT | PREV | LAST @} [ WHERE ... ] [LIMIT ... ]
-HANDLER tabelle READ @{ FIRST | NEXT @} [ WHERE ... ] [LIMIT ... ]
-HANDLER tabelle CLOSE
-@end example
+Sie können die vorgabemäßige Isolationsebene für @code{mysqld} mit
+@code{--transaction-isolation=...} setzen. @xref\{Command-line options}.
-Das @code{HANDLER}-Statement ermöglicht direkten Zugriff auf die
-MySQL-Tabellenschnittstelle unter Umgehung des SQL-Optimierers. Daher ist
-es schneller als SELECT.
-
-Die erste Form des @code{HANDLER}-Statements öffnet eine Tabelle und macht
-sie über die folgenden @code{HANDLER ... READ}-Routinen zugänglich. Dieses
-Tabellenobjekt wird nicht mit anderen Threads geteilt und wird nicht
-geschlossen, bis der Thread @code{HANDLER tabelle CLOSE} aufruft oder
-stirbt.
-
-Die zweite Form holt eine (oder mehrere, festgelegt durch die
-@code{LIMIT}-Klausel) Zeile, bei der der angegebene Index mit der Bedingung
-übereinstimmt und die @code{WHERE}-Bedingung erfüllt ist. Wenn der Index
-aus mehreren Teilen besteht (also mehrere Spalten überspannt), werden die
-Werte in einer Komma-getrennten Liste angegeben, wobei es möglich ist, nur
-Werte für einige erste Spalten anzugeben.
-
-Die dritte Form holt eine (oder mehrere, festgelegt durch die
-@code{LIMIT}-Klausel) Zeile in Index-Reihenfolge aus der Tabelle, bei der
-die @code{WHERE}-Bedingung erfüllt ist.
-
-Die vierte Form (ohne Index-Angabe) holt eine (oder mehrere, festgelegt
-durch die @code{LIMIT}-Klausel) Zeile in natürlicher Zeilenreihenfolge aus
-der Tabelle (wie in der Daten-Datei gespeichert), bei der die
-@code{WHERE}-Bedingung erfüllt ist. Das ist schneller als @code{HANDLER
-tabelle READ index}, wenn ein kompletter Tabellen-Scan erwünscht ist.
-
-Die letzte Form schliesst eine mit @code{HANDLER ... OPEN} geöffnete
-Tabelle.
-
-@code{HANDLER} ist in gewisser Hinsicht ein Statement auf niedriger Ebene
-(Low-Level), dass zum Beispiel keine Konsistenz gewährleistet. Das heisst,
-@code{HANDLER ... OPEN} nimmt @strong{KEINEN} Schnappschuss der Tabelle auf
-und sperrt die Tabelle @strong{NICHT}. Das bedeutet, dass nach
-@code{HANDLER ... OPEN} Tabellendaten verändert werden können (durch diesen
-oder einen anderen Thread) und dass diese Veränderungen nur teilweise in
-@code{HANDLER ... NEXT}- oder @code{HANDLER ... PREV}-Scans erscheinen.
-@node Volltextsuche, , HANDLER, Referenz
+@node Fulltext Search, Query Cache, Transactional Commands, Reference
+@c German node Volltextsuche
@section MySQL-Volltextsuche
@cindex Suchen, Volltext
@@ -37622,7 +37597,7 @@ Ab Version 3.23.23 bietet MySQL Unterstützung für Volltext-Indexierung und
-Suche. Volltext-Indexe sind in MySQL Indexe vom Typ @code{FULLTEXT}.
@code{FULLTEXT}-Indexe können von @code{VARCHAR}- und @code{TEXT}-Spalten
zur Zeit von @code{CREATE TABLE} erzeugt werden oder später mit @code{ALTER
-TABLE} oder @code{CREATE INDEX} hinzugefügt werden. Bei grossen Datenmengen
+TABLE} oder @code{CREATE INDEX} hinzugefügt werden. Bei großen Datenmengen
ist es viel schneller, einen @code{FULLTEXT}-Index mit @code{ALTER TABLE}
(oder @code{CREATE INDEX}) hinzuzufügen, als Zeilen in eine leere Tabelle
mit einem @code{FULLTEXT}-Index einzufügen.
@@ -37661,11 +37636,11 @@ mysql> SELECT * FROM artikel WHERE MATCH (titel,artikeltext) AGAINST ('Datenbank
Die Funktion @code{MATCH} prüft eine natürlichsprachige Anfrage gegen
(@code{AGAINST}) eine Textsammlung (einfach ein Satz von Spalten, der vom
@code{FULLTEXT}-Index abgedeckt wird). Für jede Zeile in einer Tabelle gibt
-sie eine Relevanz zurück - ein Ähnlichkeitsmass zwischen dem Text in dieser
+sie eine Relevanz zurück - ein Ähnlichkeitsmaß zwischen dem Text in dieser
Zeile (in den Spalten, die Teil der Textsammlung sind) und der Anfrage.
Wenn sie in einer @code{WHERE}-Klausel benutzt wird (siehe Beispiel oben),
werden die zurückgegebenen Zeilen automatisch nach absteigender Relevanz
-sortiert. Die Relevanz ist eine nicht negative Fliesskommazahl. 0 Relevanz
+sortiert. Die Relevanz ist eine nicht negative Fließkommazahl. 0 Relevanz
bedeutet keine Ähnlichkeit. Die Relevanz wird auf der Grundlage der Anzahl
von Wörtern in der Zeile, der Anzahl eindeutiger Wörter in dieser Zeile,
der Gesamtzahl von Wörtern in der Textsammlung und der Anzahl von
@@ -37725,10 +37700,10 @@ Signifikanz in der Anfrage oder der Textsammlung gewichtet. Daher hat ein
Wort, dass in vielen Dokumenten vorkommt, ein geringeres Gewicht (und kann
sogar 0 Gewicht haben), weil es in dieser bestimmten Textsammlung einen
geringen semantischen Wert hat. Ansonsten, wenn das Wort selten vorkommt,
-erhält es ein höheres Gewicht. Die Gewichte der Wörter werden anschliessend
+erhält es ein höheres Gewicht. Die Gewichte der Wörter werden anschließend
kombiniert, um die Relevanz der Zeile zu berechnen.
-Solch eine Technik funktioniert am besten bei grossen Textsammlungen (in
+Solch eine Technik funktioniert am besten bei großen Textsammlungen (in
der Tat wurde sie sorgfältig darauf optimiert). Bei sehr kleinen Tabellen
spiegelt die Wortverteilung nicht adäquat seinen semantischen Wert wider,
so dass dieses Modell manchmal bizarre Ergebnisse ergeben kann:
@@ -37742,7 +37717,7 @@ Die Suche nach dem Wort @code{MySQL} erzeugt im obigen Beispiel keine
Ergebnisse. Das Wort @code{MySQL} ist in mehr als der Hälfte der Zeilen
vorhanden und wird deshalb als Stopword betrachtet (eins mit dem
semantischen Wert 0). Das ist in der Tat das gewünschte Verhalten - eine
-natürlichsprachige Anfrage sollte bei einer 1 GB grossen Tabelle nicht jede
+natürlichsprachige Anfrage sollte bei einer 1 GB großen Tabelle nicht jede
zweite Zeile zurückgeben.
Bei einem Wort, dass in der Hälfte der Zeilen in einer Tabelle
@@ -37753,15 +37728,17 @@ die Überlegung, die dahinter steht, dass solchen Wörtern ein niedriger
semantischer Wert @strong{in diesem bestimmten Satz von Daten} gegeben
wird.
+
+
@menu
-* Volltext-Einschränkungen:: Volltext-Einschränkungen
-* Volltext-Feineinstellungen:: MySQL-Volltextsuche fein einstellen
-* Volltext-Features in MySQL 4.0:: Neue Features der Volltextsuche in MySQL 4.0
-* Volltext-TODO-Liste:: Volltextsuche TODO-Liste
+* Fulltext Restrictions::
+* Fulltext Fine-tuning::
+* Volltext-Features in MySQL 4.0::
+* Fulltext TODO::
@end menu
-
-@node Volltext-Einschränkungen, Volltext-Feineinstellungen, Volltextsuche, Volltextsuche
+@node Fulltext Restrictions, Fulltext Fine-tuning, Fulltext Search, Fulltext Search
+@c German node Volltext-Einschränkungen
@subsection Volltext-Einschränkungen
@itemize @bullet
@@ -37773,17 +37750,18 @@ Das Argument für @code{AGAINST} muss eine Konstanten-Zeichenkette sein.
@end itemize
-@node Volltext-Feineinstellungen, Volltext-Features in MySQL 4.0, Volltext-Einschränkungen, Volltextsuche
+@node Fulltext Fine-tuning, Volltext-Features in MySQL 4.0, Fulltext Restrictions, Fulltext Search
+@c German node Volltext-Feineinstellungen
@subsection MySQL-Volltextsuche fein einstellen
Leider hat die Volltextsuche noch keine durch den Benutzer einstellbare
Parameter, doch diese stehen sehr weit oben auf der TODO-Liste. Wenn Sie
-jedoch eine MySQL-Quelldistribution (@xref{Installation der Quelldistribution})
+jedoch eine MySQL-Quelldistribution (@xref\{Installing source})
haben, können Sie das Verhalten der Volltextsuche in einiger Hinsicht
ändern.
Beachten Sie, dass die Volltextsuche sorgfältig auf beste Sucheffektivität
-eingestellt wurde. Wenn Sie dieses vorgabemässige Verhalten ändern, wird
+eingestellt wurde. Wenn Sie dieses vorgabemäßige Verhalten ändern, wird
das die Suchergebnisse in den meisten Fällen verschlechtern. Ändern Sie die
MySQL-Quelltexte deshalb nur, wenn Sie genau wissen, was Sie tun!
@@ -37820,7 +37798,8 @@ In diesem Fall brauchen Sie die Indexe nicht neu aufzubauen.
@end itemize
-@node Volltext-Features in MySQL 4.0, Volltext-TODO-Liste, Volltext-Feineinstellungen, Volltextsuche
+@node Volltext-Features in MySQL 4.0, Fulltext TODO, Fulltext Fine-tuning, Fulltext Search
+@c German node <no English equivalent>
@subsection Neue Features der Volltextsuche in MySQL 4.0
Dieser Abschnitt enthält eine Auflistung der Volltext-Features, die bereits
@@ -37860,7 +37839,8 @@ Statistiken).
@end itemize
-@node Volltext-TODO-Liste, , Volltext-Features in MySQL 4.0, Volltextsuche
+@node Fulltext TODO, , Volltext-Features in MySQL 4.0, Fulltext Search
+@c German node Volltext-TODO-Liste
@subsection Volltextsuche TODO-Liste
@itemize @bullet
@@ -37885,7 +37865,8 @@ Parameter für @code{FULLTEXT} in @code{CREATE/ALTER TABLE}).
@c ACHTUNG! Folgender NODE ist neu seit 2002-01-15!
@c ATTENTION! The following node ist new since 2001-01-15!
-@node Anfragen-Cache, , Volltextsuche, Referenz
+@node Query Cache, , Fulltext Search, Reference
+@c German node Anfragen-Cache
@section MySQL-Anfragen-Cache
@cindex Anfragen-Cache
@@ -37926,15 +37907,17 @@ Das kann als minimale Geschwindigkeitssteigerung für eine gecachete Anfrage
betrachtet werden.
@end itemize
+
+
@menu
-* Anfragen-Cache-Funktionsweise:: Wie der Anfragen-Cache funktioniert
-* Anfragen-Cache-Konfiguration:: Anfragen-Cache-Konfiguration
-* Anfragen-Cache in SELECT:: Anfragen-Cache-Optionen in @code{SELECT}
-* Anfragen-Cache-Status und -Wartung:: Anfragen-Cache-Status und -Wartung
+* Query Cache How::
+* Query Cache Configuration::
+* Query Cache in SELECT::
+* Query Cache Status and Maintenance::
@end menu
-
-@node Anfragen-Cache-Funktionsweise, Anfragen-Cache-Konfiguration, Anfragen-Cache, Anfragen-Cache
+@node Query Cache How, Query Cache Configuration, Query Cache, Query Cache
+@c German node Anfragen-Cache-Funktionsweise
@subsection Wie der Anfragen-Cache funktioniert
Anfragen werden vor dem Parsen verglichen, daher werden
@@ -37956,7 +37939,7 @@ wenn ein Client zum Beispiel ein neues Kommunikationsprotokollformat
benutzt oder einen anderen Zeichensatz als ein anderer Client.
Anfragen, die unterschiedliche Datenbanken, Protokollversionen oder
-unterschiedliche vorgabemässige Zeichensätze benutzen, werden als
+unterschiedliche vorgabemäßige Zeichensätze benutzen, werden als
unterschiedliche Anfragen angesehen und separat gecachet.
Der Cache funktioniert auch bei Anfragen der Art @code{SELECT CALC_ROWS
@@ -38007,7 +37990,8 @@ Bevor eine Anfrage aus dem Anfragen-Cache geholt wird, prüft MySQL, ob der
Benutzer die SELECT-Berechtigung für alle beteiligten Datenbanken und
Tabellen hat. Wenn nicht, wird das Cache-Ergebnis nicht benutzt.
-@node Anfragen-Cache-Konfiguration, Anfragen-Cache in SELECT, Anfragen-Cache-Funktionsweise, Anfragen-Cache
+@node Query Cache Configuration, Query Cache in SELECT, Query Cache How, Query Cache
+@c German node Anfragen-Cache-Konfiguration
@subsection Anfragen-Cache-Konfiguration
Aufgrund des Anfragen-Caches gibt es ein paar neue @code{MySQL}
@@ -38016,7 +38000,7 @@ auf der Kommandozeile beim Starten von @code{mysqld} gesetzt werden können:
@itemize
@item @code{query_cache_limit}
-Keine Ergebnisse cachen, die grösser als dieser Wert sind (Vorgabe 1 MB).
+Keine Ergebnisse cachen, die größer als dieser Wert sind (Vorgabe 1 MB).
@item @code{query_cache_size}
Der zugewiesene Arbeitsspeicher, um Ergebnisse aus alten Anfragen zu
@@ -38046,11 +38030,12 @@ abweichend von der Vorgabe verändert werden. Die Syntax ist wie folgt:
@item 2 oder DEMAND @tab Nur @code{SELECT SQL_CACHE ...}-Anfragen cachen.
@end multitable
-Vorgabemässig hängt @code{SQL_QUERY_CACHE_TYPE} vom Wert von
+Vorgabemäßig hängt @code{SQL_QUERY_CACHE_TYPE} vom Wert von
@code{query_cache_startup_type} ab, als der Thread erzeugt wurde.
-@node Anfragen-Cache in SELECT, Anfragen-Cache-Status und -Wartung, Anfragen-Cache-Konfiguration, Anfragen-Cache
+@node Query Cache in SELECT, Query Cache Status and Maintenance, Query Cache Configuration, Query Cache
+@c German node Anfragen-Cache in SELECT
@subsection Anfragen-Cache-Optionen in @code{SELECT}
Es gibt zwei mögliche Anfragen-Cache-bezogene Parameter, die in einer
@@ -38070,7 +38055,8 @@ Es gibt zwei mögliche Anfragen-Cache-bezogene Parameter, die in einer
@end multitable
-@node Anfragen-Cache-Status und -Wartung, , Anfragen-Cache in SELECT, Anfragen-Cache
+@node Query Cache Status and Maintenance, , Query Cache in SELECT, Query Cache
+@c German node Anfragen-Cache-Status und -Wartung
@subsection Anfragen-Cache-Status und -Wartung
Mit dem @code{FLUSH QUERY CACHE}-Befehl können Sie den Anfragen-Cache
@@ -38108,7 +38094,7 @@ Gesamtzahl von Anfragen =
Der Anfragen-Cache benutzt variable Blocklängen, so dass
@code{Qcache_total_blocks} und @code{Qcache_free_blocks} eine
Speicherfragmentierung des Anfragen-Caches anzeigen können. Nach
-@code{FLUSH QUERY CACHE} verbleibt nur ein einzelner (grosser) freier
+@code{FLUSH QUERY CACHE} verbleibt nur ein einzelner (großer) freier
Block.
Hinweis: Jede Anfrage benötigt minimal zwei Blöcke (einen für den
@@ -38120,15 +38106,16 @@ ein Block zugewiesen werden.
@c ACHTUNG! Folgender NODE ist geändert, 2002-01-15!
@c ATTENTION! The following node has been changed 2001-01-15!
-@node Tabellentypen, Clients, Referenz, Top
+@node Table types, Clients, Reference, Top
+@c German node Tabellentypen
@chapter MySQL-Tabellentypen
@cindex Tabellentypen, Auswahl
-@cindex @code{BDB}-Tabellentyp
+@cindex @code{InnoDB}-Tabellentyp
@cindex @code{Berkeley_db}-Tabellentyp
@cindex @code{HEAP}-Tabellentyp
@cindex @code{ISAM}-Tabellentyp
-@cindex @code{InnoDB}-Tabellentyp
+@cindex @code{BDB}-Tabellentyp
@cindex @code{MERGE}-Tabellentyp
@cindex MySQL-Tabellentypen
@cindex @code{MyISAM}-Tabellentyp
@@ -38148,9 +38135,9 @@ gespeichert.
Beachten Sie, dass Sie für die Benutzung von @code{InnoDB}-Tabellen
zumindest die @code{innodb_data_file_path}-Startoption benötigen.
-@xref{Mit InnoDB anfangen}.
+@xref\{InnoDB start}.
-Der vorgabemässige Tabellentyp in MySQL ist @code{MyISAM}. Wenn Sie
+Der vorgabemäßige Tabellentyp in MySQL ist @code{MyISAM}. Wenn Sie
versuchen, einen Tabellentyp zu benutzen, der nicht einkompiliert oder
aktiviert ist, erzeugt MySQL statt dessen eine Tabelle vom Typ
@code{MyISAM}. Das ist ein sehr nützliches Feature, wenn Sie Tabellen
@@ -38204,26 +38191,28 @@ Benötigen weniger Arbeitsspeicher für Aktualisierungen.
Sie können TST- and NTST-Tabellen in denselben Statements kombinieren, um
das Beste aus beiden Welten zu bekommen.
+
+
@menu
-* MyISAM:: MyISAM-Tabellen
-* MERGE:: MERGE-Tabellen
-* ISAM:: ISAM-Tabellen
-* HEAP:: HEAP-Tabellen
-* InnoDB:: InnoDB-Tabellen
-* BDB:: BDB- oder Berkeley_db-Tabellen
+* MyISAM::
+* MERGE::
+* ISAM::
+* HEAP::
+* InnoDB::
+* BDB::
@end menu
-
-@node MyISAM, MERGE, Tabellentypen, Tabellentypen
+@node MyISAM, MERGE, Table types, Table types
+@c German node MyISAM
@section MyISAM-Tabellen
-@code{MyISAM} ist der vorgabemässige Tabellentyp in MySQL-Version 3.23. Er
+@code{MyISAM} ist der vorgabemäßige Tabellentyp in MySQL-Version 3.23. Er
basiert auf dem @code{ISAM}-Code und hat viele nützliche Erweiterungen.
Der Index wird in einer Datei mit der Endung @code{.MYI} (MYIndex)
gespeichert, die Daten in einer Datei mit der Endung @code{.MYD} (MYData).
Sie können @code{MyISAM}-Tabellen mit dem @code{myisamchk}-Dienstprogramm
-überprüfen und reparieren. @xref{Reparatur}. Sie können
+überprüfen und reparieren. @xref\{Repair}. Sie können
@code{MyISAM}-Tabellen mit @code{myisampack} komprimieren, damit sie viel
weniger Speicherplatz benötigen. @xref{myisampack}.
@@ -38246,21 +38235,21 @@ wenn Zeilen gelöscht werden. Wenn alle freien Blöcke aufgebraucht sind,
können alle zukünftigen Einfügeoperationen auf die zeitgleiche Art
erfolgen.
@item
-Unterstützung für grosse Dateien (63-Bit) auf Dateisystemen /
-Betriebssystemen, die grosse Dateien unterstützen.
+Unterstützung für große Dateien (63-Bit) auf Dateisystemen /
+Betriebssystemen, die große Dateien unterstützen.
@item
Alle Daten werden mit dem niedrigen Byte zuerst gespeichert. Das macht die
Daten Maschinen- und Betriebssystem-unabhängig. Die einzige Anforderung
ist, dass die Maschine zweien-komplementäre vorzeichenbehaftete Ganzzahlen
(two's-complement signed integers) benutzt, was bei jeder Maschine in den
-letzten 20 Jahren der Fall war), sowie das IEEE-Fliesskomma-Format (bei
+letzten 20 Jahren der Fall war), sowie das IEEE-Fließkomma-Format (bei
Mainstream-Maschinen absolut dominierend). Die einzige Art von Maschinen,
die vielleicht keine Binärkompatibilität unterstützen, sind eingebettete
Systeme (Embedded Systems), weil diese manchmal eigentümliche Prozessoren
haben.
Wenn Daten mit dem niedrigen Byte zuerst gespeichert werden, ergibt sich
-daraus kein grosser Geschwindigkeitsnachteil. Die Bytes in einer
+daraus kein großer Geschwindigkeitsnachteil. Die Bytes in einer
Tabellenzeile sind normalerweise unzusammenhängend und man benötigt kaum
mehr Ressourcen, um ein unzusammenhängendes Byte in Reihenfolge statt in
umgekehrter Reihenfolge zu lesen. Der tatsächliche Hole-Spaltenwert-Code
@@ -38287,12 +38276,12 @@ Platzausnutzung im Schlüsselbaum.
@code{NULL}-Werte sind in indizierten Spalten erlaubt. Dafür werden 0 bis 1
Byte pro Schlüssel benötigt.
@item
-Die maximale Schlüssellänge beträgt vorgabemässig 500 Bytes (das kann beim
+Die maximale Schlüssellänge beträgt vorgabemäßig 500 Bytes (das kann beim
Neukompilieren geändert werden). Wenn Schlüssel länger als 250 Bytes sind,
-wird für diese eine höhere Schlüsselblockgrösse als die vorgabemässigen
+wird für diese eine höhere Schlüsselblockgröße als die vorgabemäßigen
1024 Bytes benutzt.
@item
-Die maximale Anzahl von Schlüsseln pro Tabelle beträgt vorgabemässig 32.
+Die maximale Anzahl von Schlüsseln pro Tabelle beträgt vorgabemäßig 32.
Diese kann bis auf 64 erhöht werden, ohne dass @code{myisamchk} neu
kompiliert werden muss.
@item
@@ -38303,7 +38292,7 @@ Tabellen, die diese Kennzeichnung nicht haben.
@code{myisamchk -a} speichert Statistiken für Schlüsselteile (und nicht nur
für gesamte Schlüssel wie bei @code{ISAM}).
@item
-Zeilen dynamischer Grösse werden viel weniger fragmentiert werden, wenn
+Zeilen dynamischer Größe werden viel weniger fragmentiert werden, wenn
Lösch- mit Aktualisierungs- und Einfügeoperationen gemischt werden. Dafür
wird gesorgt, indem angrenzende gelöschte Blöcke automatisch kombiniert
werden und dadurch, dass Blöcke erweitert werden, wenn der nächste Block
@@ -38329,7 +38318,7 @@ Unterstützung für einen echten @code{VARCHAR}-Typ. Eine
Tabellen mit @code{VARCHAR} können eine feste oder dynamische
Datensatzlänge haben.
@item
-@code{VARCHAR} und @code{CHAR} können bis zu 64 KB gross sein. Alle
+@code{VARCHAR} und @code{CHAR} können bis zu 64 KB Groß sein. Alle
Schlüsselsegmente haben ihre eigene Sprachdefinition. Das versetzt MySQL in
die Lage, unterschiedliche Sprachdefinitionen pro Spalte zu haben.
@item
@@ -38364,17 +38353,17 @@ werden sollte. @strong{Hinweis:} Dieser Parameter wird in Megabytes
angegeben!
@item @code{-O myisam_max_sort_file_size=#}
@tab Die schnelle Index-Sortiermethode beim Erzeugen eines Indexes nicht
-benutzen, wenn die temporäre Datei grösser als dieser Wert werden würde.
+benutzen, wenn die temporäre Datei größer als dieser Wert werden würde.
@strong{Hinweis:} Dieser Parameter wird in Megabytes angegeben!
megabytes!--
@item @code{-O myisam_bulk_insert_tree_size=#}
- @tab Die Grösse des Baum-Caches, der bei der Optimierung von
+ @tab Die Größe des Baum-Caches, der bei der Optimierung von
Massen-Einfügeoperationen benutzt wird. @strong{Hinweis:} Das ist die
Begrenzung @strong{pro Thread}!
@end multitable
Die automatische Wiederherstellung wird aktiviert, wenn Sie @code{mysqld}
-mit @code{--myisam-recover=#} starten. @xref{Kommandozeilenoptionen}. Beim
+mit @code{--myisam-recover=#} starten. @xref\{Command-line options}. Beim
Öffnen wird geprüft, ob die Tabelle als beschädigt gekennzeichnet ist oder
ob die Zählvariable für die Tabelle nicht 0 ist und Sie mit
@code{--skip-locking} laufen lassen. Wenn eine dieser Bedingungen erfüllt
@@ -38420,23 +38409,25 @@ laufen lassen, beachten Sie, dass Sie ein Cron-Skript haben sollten, dass
automatisch Dateien mit Namen wie @file{tabellenname-datetime.BAK} aus den
Datenbank-Verzeichnissen auf ein Sicherungsmedium verschiebt.
-@xref{Kommandozeilenoptionen}.
+@xref\{Command-line options}.
+
+
@menu
-* Speicherplatz für Schlüssel:: Für Schlüssel benötigter Speicherplatz
-* MyISAM-Tabellenformate:: MyISAM-Tabellenformate
-* MyISAM-Tabellenprobleme:: MyISAM-Tabellenprobleme
+* Key space::
+* MyISAM table formats::
+* MyISAM table problems::
@end menu
-
-@node Speicherplatz für Schlüssel, MyISAM-Tabellenformate, MyISAM, MyISAM
+@node Key space, MyISAM table formats, MyISAM, MyISAM
+@c German node Speicherplatz für Schlüssel
@subsection Für Schlüssel benötigter Speicherplatz
@cindex Speicherplatz für Schlüssel, MyISAM
MySQL unterstützt unterschiedliche Index-Typen, doch der normale Typ ist
ISAM oder MyISAM. Diese benutzen einen B-Baum-Index, und Sie können die
-Grösse der Index-Datei grob als @code{(schluessel_laenge+4)/0.67}
+Größe der Index-Datei grob als @code{(schluessel_laenge+4)/0.67}
kalkuliert, summiert über alle Schlüssel. (Das ist der schlechteste Fall,
bei dem alle Schlüssel in sortierter Reihenfolge eingeordnet werden und es
keinerlei Schlüssel-Komprimierung gibt.)
@@ -38456,7 +38447,8 @@ wenn Sie viele Ganzzahl-Schlüssel mit identischem Präfix haben, wenn die
Zahlen mit dem hohen Byte zuerst gespeichert werden.
-@node MyISAM-Tabellenformate, MyISAM-Tabellenprobleme, Speicherplatz für Schlüssel, MyISAM
+@node MyISAM table formats, MyISAM table problems, Key space, MyISAM
+@c German node MyISAM-Tabellenformate
@subsection MyISAM-Tabellenformate
@strong{MyISAM} unterstützt 3 verschiedene Tabellentypen. Zwei von ihnen
@@ -38465,24 +38457,26 @@ dritte, komprimierte Tabellen, kann nur mit dem
@code{myisampack}-Dienstprogramm erzeugt werden.
Wenn Sie eine Tabelle erzeugen (@code{CREATE}) oder ändern (@code{ALTER}),
-können Sie bei Tabellen, die kein @code{BLOB} enhalten, ein dynamisches
+können Sie bei Tabellen, die kein @code{BLOB} enthalten, ein dynamisches
(@code{DYNAMIC}) oder festes (@code{FIXED}) Tabellenformat mit der
@code{ROW_FORMAT=#}-Tabellenoption erzwingen. Zukünftig werden Sie in der
Lage sein, Tabellen zu komprimieren / dekomprimieren, indem Sie
@code{ROW_FORMAT=compressed | default} für @code{ALTER TABLE} angeben.
@xref{CREATE TABLE}.
+
+
@menu
-* Statisches Format:: Kennzeichen statischer (Festlängen-) Tabellen
-* Dynamisches Format:: Kennzeichen dynamischer Tabellen
-* Komprimiertes Format:: Kennzeichen komprimierter Tabellen
+* Static format::
+* Dynamic format::
+* Compressed format::
@end menu
-
-@node Statisches Format, Dynamisches Format, MyISAM-Tabellenformate, MyISAM-Tabellenformate
+@node Static format, Dynamic format, MyISAM table formats, MyISAM table formats
+@c German node Statisches Format
@subsubsection Kennzeichen statischer (Festlängen-) Tabellen
-Das ist das vorgabemässige Format. Es wird benutzt, wenn die Tabelle keine
+Das ist das vorgabemäßige Format. Es wird benutzt, wenn die Tabelle keine
@code{VARCHAR}-, @code{BLOB}- oder @code{TEXT}-Spalten enthält.
Dieses Format ist das einfachste und sicherste Format. Es ist auch das
@@ -38513,7 +38507,7 @@ Leicht zu cachen.
Nach einem Absturz leicht zu rekonstruieren, weil sich Datensätze an festen
Positionen befinden.
@item
-Müssen nicht (mit @code{myisamchk}) reorganisiert werden, es sei denn, eine
+müssen nicht (mit @code{myisamchk}) reorganisiert werden, es sei denn, eine
riesige Anzahl von Datensätzen wurde gelöscht und Sie wollen dem
Betriebssystem freien Speicherplatz zurückgeben.
@item
@@ -38521,7 +38515,8 @@ Benötigen normalerweise mehr Speicherplatz als dynamische Tabellen.
@end itemize
-@node Dynamisches Format, Komprimiertes Format, Statisches Format, MyISAM-Tabellenformate
+@node Dynamic format, Compressed format, Static format, MyISAM table formats
+@c German node Dynamisches Format
@subsubsection Kennzeichen dynamischer Tabellen
@cindex Kennzeichen dynamischer Tabellen
@@ -38561,7 +38556,7 @@ Zeichenketten-Inhalt gespeichert.
Benötigen üblicherweise weniger Plattenplatz als Festlängen-Tabellen.
@item
Jeder Datensatz benutzt nur so viel Speicherplatz wie erforderlich. Wenn
-ein Datensatz grösser wird, wird er in so viele Teile wie erforderlich
+ein Datensatz größer wird, wird er in so viele Teile wie erforderlich
aufgeteilt. Hierdurch wird Datensatzfragmentierung hervorgerufen.
@item
Wenn Sie eine Zeile mit Informationen aktualisieren, die die Zeilenlänge
@@ -38586,16 +38581,17 @@ Die erwartete Zeilenlänge bei Datensätzen dynamischer Länge ist:
@end example
Für jeden Link kommen 6 Bytes hinzu. Ein dynamischer Datensatz wird immer
-dann verknüpft (linked), wenn eine Aktualisierung eine Vergrösserung des
+dann verknüpft (linked), wenn eine Aktualisierung eine Vergrößerung des
Datensatzes bewirkt. Jede neue Verknüpfung hat mindestens 20 Bytes, so dass
-die nächste Vergrösserung wahrscheinlich in dieselbe Verknüpfung passt.
+die nächste Vergrößerung wahrscheinlich in dieselbe Verknüpfung passt.
Wenn nicht, entsteht eine weitere Verknüpfung. Sie können mit
@code{myisamchk -ed} prüfen, wie viele Verknüpfungen es gibt. Alle
Verknüpfungen können mit @code{myisamchk -r} entfernt werden.
@end itemize
-@node Komprimiertes Format, , Dynamisches Format, MyISAM-Tabellenformate
+@node Compressed format, , Dynamic format, MyISAM table formats
+@c German node Komprimiertes Format
@subsubsection Kennzeichen komprimierter Tabellen
@cindex Tabellen, komprimiertes Format
@@ -38616,7 +38612,7 @@ CD-ROMs).
@item
Jeder Datensatz wird separat komprimiert (sehr geringer Zugriffs-Overhead).
Der Header für einen Datensatz hat eine feste Länge (1 bis 3 Bytes),
-abhängig vom grössten Datensatz in der Tabelle. Jede Spalte wird
+abhängig vom größten Datensatz in der Tabelle. Jede Spalte wird
unterschiedlich komprimiert. Einige Kompressionstypen sind:
@itemize @minus
@item
@@ -38648,20 +38644,23 @@ Kann mit @code{myisamchk} dekomprimiert werden.
@end itemize
-@node MyISAM-Tabellenprobleme, , MyISAM-Tabellenformate, MyISAM
+@node MyISAM table problems, , MyISAM table formats, MyISAM
+@c German node MyISAM-Tabellenprobleme
@subsection MyISAM-Tabellenprobleme
Das Dateiformat, das MySQL benutzt, um Daten zu speichern, wurde ausgiebig
getestet, aber es gibt immer Umstände, die dazu führen können, dass
Datenbanktabellen beschädigt werden.
+
+
@menu
-* Beschädigte MyISAM-Tabellen:: Beschädigte MyISAM-Tabellen
-* MyISAM-Tabellenschliessen:: Client benutzt Tabelle oder hat sie nicht korrekt geschlossen
+* Corrupted MyISAM tables::
+* MyISAM table close::
@end menu
-
-@node Beschädigte MyISAM-Tabellen, MyISAM-Tabellenschliessen, MyISAM-Tabellenprobleme, MyISAM-Tabellenprobleme
+@node Corrupted MyISAM tables, MyISAM table close, MyISAM table problems, MyISAM table problems
+@c German node Beschädigte MyISAM-Tabellen
@subsubsection Beschädigte MyISAM-Tabellen
Obwohl das MyISAM-Tabellenformat sehr zuverlässig ist (alle Änderungen an
@@ -38704,16 +38703,17 @@ Tabelle auch mit dem @code{myisamchk}-Befehl reparieren.
@code{myisamchk-Syntax}.
Wenn Ihre Tabellen oft beschädigt werden, sollten Sie versuchen, den Grund
-dafür herauszufinden! @xref{Abstürze}.
+dafür herauszufinden! @xref\{Crashing}.
In diesem Fall ist es am wichtigsten zu wissen, ob die Tabelle durch einen
Absturz von @code{mysqld} beschädigt wurde (das können Sie leicht
feststellen, wenn es eine aktuelle Zeile @code{restarted mysqld} in der
mysqld-Fehlerdatei gibt). Wenn das nicht der Fall ist, sollten Sie
-versuchen, daraus einen Testfall zu machen. @xref{Reproduzierbarer Testfall}.
+versuchen, daraus einen Testfall zu machen. @xref\{Reproduceable test case}.
-@node MyISAM-Tabellenschliessen, , Beschädigte MyISAM-Tabellen, MyISAM-Tabellenprobleme
+@node MyISAM table close, , Corrupted MyISAM tables, MyISAM table problems
+@c German node MyISAM-Tabellenschließen
@subsubsection Client benutzt Tabelle oder hat sie nicht korrekt geschlossen
Jede @code{MyISAM}-@code{.MYI}-Datei hat im Header einen Zähler, der
@@ -38727,7 +38727,7 @@ erhalten:
# client is using or hasn't closed the table properly
@end example
-heisst das, dass der Zähler nicht mehr synchron ist. Das bedeutet nicht,
+heißt das, dass der Zähler nicht mehr synchron ist. Das bedeutet nicht,
dass die Tabelle beschädigt ist, aber Sie sollten zumindest eine
Überprüfung vornehmen, um sicherzustellen, dass die Tabelle in Ordnung ist.
@@ -38750,7 +38750,7 @@ der Zähler auf 0 zurückgesetzt.
@item
Um Probleme zu vermeiden, die durch Interaktion mit anderen Prozessen
entstehen, die vielleicht eine Prüfung der Tabelle durchführen, wird der
-Zähler beim Schliessen nicht heruntergezählt, wenn er 0 war.
+Zähler beim Schließen nicht heruntergezählt, wenn er 0 war.
@end itemize
Mit anderen Worten kann der Zähler nur in folgenden Fällen nicht mehr
@@ -38761,7 +38761,7 @@ synchron sein:
Die @code{MyISAM}-Tabellen werden ohne @code{LOCK} und @code{FLUSH TABLES}
kopiert.
@item
-MySQL ist zwischen einer Aktualisierung und dem endgültigen Schliessen
+MySQL ist zwischen einer Aktualisierung und dem endgültigen Schließen
abgestürzt. (Beachten Sie, dass die Tabelle trotzdem in Ordnung sein kann,
weil MySQL stets für alles zwischen jedem Statement Schreibvorgänge
durchführt.
@@ -38779,7 +38779,8 @@ wird.
@end itemize
-@node MERGE, ISAM, MyISAM, Tabellentypen
+@node MERGE, ISAM, MyISAM, Table types
+@c German node MERGE
@section MERGE-Tabellen
@cindex Tabellen, Merge-
@@ -38826,10 +38827,10 @@ können Sie Daten aus unterschiedlichen Monaten in separaten Dateien
speichern, einige davon mit @code{myisampack} komprimieren und dann eine
@code{MERGE}-Tabelle erzeugen, um sie wie eine zu benutzen.
@item
-Mehr Geschwindigkeit. Sie können eine grosse Nur-Lese-Tabelle nach
+Mehr Geschwindigkeit. Sie können eine große Nur-Lese-Tabelle nach
bestimmten Kriterien aufspalten und die verschiedenen Tabellenteile auf
unterschiedlichen Festplatten speichern. Eine @code{MERGE}-Tabelle darauf
-könnte viel schneller sein als die grosse Tabelle zu benutzen. (Natürlich
+könnte viel schneller sein als die große Tabelle zu benutzen. (Natürlich
können Sie auch ein RAID benutzen, um dieselben Vorteile zu erzielen.)
@item
Effizientere Suchen durchführen. Wenn Sie genau wissen, wonach Sie suchen,
@@ -38840,7 +38841,7 @@ möglicherweise mit Dateien, die sich überlappen.
@item
Effizientere Reparaturen durchführen. Es ist leichter, die individuellen
Dateien zu reparieren, die auf eine @code{MERGE}-Datei gemappt sind, als
-eine wirklich grosse Datei zu reparieren.
+eine wirklich große Datei zu reparieren.
@item
Sofortiges Mappen vieler Dateien als einer. Eine @code{MERGE}-Tabelle
benutzt den Index der individuellen Tabellen. Sie muss selbst keinen
@@ -38848,12 +38849,12 @@ eigenen Index warten. Dadurch können Sie @code{MERGE}-Tabellensammlungen
SEHR schnell erzeugen oder neu mappen. Beachten Sie, dass Sie die
Schlüsseldefinitionen angeben, wenn Sie eine @code{MERGE}-Tabelle erzeugen!
@item
-Wenn Sie einen Satz von Tabellen bei Bedarf oder im Stapel zu einer grossen
+Wenn Sie einen Satz von Tabellen bei Bedarf oder im Stapel zu einer großen
Tabelle vereinigen, sollten Sie statt dessen bei Bedarf eine
@code{MERGE}-Tabelle darauf erzeugen. Das ist viel schneller und spart eine
Menge Speicherplatz.
@item
-Umgehen der Dateigrössengrenze des Betriebssystems.
+Umgehen der Dateigrößengrenze des Betriebssystems.
@item
Sie können ein Alias / Synonym für eine Tabelle erzeugen, indem Sie sie
einfach ein MERGE über eine Tabelle benutzen. Das sollte keine spürbaren
@@ -38956,11 +38957,13 @@ Die @code{.MRG}-Datei ändern und ein @code{FLUSH TABLE} auf die
Handler zu zwingen, die neue Definitionsdatei einzulesen.
@end itemize
+
@menu
-* MERGE-Tabellenprobleme::
+* MERGE table problems::
@end menu
-@node MERGE-Tabellenprobleme, , MERGE, MERGE
+@node MERGE table problems, , MERGE, MERGE
+@c German node MERGE-Tabellenprobleme
@subsection MERGE-Tabellenprobleme.
Folgende Probleme sind bei @code{MERGE}-Tabellen bekannt:
@@ -38996,14 +38999,15 @@ MySQL 4.0.x behoben.
@code{DROP TABLE} auf eine Tabelle, die in einer @code{MERGE}-Tabelle
benutzt wird, funktioniert unter Windows nicht, weil der
@code{MERGE}-Handler das Tabellen-Mapping versteckt vor der oberen Ebene
-von MySQL durchführt. Weil Windows es nicht zulässt, dass Dateien gelöscht
+von MySQL durchführt. Weil Windows es nicht zuläßt, dass Dateien gelöscht
werden, die offen sind, müssen Sie zuerst alle @code{MERGE}-Tabellen auf
Platte zurückschreiben (mit @code{FLUSH TABLES}) oder die
@code{MERGE}-Tabelle löschen, bevor Sie die Tabelle löschen. Das wird zu
dem Zeitpunkt behoben, wenn Sichten (@code{VIEW}s) eingeführt werden.
@end itemize
-@node ISAM, HEAP, MERGE, Tabellentypen
+@node ISAM, HEAP, MERGE, Table types
+@c German node ISAM
@section ISAM-Tabellen
@cindex tables, ISAM
@@ -39014,7 +39018,7 @@ wird recht bald verschwinden (wahrscheinlich in MySQL 4.1), weil
benutzt einen @code{B-tree}-Index. Der Index wird in einer Datei mit der
Endung @code{.ISM} gespeichert, und die Daten in einer Datei mit der Endung
@code{.ISD}. Sie können @code{ISAM}-Tabellen mit dem
-@code{isamchk}-Dienstprogramm prüfen / reparieren. @xref{Katastrophenschutz und Wiederherstellung}.
+@code{isamchk}-Dienstprogramm prüfen / reparieren. @xref\{Disaster Prevention}.
@code{ISAM} hat folgende Features / Eigenschaften:
@@ -39028,7 +39032,7 @@ Maschinen- / Betriebssystem-abhängig.
@end itemize
Die meisten Dinge, die für @code{MyISAM}-Tabellen gelten, gelten auch für
-@code{ISAM}-Tabellen. @xref{MyISAM}. Die grössten Unterschiede im Vergleich
+@code{ISAM}-Tabellen. @xref{MyISAM}. Die größten Unterschiede im Vergleich
zu @code{MyISAM} sind:
@itemize @bullet
@@ -39053,7 +39057,8 @@ mysql> ALTER TABLE tabelle TYPE = MYISAM;
Die eingebetteten (embedded) MySQL-Versionen unterstützen keine
@code{ISAM}-Tabellen.
-@node HEAP, InnoDB, ISAM, Tabellentypen
+@node HEAP, InnoDB, ISAM, Table types
+@c German node HEAP
@section HEAP-Tabellen
@cindex Tabellen, @code{HEAP}
@@ -39126,7 +39131,7 @@ welcher Index benutzt wird). Das kann einige Anfragen betreffen, wenn Sie
eine @code{MyISAM}-Tabelle in eine @code{HEAP}-Tabelle umwandeln.
@item
Um sicherzustellen, dass Sie nicht versehentlich etwas Unkluges tun, können
-Sie keine @code{HEAP}-Tabellen grösser als @code{max_heap_table_size}
+Sie keine @code{HEAP}-Tabellen größer als @code{max_heap_table_size}
erzeugen.
@end itemize
@@ -39140,28 +39145,31 @@ SUM_OVER_ALL_KEYS(max_length_of_key + sizeof(char*) * 2)
@code{sizeof(char*)} ist 4 auf 32-Bit-Maschinen und 8 auf 64-Bit-Maschinen.
-@node InnoDB, BDB, HEAP, Tabellentypen
+@node InnoDB, BDB, HEAP, Table types
+@c German node InnoDB
@section InnoDB-Tabellen
+
+
@menu
-* Überblick über InnoDB:: Überblick über InnoDB-Tabellen
-* Mit InnoDB anfangen:: Mit InnoDB anfangen - Optionen
-* InnoDB initialisieren:: InnoDB-Tabellenplatz (Tablespace) erzeugen
-* InnoDB-Tabellen benutzen:: InnoDB-Tabellen erzeugen
-* Hinzufügen und entfernen:: Hinzufügen und Entfernen von InnoDB-Daten- und -Log-Dateien
-* Datensicherung:: Datensicherung und Wiederherstellung einer InnoDB-Datenbank
-* Verschieben:: Eine InnoDB-Datenbank auf eine andere Maschine verschieben
-* InnoDB-Transaktionsmodell:: Das InnoDB-Transaktionsmodell
-* Implementation:: Implementation des Multiversionings
-* Tabelle und Index:: Tabellen- und Index-Strukturen
-* Verwaltung von Datei-Speicherplatz:: Verwaltung von Datei-Speicherplatz und Festplatten-Eingaben / -Ausgaben
-* Fehlerbehandlung:: Fehlerbehandlung
-* InnoDB-Einschränkungen:: Beschränkungen von InnoDB-Tabellen
-* InnoDB-Kontaktinformationen:: InnoDB-Kontaktinformationen.
+* InnoDB overview::
+* InnoDB start::
+* InnoDB init::
+* Using InnoDB tables::
+* Adding and removing::
+* Backing up::
+* Moving::
+* InnoDB transaction model::
+* Implementation::
+* Table and index::
+* File space management::
+* Error handling::
+* InnoDB restrictions::
+* InnoDB contact information::
@end menu
-
-@node Überblick über InnoDB, Mit InnoDB anfangen, InnoDB, InnoDB
+@node InnoDB overview, InnoDB start, InnoDB, InnoDB
+@c German node Überblick über InnoDB
@subsection Überblick über InnoDB-Tabellen
@cindex Transaktionen, Unterstützung
@@ -39178,7 +39186,7 @@ für Sperr-Eskalation, weil die Sperren auf Zeilenebene bei InnoDB in sehr
wenig Speicherplatz passen. InnoDB-Tabellen unterstützen als erster
Tabellentyp in MySQL @code{FOREIGN KEY}-Beschränkungen.
-InnoDB wurde für maximale Performance bei der Bearbeitung grosser
+InnoDB wurde für maximale Performance bei der Bearbeitung großer
Datenmengen entworfen. Seine Prozessor-Effizienz wird wahrscheinlich von
keiner anderen Festplatten-basierenden relationalen Datenbank-Engine
erreicht.
@@ -39189,15 +39197,15 @@ Indexe im Hauptspeicher zu cachen. InnoDB speichert seine Tabellen und
Indexe in einem Tabellenplatz (Tablespace), der aus mehreren Dateien
bestehen kann. Das unterscheidet sich beispielsweise von MyISAM-Tabellen,
bei denen jede Tabelle als separate Datei gespeichert ist. InnoDB-Tabellen
-können jede beliebige Grösse annehmen, sogar auf Betriebssystemen, deren
-Dateigrösse auf 2 GB beschränkt ist.
+können jede beliebige Größe annehmen, sogar auf Betriebssystemen, deren
+Dateigröße auf 2 GB beschränkt ist.
Die neuesten Informationen über InnoDB finden Sie unter
@uref{http://www.innodb.com/}. Die aktuellste Version des InnoDB-Handbuchs
ist immer dort zu finden, und Sie können auch kommerzielle Lizenzen und
kommerziellen Support für InnoDB bestellen.
-InnoDB wird momentan (Oktober 2001) für die Produktion auf mehreren grossen
+InnoDB wird momentan (Oktober 2001) für die Produktion auf mehreren großen
Datenbank-Sites benutzt, die hohe Performance benötigen. Die bekannte
Internet-Newssite Slashdot.org läuft auf InnoDB. Mytrix Inc. speichert über
1 TB an Daten in InnoDB, und eine andere Site handhabt eine
@@ -39215,12 +39223,12 @@ bereits MySQL-3.23 installiert haben, können Sie MySQL-Max am einfachsten
installieren, indem Sie die ausführbare Datei für den Server
(@file{mysqld}) durch die entsprechende ausführbare Datei in der
Max-Distribution ersetzen. MySQL and MySQL-Max unterscheiden sich nur in
-Bezug auf die ausführbare Datei für den Server. @xref{MySQL-Binärdistributionen}. @xref{mysqld-max, , @code{mysqld-max}}.
+Bezug auf die ausführbare Datei für den Server. @xref\{MySQL binaries}. @xref{mysqld-max, , @code{mysqld-max}}.
Um MySQL mit InnoDB-Unterstützung zu kompilieren, laden Sie MySQL-3.23.34a
oder neuer von @uref{http://www.mysql.com/} herunter und konfigurieren Sie
MySQL mit der @code{--with-innodb}-Option. Sehen Sie im Handbuch unter
-@xref{Installation der Quelldistribution} nach.
+@xref\{Installing source} nach.
@example
cd /pfad/zur/quelldistribution/von/mysql-3.23.37
@@ -39236,23 +39244,24 @@ innodb_data_file_path=ibdata:30M
@end example
Für eine gute Performance ist es jedoch am besten, Optionen wie die unten
-im Abschnitt @xref{Mit InnoDB anfangen} empfohlenen anzugeben.
+im Abschnitt @xref\{InnoDB start} empfohlenen anzugeben.
InnoDB wird unter der GNU-GPL-Lizenz Version 2 (vom Juni 1991) vertrieben.
In den Quelldistributionen von MySQL erscheint InnoDB als Unterverzeichnis.
-@node Mit InnoDB anfangen, InnoDB initialisieren, Überblick über InnoDB, InnoDB
+@node InnoDB start, InnoDB init, InnoDB overview, InnoDB
+@c German node Mit InnoDB anfangen
@subsection Mit InnoDB anfangen - Optionen
Um InnoDB-Tabellen in MySQL-Max-3.23 zu benutzen, @strong{MÜSSEN} Sie
Konfigurationsparameter im @code{[mysqld]}-Abschnitt der
-MySQL-Konfigurationsdatei @file{my.cnf} angeben. @xref{Optionsdateien}.
+MySQL-Konfigurationsdatei @file{my.cnf} angeben. @xref\{Option files}.
Der einzige erforderliche Parameter, um InnoDB in MySQL-Max-3.23 benutzen
zu können, ist @code{innodb_data_file_path}.
In MySQL-4.0 müssen Sie nicht einmal @code{innodb_data_file_path} angeben.
-Vorgabemässig wird eine 64 MB grosse Daten-Datei @file{ibdata1} im
+Vorgabemäßig wird eine 64 MB große Daten-Datei @file{ibdata1} im
@code{datadir} von MySQL erzeugt.
Um jedoch eine gute Performance zu erzielen, MÜSSEN Sie explizit die unten
@@ -39263,7 +39272,7 @@ MySQL. Wenn Sie @code{innodb_data_home_dir} nicht angeben, können Sie in
@code{innodb_data_file_path} keine absoluten Pfade benutzen.
Nehmen wir an, Sie haben eine Windows-NT-Maschine mit 128 MB RAM und einer
-einzelnen 10 GB grossen Festplatte. Unten steht ein Beispiel von möglichen
+einzelnen 10 GB großen Festplatte. Unten steht ein Beispiel von möglichen
Konfigurationsparametern in @file{my.cnf} für InnoDB:
@example
@@ -39275,7 +39284,7 @@ innodb_data_home_dir = c:\ibdata
# Die Daten-Dateien müssen in der Lage sein,
# Ihre Daten und Indexe aufzunehmen
innodb_data_file_path = ibdata1:2000M;ibdata2:2000M
-# Puffer-Poolgrösse auf 50% bis 80%
+# Puffer-Poolgröße auf 50% bis 80%
# des Arbeitsspeichers Ihres Computers setzen
set-variable = innodb_buffer_pool_size=70M
set-variable = innodb_additional_mem_pool_size=10M
@@ -39285,8 +39294,8 @@ innodb_log_group_home_dir = c:\iblogs
innodb_log_arch_dir = c:\iblogs
innodb_log_archive=0
set-variable = innodb_log_files_in_group=3
-# Die Log-Dateigrösse auf ungefähr 15%
-# der Puffer-Poolgrösse setzen
+# Die Log-Dateigröße auf ungefähr 15%
+# der Puffer-Poolgröße setzen
set-variable = innodb_log_file_size=10M
set-variable = innodb_log_buffer_size=8M
# ..flush_log_at_trx_commit auf 0 setzen,
@@ -39298,8 +39307,8 @@ set-variable = innodb_lock_wait_timeout=50
@end example
Beachten Sie, dass die Daten-Dateien bei einigen Betriebssystemen kleiner
-als 2 GB sein müssen! Die Gesamtgrösse von Daten-Dateien muss grösser oder
-gleich 10 MB sein. Die Gesamtgrösse der Log-Dateien MUSS auf
+als 2 GB sein müssen! Die Gesamtgröße von Daten-Dateien muss größer oder
+gleich 10 MB sein. Die Gesamtgröße der Log-Dateien MUSS auf
32-Bit-Computern kleiner als 4 GB sein.
@strong{InnoDB legt keine Verzeichnisse an. Diese müssen Sie selbst
@@ -39331,7 +39340,7 @@ innodb_data_home_dir = /
# Die Daten-Dateien müssen in der Lage sein,
# Ihre Daten und Indexe aufzunehmen
innodb_data_file_path = ibdata/ibdata1:2000M;dr2/ibdata/ibdata2:2000M
-# Puffer-Poolgrösse auf 50% bis 80%
+# Puffer-Poolgröße auf 50% bis 80%
# des Arbeitsspeichers Ihres Computers setzen
set-variable = innodb_buffer_pool_size=350M
set-variable = innodb_additional_mem_pool_size=20M
@@ -39341,8 +39350,8 @@ innodb_log_group_home_dir = /dr3/iblogs
innodb_log_arch_dir = /dr3/iblogs
innodb_log_archive=0
set-variable = innodb_log_files_in_group=3
-# Die Log-Dateigrösse auf ungefähr 15%
-# der Puffer-Poolgrösse setzen
+# Die Log-Dateigröße auf ungefähr 15%
+# der Puffer-Poolgröße setzen
set-variable = innodb_log_file_size=50M
set-variable = innodb_log_buffer_size=8M
# ..flush_log_at_trx_commit auf 0 setzen,
@@ -39368,7 +39377,7 @@ derselben physikalischen Festplatte platziert sind. Es verbessert häufig
die Performance, Log-Dateien auf anderen Platten als die Daten zu
platzieren.
-Die Bedeutung der Konfigurationsparamenter ist wie folgt:
+Die Bedeutung der Konfigurationsparameter ist wie folgt:
@multitable @columnfractions .30 .70
@item @strong{Option} @tab @strong{Beschreibung}
@@ -39376,14 +39385,14 @@ Die Bedeutung der Konfigurationsparamenter ist wie folgt:
Der allgemeine Teil des Verzeichnispfads für alle InnoDB-Daten-Dateien. Die
Vorgabe für diesen Parameter ist das @code{datadir} von MySQL.
@item @code{innodb_data_file_path} @tab
-Pfade zu individuellen Daten-Dateien und ihre Grössen. Der volle
+Pfade zu individuellen Daten-Dateien und ihre Größen. Der volle
Verzeichnispfad zu jeder Daten-Datei wird durch Verkettung von
innodb_data_home_dir mit den hier angegebenen Pfaden hergestellt. Die
-Dateigrössen werden in Megabytes angegeben, daher das 'M' nach der obigen
+Dateigrößen werden in Megabytes angegeben, daher das 'M' nach der obigen
Angabe. InnoDB versteht auch die Abkürzung 'G', 1G bedeutet 1024M. Ab
-3.23.44 können Sie die Dateigrösse auf mehr als 4 GB setzen, wenn das
-Betriebssystem grosse Dateien unterstützt. Auf einige Betriebssystemen
-müssen Dateien kleiner als 2 GB sein. Die Summe der Dateigrössen muss
+3.23.44 können Sie die Dateigröße auf mehr als 4 GB setzen, wenn das
+Betriebssystem große Dateien unterstützt. Auf einige Betriebssystemen
+müssen Dateien kleiner als 2 GB sein. Die Summe der Dateigrößen muss
mindestens 10 MB betragen.
@item @code{innodb_mirrored_log_groups} @tab
Anzahl identischer Kopien von Log-Gruppen, die für die Datenbank gehalten
@@ -39394,22 +39403,22 @@ Verzeichnispfad zu den InnoDB-Log-Dateien.
Anzahl von Log-Dateien in der Log-Gruppe. InnoDB schreibt in zirkulärer
Weise in die Dateien. Hier wird ein Wert 3 empfohlen.
@item @code{innodb_log_file_size} @tab
-Grösse jeder Log-Datei in einer Log-Gruppe in Megabytes. Sinnvolle Werte
-reichen von 1 MB bis 1/n-tel der Grösse des Puffer-Pools, die unten
+Größe jeder Log-Datei in einer Log-Gruppe in Megabytes. Sinnvolle Werte
+reichen von 1 MB bis 1/n-tel der Größe des Puffer-Pools, die unten
angegeben wird, wobei n die Anzahl der Log-Dateien in der Gruppe ist. Je
-grösser der Wert, desto weniger Checkpoint-Flush-Aktivität wird im Puffer
-benötigt, was Festplatten-Ein- und -Ausgaben erspart. Grössere Log-Dateien
+größer der Wert, desto weniger Checkpoint-Flush-Aktivität wird im Puffer
+benötigt, was Festplatten-Ein- und -Ausgaben erspart. Größere Log-Dateien
bedeutet jedoch auch, dass die Wiederherstellung im Fall eines Absturzes
-langsamer ist. Die Gesamtgrösse aller Log-Dateien muss auf 32-Bit-Computern
+langsamer ist. Die Gesamtgröße aller Log-Dateien muss auf 32-Bit-Computern
kleiner als 4 GB sein.
@item @code{innodb_log_buffer_size} @tab
-Die Grösse des Puffers, den InnoDB benutzt, um in die Log-Dateien auf
+Die Größe des Puffers, den InnoDB benutzt, um in die Log-Dateien auf
Platte zu schreiben. Sinnvolle Werte liegen im Bereich von 1 MB bis zur
-Hälfte der Gesamtgrösse der Log-Dateien. Ein grosser Log-Puffer erlaubt,
-dass grosse Transaktionen laufen können, ohne dass die Notwendigkeit
+Hälfte der Gesamtgröße der Log-Dateien. Ein großer Log-Puffer erlaubt,
+dass große Transaktionen laufen können, ohne dass die Notwendigkeit
besteht, das Log auf Platte zu schreiben, bis die Transaktion abgeschickt
-(commit) wird. Wenn Sie daher grosse Transaktionen haben, sparen Sie
-Festplatten-Ein- und Ausgaben, wenn Sie den Log-Puffer gross machen.
+(commit) wird. Wenn Sie daher große Transaktionen haben, sparen Sie
+Festplatten-Ein- und Ausgaben, wenn Sie den Log-Puffer Groß machen.
@item @code{innodb_flush_log_at_trx_commit} @tab
Normalerweise wird dieser Parameter auf 1 gesetzt, was bedeutet, dass beim
Abschicken (commit) einer Transaktion das Log auf Platte geschrieben wird
@@ -39428,19 +39437,19 @@ Wiederherstellung aus einer Datensicherung unter Benutzung seiner eigenen
Log-Dateien durchführt, gibt es momentan keine Notwendigkeit,
InnoDB-Log-Dateien zu archivieren.
@item @code{innodb_buffer_pool_size} @tab
-Die Grösse des Speicherpuffers, den InnoDB benutzt, um Daten und Indexe
-seiner Tabellen zu cachen. Je grösser Sie diesen Wert setzen, desto weniger
+Die Größe des Speicherpuffers, den InnoDB benutzt, um Daten und Indexe
+seiner Tabellen zu cachen. Je größer Sie diesen Wert setzen, desto weniger
Festplatten-Ein- und -Ausgaben werden für den Zugriff auf Daten in Tabellen
benötigt. Auf einem dedizierten Datenbank-Server können Sie diesen
Parameter auf bis zu 80% des physikalischen Arbeitsspeichers der Maschine
setzen. Setzen Sie ihn allerdings nicht zu hoch, weil bei manchen
Betriebssystemen der Wettbewerb um Arbeitsspeicher zu Paging führt.
@item @code{innodb_additional_mem_pool_size} @tab
-Die Grösse des Speicher-Pools, den InnoDB für die Speicherung von
+Die Größe des Speicher-Pools, den InnoDB für die Speicherung von
Daten-Wörterbuchinformationen und anderen internen Datenstrukturen benutzt.
Ein sinnvoller Wert hierfür könnte 2 MB sein. Je mehr Tabellen Sie jedoch
in Ihrer Applikation haben, desto mehr müssen Sie hier zuweisen. Wenn
-InnoDB in diesem Pool keinen Speicherplatz mehr hat, lässt es sich
+InnoDB in diesem Pool keinen Speicherplatz mehr hat, läßt es sich
Speicherplatz vom Betriebssystem zuweisen und schreibt Warnmeldungen in die
MySQL-Fehler-Log-Datei.
@item @code{innodb_file_io_threads} @tab
@@ -39463,7 +39472,8 @@ Ein andere Option ist @code{O_DSYNC}.
@end multitable
-@node InnoDB initialisieren, InnoDB-Tabellen benutzen, Mit InnoDB anfangen, InnoDB
+@node InnoDB init, Using InnoDB tables, InnoDB start, InnoDB
+@c German node InnoDB initialisieren
@subsection InnoDB-Tabellenplatz (Tablespace) erzeugen
Angenommen, Sie haben MySQL installiert und @file{my.cnf} so editiert, dass
@@ -39521,23 +39531,26 @@ InnoDB: Started
mysqld: ready for connections
@end example
+
+
@menu
-* Fehler bei der Erzeugung von InnoDB:: Falls etwas bei der Datenbank-Erzeugung schiefgeht
+* Error creating InnoDB::
@end menu
-
-@node Fehler bei der Erzeugung von InnoDB, , InnoDB initialisieren, InnoDB initialisieren
+@node Error creating InnoDB, , InnoDB init, InnoDB init
+@c German node Fehler bei der Erzeugung von InnoDB
@subsubsection Falls etwas bei der Datenbank-Erzeugung schiefgeht
Falls etwas bei der Datenbank-Erzeugung schiefgeht, sollten Sie alle durch
-InnoDB erzeugten Dateien löschen. Das heisst alle Daten-Dateien, alle
+InnoDB erzeugten Dateien löschen. Das heißt alle Daten-Dateien, alle
Log-Dateien, die kleine archivierte Log-Datei und - falls Sie bereits
InnoDB-Tabellen erzeugt haben, auch die entsprechenden @file{.frm}-Dateien
für diese Tabellen in den MySQL-Datenbankverzeichnissen. Danach können Sie
die InnoDB-Datenbankerzeugung erneut versuchen.
-@node InnoDB-Tabellen benutzen, Hinzufügen und entfernen, InnoDB initialisieren, InnoDB
+@node Using InnoDB tables, Adding and removing, InnoDB init, InnoDB
+@c German node InnoDB-Tabellen benutzen
@subsection InnoDB-Tabellen erzeugen
Angenommen, Sie haben den MySQL-Client mit dem Befehl @code{mysql test}
@@ -39569,7 +39582,7 @@ SHOW TABLE STATUS FROM test LIKE 'kunde'
Beachten Sie, dass die Statistiken, die @code{SHOW} über InnoDB-Tabellen
ausgibt, nur Näherungswerte sind: Sie werden für die SQL-Optimierung
-benutzt. Die für Tabelle und Indexe reservierten Grössen in Bytes sind
+benutzt. Die für Tabelle und Indexe reservierten Größen in Bytes sind
allerdings genau.
@subsubsection MyISAM-Tabellen in InnoDB-Tabellen umwandeln
@@ -39578,12 +39591,12 @@ InnoDB hat keine spezielle Optimierung für separate Index-Erzeugung. Daher
lohnt es sich nicht, die Tabelle zu exportieren und importieren und die
Indexe danach zu erzeugen. Die schnellste Art, eine Tabelle in InnoDB zu
ändern, ist, die Einfügungen direkt in eine InnoDB-Tabelle vorzunehmen,
-das heisst, @code{ALTER TABLE ... TYPE=INNODB} zu benutzen oder eine leere
+das heißt, @code{ALTER TABLE ... TYPE=INNODB} zu benutzen oder eine leere
InnoDB-Tabelle mit identischen Definitionen zu nehmen und die Zeilen mit
@code{INSERT INTO ... SELECT * FROM ...} einzufügen.
Um eine bessere Kontrolle über den Einfügeprozess zu erhalten, kann es
-besser sein, grosse Tabellen in Teilstücken einzufügen:
+besser sein, große Tabellen in Teilstücken einzufügen:
@example
INSERT INTO neue_tabelle SELECT * FROM alte_tabelle WHERE schluessel > etwas
@@ -39592,10 +39605,10 @@ INSERT INTO neue_tabelle SELECT * FROM alte_tabelle WHERE schluessel > etwas
Nachdem alle Daten eingefügt wurden, können Sie die Tabellen umbenennen.
-Während der Umwandlung grosser Tabellen sollten Sie den InnoDB-Puffer-Pool
+Während der Umwandlung großer Tabellen sollten Sie den InnoDB-Puffer-Pool
hoch setzen, um Festplatten-Ein- und -Ausgaben zu verringern, allerdings
nicht höher als 80% des physikalischen Arbeitsspeichers. Sie sollten die
-InnoDB-Log-Dateien gross machen und auch den Log-Puffer.
+InnoDB-Log-Dateien Groß machen und auch den Log-Puffer.
Stellen Sie sicher, dass Sie genug Tabellenplatz (Tablespace) haben!
InnoDB-Tabellen benötigen viel mehr Platz als MyISAM-Tabellen. Wenn ein
@@ -39618,7 +39631,7 @@ werden.
InnoDB-Version 3.23.44 hat Fremdschlüssel-(Foreign Key)-Beschränkungen.
InnoDB ist der erste MySQL-Tabellentyp, der die Definition von
-Fremdschlüssel-Beschränkungen zulässt, um die Integrität Ihrer Daten zu
+Fremdschlüssel-Beschränkungen zuläßt, um die Integrität Ihrer Daten zu
überwachen.
Die Syntax einer Fremdschlüsseldefinition in InnoDB:
@@ -39642,7 +39655,7 @@ aber nicht die Beschränkungen, die die Tabelle referenzieren.
Korrespondierende Spalten im Fremdschlüssel und dem referenzierten
Schlüssel müssen ähnliche interne Datentypen innerhalb InnoDB sein, so dass
sie ohne Typumwandlung verglichen werden können. Die Längen von
-Zeichenkettentypen müssen nicht dieselben sein. Die Grösse und Vorzeichen /
+Zeichenkettentypen müssen nicht dieselben sein. Die Größe und Vorzeichen /
kein Vorzeichen von Ganzzahltypen müssen dieselben sein.
Beim Prüfen von Fremdschlüsseln setzt InnoDB gemeinsame Sperren auf
@@ -39650,7 +39663,7 @@ Zeilenebene auf kind- und eltern-Datensätze, die es betrachten muss. InnoDB
prüft Fremdschlüssel-(Foreign Key)-Beschränkungen sofort: Die Prüfung wird
nicht bis zu einem Transaktions-Commit verschoben.
-InnoDB lässt zu, dass jegliche Tabelle gelöscht wird, selbst wenn das die
+InnoDB läßt zu, dass jegliche Tabelle gelöscht wird, selbst wenn das die
Fremdschlüssel-(Foreign Key)-Beschränkungen durchbrechen würde, die die
Tabelle referenzieren. Wenn Sie eine Tabelle löschen, werden die
Beschränkungen, die in ihrem CREATE-Statement definiert wurden, ebenfalls
@@ -39674,21 +39687,22 @@ Tabellen-Kommentar der Ausgabe aufgelistet.
InnoDB unterstützt noch kein @code{CASCADE ON DELETE} oder andere spezielle
Optionen für diese Beschränkungen.
-@node Hinzufügen und entfernen, Datensicherung, InnoDB-Tabellen benutzen, InnoDB
+@node Adding and removing, Backing up, Using InnoDB tables, InnoDB
+@c German node Hinzufügen und entfernen
@subsection Hinzufügen und Entfernen von InnoDB-Daten- und -Log-Dateien
-Sie können die Grösse einer InnoDB-Daten-Datei nicht vergrössern. Um Ihrem
+Sie können die Größe einer InnoDB-Daten-Datei nicht vergrößern. Um Ihrem
Tabellenplatz (Tablespace) mehr hinzuzufügen, müssen Sie eine neue
Daten-Datei hinzufügen. Um das zu tun, müssen Sie Ihre MySQL-Datenbank
herunter fahren, die @file{my.cnf}-Datei editieren und eine neue Datei zu
@code{innodb_data_file_path} hinzufügen. Dann starten Sie MySQL erneut.
-Momentan können Sie keine Daten-Datei aus InnoDB entfernen. Um die Grösse
+Momentan können Sie keine Daten-Datei aus InnoDB entfernen. Um die Größe
Ihrer Datenbank zu verringern, müssen Sie @file{mysqldump} benutzen, um
alle Ihre Tabellen zu dumpen, eine neue Datenbank erzeugen und Ihre
Tabellen in die neue Datenbank importieren.
-Wenn Sie die Anzahl oder die Grösse Ihrer InnoDB-Log-Dateien ändern wollen,
+Wenn Sie die Anzahl oder die Größe Ihrer InnoDB-Log-Dateien ändern wollen,
müssen Sie MySQL herunter fahren und sicher stellen, dass er ohne Fehler
herunter fuhr. Dann kopieren Sie die alten Log-Dateien an eine sichere
Stelle, falls etwas beim Herunterfahren schiefging und Sie die Datenbank
@@ -39697,10 +39711,11 @@ Log-Datei-Verzeichnis, editieren Sie @file{my.cnf} und starten Sie MySQL
noch einmal. InnoDB meldet beim Starten, dass es neue Log-Dateien anlegt.
-@node Datensicherung InnoDB, Hinzufügen und entfernen, InnoDB, Verschieben
+@node Backing up, Moving, Adding and removing, InnoDB
+@c German node Datensicherung InnoDB
@subsection Datensicherung und Wiederherstellung einer InnoDB-Datenbank
-Der Schlüssel zur sicheren Datenbankverwaltung sind regelmässige
+Der Schlüssel zur sicheren Datenbankverwaltung sind regelmäßige
Datensicherungen. Im eine 'binäre' Sicherung Ihrer Datenbank zu machen, tun
Sie folgendes:
@@ -39713,10 +39728,10 @@ Kopieren Sie Ihre Daten-Dateien an eine sichere Stelle.
@item
Kopieren Sie alle InnoDB-Log-Dateien an eine sichere Stelle.
@item
-Koperen Sie Ihre @file{my.cnf} Konfigurationsdatei(en) an eine sichere
+Kopieren Sie Ihre @file{my.cnf} Konfigurationsdatei(en) an eine sichere
Stelle.
@item
-Kopieren Sie alle @file{.frm}-Datein für Ihre InnoDB-Tabellen an eine
+Kopieren Sie alle @file{.frm}-Dateien für Ihre InnoDB-Tabellen an eine
sichere Stelle.
@end itemize
@@ -39724,17 +39739,17 @@ Momentan gibt es kein Online- oder inkrementelles Datensicherungsprogramm
für InnoDB, obwohl diese auf der TODO-Liste sind.
Zusätzlich zu den beschriebenen Binär-Datensicherungen sollten Sie
-ausserdem regelmässig Dumps Ihrer Tabellen mit @file{mysqldump} machen. Der
+ausserdem regelmäßig Dumps Ihrer Tabellen mit @file{mysqldump} machen. Der
Grund ist, dass eine Binärdatei beschädigt sein kann, ohne dass Sie das
bemerken. Gedumpte Tabellen werden in Textdateien gespeichert, die
Menschen-lesbar und viel einfacher als binäre Datenbankdateien sind. Aus
-gedumpten Dateien lässt sich Tabellenbeschädigung leichter erkennen und da
+gedumpten Dateien läßt sich Tabellenbeschädigung leichter erkennen und da
ihr Format einfacher ist, ist das Risiko ernsthafter Datenbeschädigung in
ihnen geringer.
Es ist eine gute Idee, Dumps zur gleichen Zeit zu machen wie die binäre
Datensicherung Ihrer Datenbank. Sie müssen alle Clients aus Ihrer Datenbank
-ausschliessen, um konsistente Schnappschüsse aller Ihrer Tabellen im Dump
+ausschließen, um konsistente Schnappschüsse aller Ihrer Tabellen im Dump
zu bekommen. Danach können Sie die binäre Datensicherung machen, so dass
Sie einen konsistenten Schnappschuss Ihrer Datenbank in zwei Formaten
haben.
@@ -39784,12 +39799,14 @@ beschädigt ist. Machen Sie aus der Datensicherung eine Wiederherstellung
aus den allgemeinen Log-Dateien von MySQL unter Beachtung der Anleitungen
im MySQL-Handbuch.
+
+
@menu
-* InnoDB-Checkpoints:: Checkpoints
+* InnoDB checkpoints::
@end menu
-
-@node InnoDB-Checkpoints, , Datensicherung, Datensicherung
+@node InnoDB checkpoints, , Backing up, Backing up
+@c German node InnoDB-Checkpoints
@subsubsection Checkpoints
InnoDB hat einen Checkpoint-Mechanismus implementiert, der sich Fuzzy
@@ -39800,16 +39817,16 @@ zurückzuschreiben, was in der Praxis dazu führen würde, dass SQL-Statements
von Benutzern für eine Weile angehalten würden.
Bei der Reparatur nach Abstürzen sucht InnoDB nach einem Checkpoint-Label in
-den Log-Dateien. Es weiss, dass alle Änderungen an der Datenbank vor dem
+den Log-Dateien. Es weiß, dass alle Änderungen an der Datenbank vor dem
Label bereits im Platten-Image der Datenbank enthalten sind. InnoDB scannt
-anschliessend die Log-Dateien ab dem Checkpoint vorwärts und wendet die
+anschließend die Log-Dateien ab dem Checkpoint vorwärts und wendet die
geloggten Änderungen auf die Datenbank an.
InnoDB schreibt in zirkulärer Art in die Log-Dateien. Alle abgeschickten
(committed) Änderungen, die dazu führen, dass sich die Datenbankseiten im
Puffer-Pool vom Image auf der Platte unterscheiden, müssen in den
Log-Dateien verfügbar sein, für den Fall, dass InnoDB eine
-Wiederherstellung durchführen muss. Das heisst, wenn InnoDB anfängt, eine
+Wiederherstellung durchführen muss. Das heißt, wenn InnoDB anfängt, eine
Log-Datei auf zirkuläre Weise wieder zu benutzen, muss es sicherstellen,
dass die Datenbankseiten-Images auf der Festplatte bereits die Änderungen
enthalten, die in der Log-Datei mitgeschrieben sind, die InnoDB benutzen
@@ -39817,41 +39834,43 @@ wird. Mit anderen Worten muss InnoDB einen Checkpoint machen, was oft das
Zurückschreiben auf Platte (flush) geänderter Datenbankseiten beinhaltet.
Das erklärt, warum es Festplatten-Ein- und -Ausgaben sparen kann, wenn man
-die Log-Dateien sehr gross macht. Es kann sinnvoll sein, die Gesamtgrösse
-der Log-Dateien so gross wie den Puffer-Pool oder sogar noch grösser zu
-machen. Der Nachteil grosser Log-Dateien ist, dass eine Reparatur nach
+die Log-Dateien sehr Groß macht. Es kann sinnvoll sein, die Gesamtgröße
+der Log-Dateien so Groß wie den Puffer-Pool oder sogar noch größer zu
+machen. Der Nachteil großer Log-Dateien ist, dass eine Reparatur nach
Absturz länger dauern kann, weil mehr Log-Einträge auf die Datenbank
angewendet werden müssen.
-@node Verschieben, InnoDB, InnoDB-Transaktionsmodell, Datensicherung
+@node Moving, InnoDB transaction model, Backing up, InnoDB
+@c German node Verschieben
@subsection Eine InnoDB-Datenbank auf eine andere Maschine verschieben
InnoDB-Daten- und Log-Dateien sind auf allen Plattformen binärkompatibel,
-wenn das Fliesskommazahlenformat auf den Maschinen dasselbe ist. Sie können
+wenn das Fließkommazahlenformat auf den Maschinen dasselbe ist. Sie können
eine InnoDB-Datenbank einfach verschieben, indem Sie alle relevanten
Dateien kopieren, die im vorherigen Abschnitt über Datensicherung erwähnt
-wurden. Wenn sich das Fliesskommaformat auf den Maschinen unterscheidet,
+wurden. Wenn sich das Fließkommaformat auf den Maschinen unterscheidet,
sie aber keine @code{FLOAT}- oder @code{DOUBLE}-Datentypen in Ihren
Tabellen benutzt haben, ist die Prozedur dieselbe: Kopieren Sie einfach die
relevanten Dateien. Wenn die Formate unterschiedlich sind und Ihre Tabellen
-Fliesskomma-Daten enthalten, müssen Sie @file{mysqldump} und
+Fließkomma-Daten enthalten, müssen Sie @file{mysqldump} und
@file{mysqlimport} benutzen, um diese Tabellen zu verschieben.
Ein Tipp zur Performance: Schalten Sie Auto-Commit aus, wenn Sie Daten in
Ihre Datenbank importieren (unter der Annahme, dass Ihr Tabellenplatz
-(Tablespace) genug Platz für das grosse Rollback-Segment enthält, den die
-grosse Import-Transaktion erzeugen wird). Machen Sie das Commit erst nach
+(Tablespace) genug Platz für das große Rollback-Segment enthält, den die
+große Import-Transaktion erzeugen wird). Machen Sie das Commit erst nach
dem Import einer ganzen Tabelle oder eines Segments einer Tabelle.
-@node InnoDB-Transaktionsmodell, Implementation, Verschieben, InnoDB
+@node InnoDB transaction model, Implementation, Moving, InnoDB
+@c German node InnoDB-Transaktionsmodell
@subsection InnoDB-Transaktionsmodell
Im InnoDB-Transaktionsmodell war das Ziel, die besten Eigenschaften einer
multiversionsfähigen Datenbank mit dem traditionellen Zwei-Phasen-Sperren
-zu verbinden. InnoDB führt Sperren auf Zeilenebene durch und lässt Anfragen
-vorgabemässig als nicht sperrende konsistente Leseoperationen laufen, im
+zu verbinden. InnoDB führt Sperren auf Zeilenebene durch und läßt Anfragen
+vorgabemäßig als nicht sperrende konsistente Leseoperationen laufen, im
Stil von Oracle. Das Tabellensperren ist in InnoDB so platzsparend
gespeichert, dass keine Sperr-Eskalation benötigt wird: Typischerweise
dürfen mehrere Benutzer jede Zeile in der Datenbank oder eine beliebige
@@ -39870,17 +39889,19 @@ permanent und sichtbar für andere Benutzer gemacht werden. Auf der anderen
Seite bricht ein @code{ROLLBACK} alle Änderungen ab, die in der aktuellen
Transaktion gemacht wurden.
+
+
@menu
-* Konsistentes Lesen bei InnoDB:: Konsistentes Lesen
-* Lese-Sperren bei InnoDB:: Lesevorgänge sperren
-* Nächsten-Schlüssel-Sperren bei InnoDB:: Nächsten Schlüssel sperren: Wie das Phantom-Problem vermieden wird
-* Bei InnoDB gesetzte Sperren:: Sperren, die in InnoDB durch unterschiedliche SQL-Statements gesetzt werden
-* Blockierungserkennung bei InnoDB:: Blockierungserkennung und Rollback
-* Konsistentes Lesen bei InnoDB im Beispiel:: Ein Beispiel, wie konsistentes Lesen bei InnoDB funktioniert
+* InnoDB consistent read::
+* InnoDB locking reads::
+* InnoDB Next-key locking::
+* InnoDB Locks set::
+* InnoDB Deadlock detection::
+* InnoDB Consistent read example::
@end menu
-
-@node Konsistentes Lesen bei InnoDB, Lese-Sperren bei InnoDB, InnoDB-Transaktionsmodell, InnoDB-Transaktionsmodell
+@node InnoDB consistent read, InnoDB locking reads, InnoDB transaction model, InnoDB transaction model
+@c German node Konsistentes Lesen bei InnoDB
@subsubsection Konsistentes Lesen
Konsistentes Lesen bedeutet, dass InnoDB seine Multiversionsfähigkeiten
@@ -39901,14 +39922,15 @@ derselben Transaktion auch untereinander konsistent. Sie können einen
frischeren Schnappschuss für Ihre Anfragen erhalten, indem Sie die aktuelle
Transaktion beenden (commit) und danach neue Anfragen absetzen.
-Konsistentes Lesen ist der vorgabemässige Modus, in dem InnoDB
+Konsistentes Lesen ist der vorgabemäßige Modus, in dem InnoDB
@code{SELECT}-Statements abarbeitet. Konsistentes Lesen setzt keinerlei
Sperren auf die Tabellen, auf die es zugreift. Daher können andere Benutzer
zur selben Zeit, wie Konsistentes Lesen auf die Tabelle durchgeführt wird,
diese verändern.
-@node Lese-Sperren bei InnoDB, Nächsten-Schlüssel-Sperren bei InnoDB, Konsistentes Lesen bei InnoDB, InnoDB-Transaktionsmodell
+@node InnoDB locking reads, InnoDB Next-key locking, InnoDB consistent read, InnoDB transaction model
+@c German node Lese-Sperren bei InnoDB
@subsubsection Lesevorgänge sperren
Unter manchen Umständen ist Konsistentes Lesen nicht wünschenswert.
@@ -39929,7 +39951,7 @@ Die Lösung besteht darin, das @code{SELECT} im Sperrmodus durchzuführen.
SELECT * FROM eltern WHERE NAME = 'Hinz' LOCK IN SHARE MODE;
@end example
-Wenn Sie ein Lesen im Share-Modus durchführen, heisst das, dass die letzten
+Wenn Sie ein Lesen im Share-Modus durchführen, heißt das, dass die letzten
verfügbaren Daten gelesen werden und eine Shared-Modus-Sperre auf die Zeile
gesetzt wird, die gelesen wird. Wenn die letzten Daten zu einer noch nicht
abgeschlossenen Transaktion eines anderen Benutzers gehören, wird gewartet,
@@ -39967,7 +39989,8 @@ exklusive Sperren auf jede Zeile, die es liest. Daher setzt es dieselben
Sperren, die ein gesuchtes SQL-@code{UPDATE} auf die Zeilen setzen würde.
-@node Nächsten-Schlüssel-Sperren bei InnoDB, Bei InnoDB gesetzte Sperren, Lese-Sperren bei InnoDB, InnoDB-Transaktionsmodell
+@node InnoDB Next-key locking, InnoDB Locks set, InnoDB locking reads, InnoDB transaction model
+@c German node Nächsten-Schlüssel-Sperren bei InnoDB
@subsubsection Nächsten Schlüssel sperren: Wie das Phantom-Problem vermieden wird
Beim Sperren auf Zeilenebene benutzt InnoDB einen Algorithmus, der
@@ -39984,7 +40007,7 @@ hat, kann ein anderen Benutzer keinen Datensatz direkt vor R (in der
Index-Reihenfolge) einfügen. Dieses Sperren von Lücken wird durchgeführt,
um das so genannte Phantom-Problem zu vermeiden. Angenommen, man will alle
Kinder aus der Tabelle @code{kind} lesen und sperren, die eine Kennung
-grösser 100 haben, und irgend ein Feld in der ausgewählten Zeile
+größer 100 haben, und irgend ein Feld in der ausgewählten Zeile
aktualisieren:
@example
@@ -39993,7 +40016,7 @@ SELECT * FROM kind WHERE ID > 100 FOR UPDATE;
Angenommen, es gibt einen Index auf der Tabelle @code{kind} auf der Spalte
@code{ID}. Unsere Anfrage scannt diesen Index ab dem ersten Datensatz, bei
-dem @code{ID} grösser als 100 ist. Wenn jetzt die auf den Index-Datensatz
+dem @code{ID} größer als 100 ist. Wenn jetzt die auf den Index-Datensatz
gesetzten Sperren nicht Einfügeoperationen sperren würden, die in die
Lücken ausgeführt würden, könnte zwischenzeitlich ein neues Kind in die
Tabelle eingefügt werden. Wenn jetzt unsere Transaktion noch einmal
@@ -40004,7 +40027,7 @@ SELECT * FROM kind WHERE ID > 100 FOR UPDATE;
@end example
Sehen wir ein neues Kind in der Ergebnismenge, die die Anfrage zurückgibt.
-Das verstösst gegen das Isolationsprinzip von Transaktionen: Eine
+Das verstößt gegen das Isolationsprinzip von Transaktionen: Eine
Transaktion sollte in der Lage sein, so abzulaufen, dass die Daten, die sie
gelesen hat, sich nicht während der Transaktion ändern. Wenn wir einen Satz
von Zeilen als Daten-Posten betrachten, würde das neue 'Phantom'-Kind
@@ -40013,7 +40036,7 @@ dieses Isolationsprinzip durchbrechen.
Wenn InnoDB einen Index scannt, kann es auch die Lücke nach dem letzten
Datensatz im Index sperren. Genau das passiert im vorherigen Beispiel: Die
Sperren, die von InnoDB gesetzt werden, verhindert jedes Einfügen in die
-Tabelle an Stellen, wo @code{ID} grösser als 100 ist.
+Tabelle an Stellen, wo @code{ID} größer als 100 ist.
Sie können Nächsten-Schlüssel-Sperren dazu benutzen, eine
Eindeutigkeitsprüfung in Ihre Applikation zu implementieren: Wenn Sie Ihre
@@ -40024,7 +40047,8 @@ eine Duplikatzeile Ihrer Zeile einfügt. Daher gestattet Ihnen das
Nächsten-Schlüssel-Sperren, die Nicht-Existenz von irgend etwas in Ihrer
Tabelle zu 'sperren'.
-@node Bei InnoDB gesetzte Sperren, Blockierungserkennung bei InnoDB, Nächsten-Schlüssel-Sperren bei InnoDB, InnoDB-Transaktionsmodell
+@node InnoDB Locks set, InnoDB Deadlock detection, InnoDB Next-key locking, InnoDB transaction model
+@c German node Bei InnoDB gesetzte Sperren
@subsubsection Sperren, die in InnoDB durch unterschiedliche SQL-Statements gesetzt werden
@itemize @bullet
@@ -40093,7 +40117,8 @@ allerdings nicht die Transaktionsintegrität.
@end itemize
-@node Blockierungserkennung bei InnoDB, Konsistentes Lesen bei InnoDB im Beispiel, Bei InnoDB gesetzte Sperren, InnoDB-Transaktionsmodell
+@node InnoDB Deadlock detection, InnoDB Consistent read example, InnoDB Locks set, InnoDB transaction model
+@c German node Blockierungserkennung bei InnoDB
@subsubsection Blockierungserkennung und Rollback
InnoDB erkennt automatisch eine Blockierung von Transaktionen und rollt die
@@ -40113,12 +40138,13 @@ liegt daran, dass InnoDB Zeilensperren in einem Format speichert, die ihm
unmöglich machen, im Nachhinein zu erkennen, welche Sperre durch welches
SQL-Statement gesetzt wurde.
-@node Konsistentes Lesen bei InnoDB im Beispiel, , Blockierungserkennung bei InnoDB, InnoDB-Transaktionsmodell
+@node InnoDB Consistent read example, , InnoDB Deadlock detection, InnoDB transaction model
+@c German node Konsistentes Lesen bei InnoDB im Beispiel
@subsubsection Ein Beispiel, wie konsistentes Lesen bei InnoDB funktioniert
Wenn Sie ein Konsistentes Lesen ausführen, also ein gewöhnliches
@code{SELECT}-Statement, gibt InnoDB Ihrer Transaktion einen Zeitpunkt
-(Timepoint), gemäss dem Ihre Anfrage die Datenbank sieht. Wenn daher
+(Timepoint), gemäß dem Ihre Anfrage die Datenbank sieht. Wenn daher
Transaktion B eine Zeile löscht und das wirksam wird (commit), nachdem Ihr
Zeitpunkt zugewiesen wurde, werden Sie die Zeile nicht als gelöscht sehen.
Gleiches gilt für Einfüge- und Aktualisierungsoperationen.
@@ -40172,7 +40198,7 @@ Wenn das Unix-@file{top} oder der Windows-@file{Task-Manager} zeigen, dass
die CPU-Auslastung weniger als 70% beträgt, ist Ihre Auslastung
wahrscheinlich Platten-gebunden. Das kann daran liegen, dass Sie zu viele
Transaktionen abschicken (commit) oder dass der Puffer-Pool zu klein ist.
-Dann kann es helfen, den Puffer-Pool zu vergrössern. Setzen Sie ihn aber
+Dann kann es helfen, den Puffer-Pool zu vergrößern. Setzen Sie ihn aber
nicht höher als 80% des physikalischen Arbeitsspeichers.
@strong{2.}
@@ -40193,20 +40219,20 @@ zurückzuschreiben (flush), doch dieses Zurückschreiben ist nicht
garantiert.
@strong{4.}
-Machen Sie Ihre Log-Dateien gross, selbst so gross wie den Puffer-Pool.
+Machen Sie Ihre Log-Dateien Groß, selbst so Groß wie den Puffer-Pool.
Wenn InnoDB seine Log-Dateien vollgeschrieben hat, muss es die veränderten
Inhalte des Puffer-Pools in einem Checkpoint auf Platte schreiben. Kleine
Log-Dateien verursachen daher unnötige Festplatten-Schreibzugriffe. Der
-Nachteil grosser Log-Dateien liegt darin, dass die Wiederherstellungszeit
+Nachteil großer Log-Dateien liegt darin, dass die Wiederherstellungszeit
länger wird.
@strong{5.}
-Ausserdem sollte der Log-Puffer recht gross sein, sagen wir 8 MB.
+Ausserdem sollte der Log-Puffer recht Groß sein, sagen wir 8 MB.
@strong{6.} (Relevant from 3.23.39 up.)
In einigen Versionen von Linux und Unix ist das Zurückschreiben von Dateien
auf Platte (flush) mit dem Unix-@code{fdatasync} und anderen ähnlichen
-Methoden überraschend langsam. InnoDB benutzt vorgabemässig die
+Methoden überraschend langsam. InnoDB benutzt vorgabemäßig die
@code{fdatasync}-Funktion. Wenn Sie mit der Datenbank-Schreib-Performance
nicht zufrieden sind, können Sie versuchen, die @code{innodb_flush_method}
in @file{my.cnf} auf @code{O_DSYNC} zu setzen, obwohl O_DSYNC auf den
@@ -40233,7 +40259,7 @@ lassen, selbst ohne sie in die oben erwähnten @code{set autocommit=0; ...
commit;}-Wrapper zu verpacken.
@strong{8.}
-Hüten Sie sich vor grossen Rollbacks beim Einfügen von Massendaten: InnoDB
+Hüten Sie sich vor großen Rollbacks beim Einfügen von Massendaten: InnoDB
benutzt den Einfüge-Puffer, um beim Einfügen Festplatten-Ein- und -Ausgaben
zu sparen, doch beim entsprechenden Rollback wird kein solcher Mechanismus
benutzt. Ein Festplatten-gebundenes Rollback kann die 30-fache Zeit des
@@ -40245,7 +40271,7 @@ das Rollback CPU-gebunden wird und damit schnell läuft, oder indem die
gesamte InnoDB-Datenbank gelöscht wird.
@strong{9.}
-Seien Sie auch vor anderen grossen Festplatten-gebundenen Operationen auf
+Seien Sie auch vor anderen großen Festplatten-gebundenen Operationen auf
der Hut. Benutzen Sie @code{DROP TABLE} oder @code{TRUNCATE} (ab
MySQL-4.0), um eine Tabelle zu löschen, nicht @code{DELETE FROM tabelle}.
@@ -40392,13 +40418,13 @@ InnoDB mit @code{UNIV_SYNC_DEBUG} kompilieren, definiert in @file{univ.i}.
Der Abschnitt @code{SYNC ARRAY INFO} berichtet Threads, die auf ein
Semaphor warten, und Statistiken, wie viele Male Threads ein Spin oder ein
Warten auf einem Mutex oder einem Lese-/Schreibe-Sperr-Semaphor benötigten.
-Eine grosse Anzahl auf Semaphore wartender Threads kann ein Ergebnis von
+Eine große Anzahl auf Semaphore wartender Threads kann ein Ergebnis von
Festplatten-Ein- und -Ausgaben oder Konfliktproblemen innerhalb von InnoDB
sein. Konflikte können durch starke Parallelen von Anfragen oder durch
Probleme des Betriebssystems beim Thread Scheduling hervorgerufen werden.
@item
Der Abschnitt @code{CURRENT PENDING FILE I/O'S} listet anhängige Datei-Ein-
-und -Ausgabeanforderungen auf. Eine grosse Anzahl davon zeigt an, dass die
+und -Ausgabeanforderungen auf. Eine große Anzahl davon zeigt an, dass die
Auslastung Festplatten-Ein- und -Ausgabe-gebunden ist.
@item
Der Abschnitt @code{BUFFER POOL} gibt statistische Informationen über
@@ -40406,7 +40432,8 @@ gelesene und geschriebene Seiten. Aus diesen Zahlen können Sie errechnen,
wie viele Daten-Datei-Ein- und Ausgaben Ihre Anfragen aktuell durchführen.
@end itemize
-@node Implementation, Tabelle und Index, InnoDB-Transaktionsmodell, InnoDB
+@node Implementation, Table and index, InnoDB transaction model, InnoDB
+@c German node Implementation
@subsection Implementation des Multiversionings
Weil InnoDB eine multiversionierte Datenbank ist, muss es Informationen
@@ -40415,11 +40442,11 @@ Diese Informationen werden in einer Datenstruktur gespeichert, die wir in
Anlehnung an eine analoge Struktur in Oracle Rollback-Segment nennen.
InnoDB fügt jeder Zeile, die in der Datenbank gespeichert wird, intern zwei
-Felder hinzu. Ein 6 Byte grosses Feld enthält den
+Felder hinzu. Ein 6 Byte großes Feld enthält den
Transaktions-Identifikator der letzten Transaktion, die die Zeile eingefügt
oder aktualisiert hat. Ein Löschen wir intern als eine Aktualisierung
behandelt, wobei ein spezielles Bit in die Zeile eingefügt wird, um sie als
-gelöscht zu markieren. Jede Zeile enthält ausserdem ein 7 Byte grosses
+gelöscht zu markieren. Jede Zeile enthält ausserdem ein 7 Byte großes
Feld, das Roll-Zeiger genannt wird. Der Roll-Zeiger zeigt auf einen
Rückgängig-Log-Datensatz, der in das Rollback-Segment geschrieben wird.
Wenn die Zeile aktualisiert wurde, enthält der Rückgängig-Log-Datensatz die
@@ -40441,13 +40468,13 @@ Schnappschuss zugewiesen hat, dessen Informationen beim Konsistenten Lesen
benötigt werden könnten, um daraus eine frühere Version der Datenbank-Zeile
aufzubauen.
-Sie müssen daran denken, Ihre Transaktionen regelmässig abzuschicken
+Sie müssen daran denken, Ihre Transaktionen regelmäßig abzuschicken
(commit), auch die Transaktionen, die nur Konsistentes Lesens ausführen.
Ansonsten kann InnoDB Daten aus dem Aktualisierungs-Rückgängig-Log nicht
-verwerfen und das Rollback-Segment könnte zu gross werden und Ihren
+verwerfen und das Rollback-Segment könnte zu Groß werden und Ihren
Tabellenplatz (Tablespace) komplett füllen.
-Die physikalische Grösse eines Rückgängig-Log-Datensatzes im
+Die physikalische Größe eines Rückgängig-Log-Datensatzes im
Rollback-Segment ist typischerweise kleiner als die entsprechende
eingefügte oder aktualisierte Zeile. Sie können diese Informationen
benutzen, um den Platzbedarf für Ihr Rollback-Segment zu berechnen.
@@ -40463,7 +40490,8 @@ Entfernungsoperation wird Purge genannt und ist recht schnell, wobei sie
ausführte.
-@node Tabelle und Index, Verwaltung von Datei-Speicherplatz, Implementation, InnoDB
+@node Table and index, File space management, Implementation, InnoDB
+@c German node Tabelle und Index
@subsection Tabellen- und Index-Strukturen
MySQL speichert seine Daten-Wörterbuch-Informationen über Tabellen in
@@ -40486,7 +40514,7 @@ Primärschlüssels der Cluster-Index.
Wenn Sie für Ihre Tabelle keinen Primärschlüssel definieren, erzeugt InnoDB
intern einen Cluster-Index, bei dem die Zeilen nach der Zeilen-Kennung (ID)
geordnet sind, die InnoDB Zeilen in einer solchen Tabelle zuweist. Die
-Zeilen-Kennung ist ein 6 Byte grosses Feld, das monoton erhöht wird, wenn
+Zeilen-Kennung ist ein 6 Byte großes Feld, das monoton erhöht wird, wenn
neue Zeilen eingefügt werden. Daher liegen nach der Zeilen-Kennung
geordnete Zeile physikalisch in der Einfüge-Reihenfolge vor.
@@ -40494,7 +40522,7 @@ Der Zugriff auf eine Zeile über den Cluster-Index ist schnell, weil die
Zeilendaten auf derselben Seite sind, auf die die Index-Suche führt. In
vielen Datenbanken werden die Daten traditionell auf einer anderen Seite
als derjenigen, wo sich der Index-Datensatz befindet, gespeichert. Wenn die
-Tabelle gross ist, spart die Cluster-Index-Architektur im Vergleich zur
+Tabelle Groß ist, spart die Cluster-Index-Architektur im Vergleich zur
traditionellen Lösung auf Festplatten-Ein- und -Ausgaben.
In InnoDB enthalten die Datensätze in Nicht-Cluster-Indexen (die wir auch
@@ -40503,19 +40531,21 @@ benutzt diesen Primärschlüsselwert, um vom Cluster-Index aus nach der Zeile
zu suchen. Beachten Sie, dass die sekundären Indexe mehr Platz benötigen,
wenn der Primärschlüssel lang ist.
+
+
@menu
-* Physikalische Struktur von InnoDB:: Physikalische Struktur eines Indexes
-* Einfügepuffer von InnoDB:: Einfügepufferung
-* Anpassungsfähiger Hash in InnoDB:: Anpassungsfähige Hash-Indexe
-* Physikalischer Datensatz in InnoDB:: Physikalische Datensatzstruktur
+* InnoDB physical structure::
+* InnoDB Insert buffering::
+* InnoDB Adaptive hash::
+* InnoDB Physical record::
@end menu
-
-@node Physikalische Struktur von InnoDB, Einfügepuffer von InnoDB, Tabelle und Index, Tabelle und Index
+@node InnoDB physical structure, InnoDB Insert buffering, Table and index, Table and index
+@c German node Physikalische Struktur von InnoDB
@subsubsection Physikalische Struktur eines Indexes
Alle Indexe in InnoDB sind B-Bäume, in denen die Index-Datensätze in den
-Blätter-Seiten des Baums gespeichert sind. Die vorgabemässige Grösse einer
+Blätter-Seiten des Baums gespeichert sind. Die vorgabemäßige Größe einer
Index-Seite ist 16 KB. Wenn neue Datensätze eingefügt werden, versucht
InnoDB, 1/16 der Seite für zukünftige Einfügungen und Aktualisierungen des
Index-Datensatzes freizuhalten.
@@ -40527,7 +40557,8 @@ versucht InnoDB, den Index-Baum zusammenzuziehen, um die Seite
freizugeben.
-@node Einfügepuffer von InnoDB, Anpassungsfähiger Hash in InnoDB, Physikalische Struktur von InnoDB, Tabelle und Index
+@node InnoDB Insert buffering, InnoDB Adaptive hash, InnoDB physical structure, Table and index
+@c German node Einfügepuffer von InnoDB
@subsubsection Einfügepufferung
Häufig wird der Primärschlüssel in Datenbank-Applikationen als eindeutiger
@@ -40557,7 +40588,8 @@ Seite im Index-Baum zusammengefasst werden, so dass Festplatten-Ein- und
Einfügungen in eine Tabelle bis zu 15 mal schneller machen kann.
-@node Anpassungsfähiger Hash in InnoDB, Physikalischer Datensatz in InnoDB, Einfügepuffer von InnoDB, Tabelle und Index
+@node InnoDB Adaptive hash, InnoDB Physical record, InnoDB Insert buffering, Table and index
+@c German node Anpassungsfähiger Hash in InnoDB
@subsubsection Anpassungsfähige Hash-Indexe
Wenn eine Datenbank fast komplette in den Hauptspeicher passt, können
@@ -40582,7 +40614,8 @@ Hash-Index-Mechanismus (wobei sich InnoDB üppig verfügbarem Hauptspeicher
anpasst) der Architektur von Hauptspeicher-Datenbanken nahe.
-@node Physikalischer Datensatz in InnoDB, , Anpassungsfähiger Hash in InnoDB, Tabelle und Index
+@node InnoDB Physical record, , InnoDB Adaptive hash, Table and index
+@c German node Physikalischer Datensatz in InnoDB
@subsubsection Physikalische Datensatzstruktur
@itemize @bullet
@@ -40592,11 +40625,11 @@ Header wird benutzt, um nachfolgende Datensätze zu verknüpfen, sowie beim
Sperren auf Zeilenebene.
@item
Datensätze im Cluster-Index enthalten Felder für alle benutzerdefinierten
-Spalten. Zusätzlich gibt es ein 6 Byte grosses Feld für die
-Transaktions-Kennung und ein 7 Byte grosses Feld für den Roll-Zeiger.
+Spalten. Zusätzlich gibt es ein 6 Byte großes Feld für die
+Transaktions-Kennung und ein 7 Byte großes Feld für den Roll-Zeiger.
@item
Wenn der Benutzer keinen Primärschlüssel für eine Tabelle definiert hat,
-enthält jeder Cluster-Index-Datensatz zusätzlich ein 6 Byte grosses
+enthält jeder Cluster-Index-Datensatz zusätzlich ein 6 Byte großes
Zeilenkennungsfeld.
@item
Jeder sekundäre Index-Datensatz enthält auch alle Felder, die für den
@@ -40626,7 +40659,7 @@ angegeben.
Wenn nach der Initialisierung des Auto-Increment-Zählers der Benutzer eine
Zeile eingibt, in der er explizit den Spaltenwert angibt, und dieser
-grösser als der aktuelle Zählerwert ist, wird der Zähler auf den
+größer als der aktuelle Zählerwert ist, wird der Zähler auf den
angegebenen Spaltenwert gesetzt. Wenn der Benutzer nicht explizit einen
Wert angibt, zählt InnoDB den Zähler um 1 hoch und weist der Spalte diesen
neuen Wert zu.
@@ -40638,21 +40671,24 @@ Nummern vom Zähler erhalten haben.
Das Verhalten von Auto-Increment ist für die Fälle undefiniert, in denen
ein Benutzer der Spalte einen negativen Wert gibt oder wenn der Wert
-grösser als die grösste Ganzzahl wird, die im festgelegten Ganzzahl-Typ
+größer als die größte Ganzzahl wird, die im festgelegten Ganzzahl-Typ
gespeichert werden kann.
-@node Verwaltung von Datei-Speicherplatz, Fehlerbehandlung, Tabelle und Index, InnoDB
+@node File space management, Error handling, Table and index, InnoDB
+@c German node Verwaltung von Datei-Speicherplatz
@subsection Verwaltung von Datei-Speicherplatz und Festplatten-Eingaben / -Ausgaben
+
+
@menu
-* Festplatten-Ein- und -Ausgaben bei InnoDB:: Festplatten-Ein- und -Ausgaben
-* Speicherplatz in InnoDB:: Speicherplatzverwaltung
-* Datei-Defragmentierung in InnoDB:: Eine Tabelle defragmentieren
+* InnoDB Disk i/o::
+* InnoDB File space::
+* InnoDB File Defragmenting::
@end menu
-
-@node Festplatten-Ein- und -Ausgaben bei InnoDB, Speicherplatz in InnoDB, Verwaltung von Datei-Speicherplatz, Verwaltung von Datei-Speicherplatz
+@node InnoDB Disk i/o, InnoDB File space, File space management, File space management
+@c German node Festplatten-Ein- und -Ausgaben bei InnoDB
@subsubsection Festplatten-Ein- und -Ausgaben
Bei Festplatten-Ein- und -Ausgaben benutzt InnoDB asynchrone Ein- und
@@ -40665,13 +40701,13 @@ Zukünftig werden wir auch für Windows NT simulierte Ein-/Ausgaben
unterstützen sowie für die Unix-Versionen, die so etwas besitzen, native
Ein-/Ausgaben.
-Unter Windows NT benutzt InnoDB ungepufferte Ein- und Ausgaben. Das heisst,
+Unter Windows NT benutzt InnoDB ungepufferte Ein- und Ausgaben. Das heißt,
dass die Festplatten-Seiten, die InnoDB liest oder schreibt, nicht im
Datei-Cache des Betriebssystems gepuffert werden. Das spart einiges an
Arbeitsspeicher-Bandbreite.
Ab Version 3.23.41 benutzt InnoDB eine neuartige Datei-Flush-Technik, die
-Doublewrite heisst. Sie erhöht die Sicherheit bei Reparaturen nach Absturz,
+Doublewrite heißt. Sie erhöht die Sicherheit bei Reparaturen nach Absturz,
wenn ein Betriebssystemabsturz oder ein Stromausfall aufgetreten sind, und
verbessert auf den meisten Unix-Versionen die Performance, indem die
Notwendigkeit von Fsync-Operationen verringert wird.
@@ -40687,8 +40723,8 @@ der Wiederherstellung eine gute Kopie der Seite im Doublewrite-Puffer.
Ab Version 3.23.41 können Sie auch eine Raw-Disk-Partition als Daten-Datei
benutzen, obwohl das bisher noch nicht getestet wurde. Wenn Sie eine neue
Daten-Datei erzeugen, müssen Sie das Schlüsselwort @code{newraw}
-unmittelbar nach der Daten-Datei-Grösse in @code{innodb_data_file_path}
-angeben. Die Partition muss grösser oder gleich der Grösse sein, die Sie
+unmittelbar nach der Daten-Datei-Größe in @code{innodb_data_file_path}
+angeben. Die Partition muss größer oder gleich der Größe sein, die Sie
angeben. Beachten Sie, dass in InnoDB 1 MB 1024 x 1024 Bytes ist, während 1
MB in Festplatten-Spezifikationen üblicherweise 1.000.000 Bytes bedeutet.
@@ -40718,7 +40754,8 @@ Eingelesenwerdens in den Puffer-Pool zu sein scheint. Dann schickt InnoDB
die verbleibenden Lesevorgänge an das Ein-/Ausgabesystem.
-@node Speicherplatz in InnoDB, Datei-Defragmentierung in InnoDB, Festplatten-Ein- und -Ausgaben bei InnoDB, Verwaltung von Datei-Speicherplatz
+@node InnoDB File space, InnoDB File Defragmenting, InnoDB Disk i/o, File space management
+@c German node Speicherplatz in InnoDB
@subsubsection Speicherplatzverwaltung
Die Daten-Dateien, die Sie in der Konfigurationsdatei definieren, formen
@@ -40730,7 +40767,7 @@ benutzen: InnoDB weist Speicherplatz von einem neu erzeugten Tabellenplatz
(Tablespace) vom niedrigen Ende ausgehend zu.
Der Tabellenplatz (Tablespace) besteht aus Datenbankseiten, deren
-vorgabemässige Grösse 16 KB beträgt. Diese Seiten werden bis zu einer
+vorgabemäßige Größe 16 KB beträgt. Diese Seiten werden bis zu einer
Ausdehnung von 64 aufeinander folgenden Seiten gruppiert. Die 'Dateien'
innerhalb eines Tabellenplatzes (Tablespace) werden in InnoDB Segmente
genannt. Der Name des Rollback-Segments ist in gewisser Hinsicht
@@ -40744,7 +40781,7 @@ Daten enthalten, bessere Sequentialität zu erzielen.
Wenn ein Segment innerhalb des Tabellenplatzes anwächst, weist ihm InnoDB
die ersten 32 Seiten individuell zu. Danach fängt InnoDB an, dem Segment
-ganze Ausdehnungen zuzuweisen. InnoDB kann einem grossen Segment bis zu
+ganze Ausdehnungen zuzuweisen. InnoDB kann einem großen Segment bis zu
vier Ausdehnungen auf einmal hinzufügen, um gute Sequentialität für die
Daten sicherzustellen.
@@ -40771,7 +40808,8 @@ können, nachdem Sie nicht mehr für ein Transaktions-Rollback oder für
Konsistentes Lesen benötigt werden.
-@node Datei-Defragmentierung in InnoDB, , Speicherplatz in InnoDB, Verwaltung von Datei-Speicherplatz
+@node InnoDB File Defragmenting, , InnoDB File space, File space management
+@c German node Datei-Defragmentierung in InnoDB
@subsubsection Eine Tabelle defragmentieren
Wenn es wahlfreie (random) Einfüge- oder Löschvorgänge in die Indexe einer
@@ -40795,7 +40833,8 @@ Speicherplatzverwaltungs-Algorithmus von InnoDB, dass keine Fragmentierung
im Index auftritt.
-@node Fehlerbehandlung, InnoDB-Einschränkungen, Verwaltung von Datei-Speicherplatz, InnoDB
+@node Error handling, InnoDB restrictions, File space management, InnoDB
+@c German node Fehlerbehandlung
@subsection Fehlerbehandlung
Die Fehlerbehandlung in InnoDB ist nicht immer so, wie es die
@@ -40826,7 +40865,8 @@ das entsprechende SQL-Statement zurück.
@end itemize
-@node InnoDB-Einschränkungen, InnoDB-Kontaktinformationen, Fehlerbehandlung, InnoDB
+@node InnoDB restrictions, InnoDB contact information, Error handling, InnoDB
+@c German node InnoDB-Einschränkungen
@subsection Beschränkungen von InnoDB-Tabellen
@itemize @bullet
@@ -40840,7 +40880,7 @@ mysql_install_db-Skript neu erzeugen.
@item
@code{SHOW TABLE STATUS} gibt keine genauen Statistiken über
-InnoDB-Tabellen, ausser über die physikalische Grösse, die durch die
+InnoDB-Tabellen, ausser über die physikalische Größe, die durch die
Tabelle reserviert wird. Der Zeilenzähler ist nur eine grobe Schätzung, die
bei der SQL-Optimierung benutzt wird.
@@ -40857,7 +40897,7 @@ erzeugt InnoDB einen Index über die gesamte Spalte.
@item
@code{INSERT DELAYED} wird für InnoDB-Tabellen nicht unterstützt.
@item
-Die MySQL-@code{LOCK TABLES}-Operation weiss nichts von InnoDB-Sperren auf
+Die MySQL-@code{LOCK TABLES}-Operation weiß nichts von InnoDB-Sperren auf
Zeilenebene, die in bereits fertigen SQL-Statements gesetzt sind. Das
bedeutet, dass Sie eine Tabellensperre auf eine Tabelle selbst dann
erhalten können, wenn es noch Transaktionen anderer Benutzer gibt, die
@@ -40880,29 +40920,30 @@ statt dessen alle Zeilen, eine nach der anderen, was nicht sehr schnell
ist. In zukünftigen MySQL-Versionen können Sie @code{TRUNCATE} benutzen,
was schnell ist.
@item
-Die vorgabemässige Datenbank-Seitengrösse in InnoDB beträgt 16 KB. Indem
+Die vorgabemäßige Datenbank-Seitengröße in InnoDB beträgt 16 KB. Indem
Sie den Code neu kompilieren, können Sie sie auf Werte zwischen 8 KB und 64
KB setzen. Die maximale Zeilenlänge beträgt etwas weniger als die Hälfte
der Datenbank-Seite in den InnoDB-Versionen kleiner oder gleich 3.23.40. Ab
-Quelldistribution 3.23.41 dürfen BLOB- und TEXT-Spalten bis zu 4 GB gross
+Quelldistribution 3.23.41 dürfen BLOB- und TEXT-Spalten bis zu 4 GB Groß
sein, die gesamte Zeilenlänge kann auch < 4 GB betragen. InnoDB speichert
-Felder, deren Grösse kleiner oder gleich 128 Bytes beträgt, nicht auf
+Felder, deren Größe kleiner oder gleich 128 Bytes beträgt, nicht auf
separaten Seiten. Nachdem InnoDB die Zeile geändert hat, indem lange Felder
auf separaten Seiten gespeichert werden, muss die restliche Zeilenlänge
weniger als die Hälfte einer Datenbank-Seite betragen. Die maximale
Schlüssellänge beträgt 7.000 Bytes.
@item
Auf einigen Betriebssystemen müssen Daten-Dateien kleiner als 2 GB sein.
-Die Gesamtgrösse der Log-Dateien muss auf 32-Bit-Computern kleiner als 4 GB
+Die Gesamtgröße der Log-Dateien muss auf 32-Bit-Computern kleiner als 4 GB
sein.
@item
-Die maximale Grösse des Tabellenplatzes (Tablespace) beträgt 4 Milliarden
-Datenbank-Seiten. Das ist auch die maximale Grösse für eine Tabelle. Die
-minimale Grösse des Tabellenplatzes (Tablespace) beträgt 10 MB.
+Die maximale Größe des Tabellenplatzes (Tablespace) beträgt 4 Milliarden
+Datenbank-Seiten. Das ist auch die maximale Größe für eine Tabelle. Die
+minimale Größe des Tabellenplatzes (Tablespace) beträgt 10 MB.
@end itemize
-@node InnoDB-Kontaktinformationen, , InnoDB-Einschränkungen, InnoDB
+@node InnoDB contact information, , InnoDB restrictions, InnoDB
+@c German node InnoDB-Kontaktinformationen
@subsection InnoDB-Kontaktinformationen
Kontaktinformationen von Innobase Oy, Hersteller der InnoDB-Engine:
@@ -40920,23 +40961,26 @@ Finnland
@end example
-@node BDB, , InnoDB, Tabellentypen
+@node BDB, , InnoDB, Table types
+@c German node BDB
@section BDB- oder Berkeley_db-Tabellen
@cindex Tabellen, @code{BDB}
@cindex Tabellen, @code{Berkeley DB}
+
@menu
-* BDB-Überblick:: Überblick über BDB-Tabellen
-* BDB installieren:: BDB installieren
-* BDB starten:: BDB-Startoptionen
-* BDB-Charakteristiken:: Kennzeichen von @code{BDB}-Tabellen
-* BDB-TODO-Liste:: Was in naher Zukunft bei BDB in Ordnung gebracht werden muss
-* BDB-Portabilität:: Betriebssysteme, die von @strong{BDB} unterstützt werden
-* BDB-Fehler:: Fehler, die bei der Benutzung von BDB-Tabellen auftreten können
+* BDB overview::
+* BDB install::
+* BDB start::
+* BDB characteristics::
+* BDB TODO::
+* BDB portability::
+* BDB errors::
@end menu
-@node BDB-Überblick, BDB installieren, BDB, BDB
+@node BDB overview, BDB install, BDB, BDB
+@c German node BDB-Überblick
@subsection Überblick über BDB-Tabellen
Unterstützung für BDB-Tabellen ist in der MySQL-Quelldistribution seit
@@ -40962,21 +41006,23 @@ an uns wenden, um uns zu helfen, das Problem zu finden und zu beheben. Weil
das also in zwei Schritten abläuft, kann es bei jeglichen Problemen mit
BDB-Tabellen etwas länger dauern, diese zu lösen, als das bei anderen
Tabellen-Handlern der Fall ist. Weil jedoch der BerkeleyDB-Code selbst auch
-von vielen sonstigen Applikationen benutzt wird, sind hierbei keine grossen
+von vielen sonstigen Applikationen benutzt wird, sind hierbei keine großen
Probleme zu erwarten. @xref{Support}.
-@node BDB installieren, BDB starten, BDB-Überblick, BDB
+@node BDB install, BDB start, BDB overview, BDB
+@c German node BDB installieren
@subsection BDB installieren
Wenn Sie eine Binärdistribution von MySQL herunter geladen haben, die
Unterstützung für BerkeleyDB enthält, folgen Sie einfach den Anweisungen
-zur Installation einer Binärversion von MySQL. @xref{MySQL-Binärdistributionen}. @xref{mysqld-max, , @code{mysqld-max}}.
+zur Installation einer Binärversion von MySQL. @xref\{MySQL binaries}. @xref{mysqld-max, , @code{mysqld-max}}.
Um MySQL mit BerkeleyDB-Unterstützung zu kompilieren, laden Sie
MySQL-Version 3.23.34 oder neuer herunter und konfigurieren Sie
-@code{MySQL} mit der @code{--with-berkeley-db}-Option. @xref{Installation
-der Quelldistribution}.
+@code{MySQL} mit der @code{--with-berkeley-db}-Option.
+@c German FIX unwrapped @xref
+@xref\{Installing source}.
@example
cd /pfad/zur/quelle/von/mysql-3.23.34
@@ -40991,7 +41037,8 @@ MySQL-Schnittstelle noch als Beta-Qualität erachtet. Wir verbessern diese
aktiv und optimieren sie, um sie sehr bald stabil zu bekommen.
-@node BDB starten, BDB-Charakteristiken, BDB installieren, BDB
+@node BDB start, BDB characteristics, BDB install, BDB
+@c German node BDB starten
@subsection BDB-Startoptionen
Wenn Sie mit @code{AUTOCOMMIT=0} fahren, werden Ihre Änderungen in
@@ -41037,20 +41084,21 @@ BerkeleyDB-Bibliothek und spart deshalb viel Speicher. Natürlich können Sie
Normalerweise sollten Sie @code{mysqld} ohne @code{--bdb-no-recover}
starten, wenn Sie vorhaben, BDB-Tabellen zu verwenden. Das kann allerdings
zu Problemen führen, wenn Sie @code{mysqld} starten und die BDB-Log-Dateien
-beschädigt sind. @xref{Server starten}.
+beschädigt sind. @xref\{Starting server}.
Mit @code{bdb_max_lock} können Sie die maximale Anzahl von Sperren
-festlegen (vorgabemässig 10.000), die auf einer BDB-Tabelle aktiv sein
+festlegen (vorgabemäßig 10.000), die auf einer BDB-Tabelle aktiv sein
können. Sie sollten diesen Wert herauf setzen, wenn Sie Fehler vom Typ
@code{bdb: Lock table is out of available locks} oder @code{Got error 12
from ...} erhalten, wenn Sie lange Transaktionen ausführen oder wenn
@code{mysqld} viele Zeilen untersuchen muss, um die Anfrage zu berechnen.
Sie könnten auch @code{binlog_cache_size} und @code{max_binlog_cache_size}
-ändern, wenn Sie grosse, vielzeilige Transaktionen benutzen. @xref{COMMIT}.
+ändern, wenn Sie große, vielzeilige Transaktionen benutzen. @xref{COMMIT}.
-@node BDB-Charakteristiken, BDB-TODO-Liste, BDB starten, BDB
+@node BDB characteristics, BDB TODO, BDB start, BDB
+@c German node BDB-Charakteristiken
@subsection Kennzeichen von @code{BDB}-Tabellen
@itemize @bullet
@@ -41066,7 +41114,7 @@ Transaktionen benötigt werden. Sie können auch jederzeit @code{FLUSH LOGS}
laufen lassen, um einen Checkpoint für die BerkeleyDB-Tabellen anzulegen.
Für die Wiederherstellung nach Abstürzen sollten Sie Datensicherungen der
-Tabellen plus das Binär-Log von MySQL benutzen. @xref{Datensicherung}.
+Tabellen plus das Binär-Log von MySQL benutzen. @xref\{Backup}.
@strong{Achtung}: Wenn Sie alte Log-Dateien löschen, die in Benutzung sind,
ist BDB nicht in der Lage, Wiederherstellungen durchzuführen, und Sie
@@ -41116,7 +41164,7 @@ Schlüsselinformation etwas mehr Platz bei @code{BDB}-Tabellen im Vergleich
zu MyISAM-Tabellen, die nicht @code{PACK_KEYS=0} benutzen.
@item
Oft gibt es Löcher in der BDB-Tabelle, damit Sie neue Zeilen in der Mitte
-des Schlüsselbaums einfügen können. Das macht BDB-Tabellen etwas grösser
+des Schlüsselbaums einfügen können. Das macht BDB-Tabellen etwas größer
als MyISAM-Tabellen.
@item
Der Optimierer muss näherungsweise die Anzahl von Zeilen in der Tabelle
@@ -41124,7 +41172,7 @@ kennen. MySQL löst dieses Problem, indem Einfügeoperationen gezählt werden,
und unterhält diese in einem separaten Segment in jeder BDB-Tabelle. Wenn
Sie nicht viele @code{DELETE} oder @code{ROLLBACK} ausführen, sollte diese
Zahl ausreichend genau für den MySQL-Optimierer sein. Weil MySQL die Zahl
-nur beim Schliessen speichert, kann sie falsch sein, wenn MySQL unerwartet
+nur beim Schließen speichert, kann sie falsch sein, wenn MySQL unerwartet
stirbt. Das sollte kein schwerer Fehler sein, selbst wenn die Zahl nicht
100% korrekt ist. Man kann die Anzahl von Zeilen aktualisieren, indem man
@code{ANALYZE TABLE} oder @code{OPTIMIZE TABLE} ausführt. @xref{ANALYZE
@@ -41138,14 +41186,15 @@ weiter gemacht wird.
@end itemize
-@node BDB-TODO-Liste, BDB-Portabilität, BDB-Charakteristiken, BDB
+@node BDB TODO, BDB portability, BDB characteristics, BDB
+@c German node BDB-TODO-Liste
@subsection Was in naher Zukunft bei BDB in Ordnung gebracht werden muss
@itemize @bullet
@item
Viele BDB-Tabellen zur gleichen Zeit öffnen ist sehr langsam. Wenn Sie
-BDB-Tabellen benutzen wollen, sollten Sie einen sehr grossen Tabellen-Cache
-haben (evtl. grösser als 256) und beim @code{mysql}-Client
+BDB-Tabellen benutzen wollen, sollten Sie einen sehr großen Tabellen-Cache
+haben (evtl. größer als 256) und beim @code{mysql}-Client
@code{--no-auto-rehash} benutzen. Das soll partiell in Version 4.0 behoben
werden.
@item
@@ -41159,7 +41208,8 @@ gescannt werden.
@end itemize
-@node BDB-Portabilität, BDB-Fehler, BDB-TODO-Liste, BDB
+@node BDB portability, BDB errors, BDB TODO, BDB
+@c German node BDB-Portabilität
@subsection Betriebssysteme, die von @strong{BDB} unterstützt werden
Wenn Sie MySQL mit Unterstützung für BDB-Tabellen gebaut haben und
@@ -41201,7 +41251,8 @@ Mac OS X
@end itemize
-@node BDB-Fehler, , BDB-Portabilität, BDB
+@node BDB errors, , BDB portability, BDB
+@c German node BDB-Fehler
@subsection Fehler, die bei der Benutzung von BDB-Tabellen auftreten können
@itemize @bullet
@@ -41235,26 +41286,16 @@ ist (die Behebung ist nicht trivial).
@end itemize
-@node MySQL-APIs, Clients, MySQL erweitern, Tabellentypen, Top
+@node Clients, Extending MySQL, Table types, Top
+@c German node MySQL-APIs
@chapter MySQL-APIs
@cindex Client-Werkzeuge
@cindex APIs
@cindex @code{mysqlclient}-Bibliothek
-@cindex Puffergrössen, Client
+@cindex Puffergrößen, Client
@cindex Bibliothek, @code{mysqlclient}
-@menu
-* PHP:: MySQL-PHP-API
-* Perl:: MySQL-Perl-Unterstützung
-* ODBC:: MySQL-ODBC-Unterstützung
-* C:: MySQL-C-API
-* Cplusplus:: MySQL-C++-APIs
-* Java:: MySQL-Java-Anbindung (JDBC)
-* Python:: MySQL-Python-APIs
-* Tcl:: MySQL-Tcl-APIs
-* Eiffel:: MySQL-Eiffel-Wrapper
-@end menu
Dieses Kapitel beschreibt die APIs, die für MySQL bereitstehen, wo man sie
bekommt und wie man sie benutzt. Die C-API ist am ausführlichsten beschrieben,
@@ -41262,7 +41303,20 @@ da sie vom MySQL-Team stammt und als Basis für die meisten anderen APIs
dient.
+@menu
+* PHP::
+* Perl::
+* ODBC::
+* C::
+* Cplusplus::
+* Java::
+* Python::
+* Tcl::
+* Eiffel::
+@end menu
+
@node PHP, Perl, Clients, Clients
+@c German node PHP
@section MySQL-PHP-API
@cindex PHP-API
@@ -41277,11 +41331,13 @@ werden.
Die Distribution und die Dokumentation gibt es unter
@uref{http://www.php.net/, PHP-Website}.
+
@menu
-* PHP-Probleme:: Allgemeine Probleme mit MySQL und PHP
+* PHP problems::
@end menu
-@node PHP-Probleme, , PHP, PHP
+@node PHP problems, , PHP, PHP
+@c German node PHP-Probleme
@subsection Allgemeine Probleme mit MySQL und PHP
@itemize @bullet
@@ -41292,7 +41348,7 @@ schlechte Idee, die Beschränkung für die maximale Benutzung von RAM von 8
MB auf 16 MB per Skript zu verdoppeln.
-@item Error: "Fatal error: Call to unSupported oder undefined function mysql_connect() in .."
+@item Error: "Fatal error: Call to unsupported oder undefined function mysql_connect() in .."
Das bedeutet, dass Ihre PHP-Version nicht mit MySQL-Unterstützung
ausgestattet ist. Sie können entweder ein dynamisches MySQL-Modul für PHP
kompilieren oder PHP mit seiner eingebautet MySQL-Unterstützung neu
@@ -41307,24 +41363,27 @@ linken.
@node Perl, ODBC, PHP, Clients
+@c German node Perl
@section MySQL-Perl-API
@cindex APIs, Perl
@cindex Perl-API
Dieser Abschnitt dokumentiert die Perl-@code{DBI}-Schnittstelle. Die
-frühere Schnittstelle hiess @code{mysqlperl}. @code{DBI}/@code{DBD} ist
-jetzt die empfohlene Perl-Schnittstelle. @code{mysqlperl} ist überflüssig
+frühere Schnittstelle hieß @code{mysqlperl}. @code{DBI}/@code{DBD} ist
+jetzt die empfohlene Perl-Schnittstelle. @code{mysqlperl} ist überflüßig
und deshalb hier nicht näher beschrieben.
+
+
@menu
-* DBI mit DBD:: @code{DBI} mit @code{DBD::mysql}
-* Perl-DBI-Klasse:: Die @code{DBI}-Schnittstelle
-* DBI-Informationen:: Weitere @code{DBI}/@code{DBD}-Informationen
+* DBI with DBD::
+* Perl DBI Class::
+* DBI-info::
@end menu
-
-@node DBI mit DBD, Perl-DBI-Klasse, Perl-Unterstützung, Perl
+@node DBI with DBD, Perl DBI Class, Perl, Perl
+@c German node DBI mit DBD
@subsection @code{DBI} mit @code{DBD::mysql}
@cindex @code{DBI}-Schnittstelle
@@ -41332,7 +41391,7 @@ und deshalb hier nicht näher beschrieben.
@code{DBI} ist eine allgemeine Schnittstelle für viele Datenbanken. Das
bedeutet, Sie können ein Skript schreiben, dass viele verschiedene
Datenbanken unterstützt, ohne es zu ändern. Sie brauchen für jeden
-Datenbanktyp einen Datenbank-Treiber (DBD). Für MySQL heisst dieser Treiber
+Datenbanktyp einen Datenbank-Treiber (DBD). Für MySQL heißt dieser Treiber
@code{DBD::mysql}. Für weitere Informationen über Perl5 DBI besuchen Sie
bitte die @code{DBI}-Website und lesen Sie die Dokumentation:
@@ -41352,7 +41411,8 @@ Installationsanweisungen für MySQL-Perl-Unterstützung finden Sie unter
@ref{Perl}.
-@node Perl-DBI-Klasse, DBI-Informationen, DBI mit DBD, Perl-Unterstützung, Perl
+@node Perl DBI Class, DBI-info, DBI with DBD, Perl
+@c German node Perl-DBI-Klasse
@subsection Die @code{DBI}-Schnittstelle
@cindex @code{DBI}-Perl-Modul
@@ -41371,7 +41431,7 @@ Installationsanweisungen für MySQL-Perl-Unterstützung finden Sie unter
@item @code{fetchrow_arrayref} @tab Holt die nächste Zeile als eine Referenz eines Arrays aus Feldern.
@item @code{fetchrow_hashref} @tab Holt die nächste Zeile als eine Referenz einer Hash-Tabelle.
@item @code{fetchall_arrayref} @tab Holt alle Zeilen als einen Array von Arrays.
-@item @code{finish} @tab Beendet ein Statement und lässt das System Resourcen freigeben.
+@item @code{finish} @tab Beendet ein Statement und läßt das System Resourcen freigeben.
@item @code{rows} @tab Gibt die Anzahl der betroffenen Zeilen zurück.
@item @code{data_sources} @tab Gibt einen Array mit den verfügbaren Daten auf localhost zurück.
@item @code{ChopBlanks} @tab Kontroliert, ob die @code{fetchrow_*}-Methoden Leerzeichen entfernen.
@@ -41390,8 +41450,8 @@ Installationsanweisungen für MySQL-Perl-Unterstützung finden Sie unter
@item @code{is_num} @tab Welche Spalten numerisch sind.
@item @code{is_pri_key} @tab Welche Spalten Primärschlüssel sind.
@item @code{is_not_null} @tab Welche Spalten NICHT @code{NULL} sein können. Siehe auch @code{NULLABLE}.
-@item @code{length} @tab Maximal mögliche Spaltengrösse.
-@item @code{max_length} @tab Maximale Spaltengrösse, die im aktuellen Ergebnis enthalten ist.
+@item @code{length} @tab Maximal mögliche Spaltengröße.
+@item @code{max_length} @tab Maximale Spaltengröße, die im aktuellen Ergebnis enthalten ist.
@item @code{NAME} @tab Spaltennamen.
@item @code{NUM_OF_FIELDS} @tab Anzahl der zurückgegebenen Felder.
@item @code{table} @tab Tabellennamen im zurückgegebenen Ergebnis.
@@ -41441,12 +41501,12 @@ verwendet. Wenn Sie keine Portnummer angeben, wird der MySQL-Port
(@value{default_port}) verwendet.
Seit @code{Msql-Mysql-modules}-Version 1.2009 erlaubt der
-@code{$datenquelle}-Wert betimmte Modifikatoren:
+@code{$datenquelle}-Wert bestimmte Modifikatoren:
@table @code
@item mysql_read_default_file=datei
Liest @file{datei} als eine Optionsdatei. Für weitere Informationen zu
-Optionsdateien beachten Sie bitte @ref{Optionsdateien}.
+Optionsdateien beachten Sie bitte @ref\{Option files}.
@item mysql_read_default_group=group_name
Beim Lesen einer Optionsdatei ist die Standardgruppe normalerweise die
@@ -41468,7 +41528,7 @@ vorangestellt sein.
Wenn Sie zum Beispiel vermeiden wollen, dass sie Benutzername und Passwort
im @code{DBI}-Skript angeben müssen, können Sie sie aus der
@file{~/.my.cnf}-Optionsdatei nehmen. Ihr @code{connect}-Aufruf sieht
-folgendermassen aus:
+folgendermaßen aus:
@example
$dbh = DBI->connect("DBI:mysql:$datenbank"
@@ -41554,7 +41614,7 @@ aufgerufen werden.
@cindex Zeichenketten, quoten
@item quote($string)
Die @code{quote}-Methode wird verwendet, um Sonderzeichen zu "escapen", die
-in Zeichenketten enthalten sein können, und um notwendige äussere
+in Zeichenketten enthalten sein können, und um notwendige äußere
Anführungszeichen hinzuzufügen. Beispiel:
@example
$sql = $dbh->quote($string)
@@ -41669,7 +41729,7 @@ Datenbanken auf @code{'localhost'} enthält. Beispiel:
@findex ChopBlanks-DBI-Methode
@item ChopBlanks
Dieses Attribut gibt an, ob die @code{fetchrow_*}-Methoden vor- und
-nachstehende Leerzeichen enfernen. Beispiel:
+nachstehende Leerzeichen entfernen. Beispiel:
@example
$sth->@{'ChopBlanks'@} =1;
@end example
@@ -41684,7 +41744,7 @@ Wenn @code{DBI} als eine Klassenmethode aufgerufen wird, steuert es das
Statement-Handle-Methode aufgerufen wird, steuert es nur die verwendete
Verbindung (und deren spätere Ableitungen). Wenn Sie @code{$trace_ebene}
auf 2 setzen, bewirkt es detaillierte Informationen. Der Wert 0 stellt
-"Tracing" ab. Die Ausgabe des "Tracing" wird vorgabemässig nach "standard
+"Tracing" ab. Die Ausgabe des "Tracing" wird vorgabemäßig nach "standard
error" geleitet. Wenn @code{$trace_dateiname} angegeben ist, wird die
Ausgabe für @emph{alle} "getraceten" Verbindungen an das Ende dieser Datei
geschrieben. Beispiel:
@@ -41822,7 +41882,8 @@ $types = $sth->@{type@};
@end table
-@node DBI-Informationen, Perl-DBI-Klasse, , Perl
+@node DBI-info, , Perl DBI Class, Perl
+@c German node DBI-Informationen
@subsection Weitere @code{DBI}/@code{DBD}-Informationen
@cindex @code{DBI/DBD}
@@ -41846,21 +41907,13 @@ Die neuesten @code{DBI}-Informationen finden Sie auf der @code{DBI} Website:
@node ODBC, C, Perl, Clients
+@c German node ODBC
@section MySQL-ODBC-Unterstützung
@cindex ODBC
@cindex Windows
@cindex MyODBC
-@menu
-* MyODBC-Installation:: MyODBC-Installation
-* ODBC-Administrator:: Wie Sie die verschiedenen Felder im OBDC-Administrator-Programm ausfüllen
-* MyODBC-Verbindungsparameter:: Verbindungsparameter für MyODBC
-* ODBC-Probleme:: Wie Sie Probleme mit MySQL-ODBC berichten
-* MyODBC-Clients:: Programme, die mit @strong{MyODBC} arbeiten
-* ODBC und last_insert_id:: Wie Sie an die Werte der @code{AUTO_INCREMENT}-Spalte in ODBC gelangen
-* MyODBC-Bug-Bericht:: Probleme mit MyODBC
-@end menu
MySQL unterstützt ODBC mit Hilfe des @strong{MyODBC}-Programms. Dieses
@@ -41868,7 +41921,18 @@ Kapitel erläutert, wie Sie @strong{MyODBC} installieren und benutzen. Hier
werden Sie außerdem eine Liste von Programmen finden, die mit
@strong{MyODBC} zusammenarbeiten.
-@node MyODBC-Installation, ODBC-Administrator, ODBC, ODBC
+@menu
+* Installing MyODBC::
+* ODBC administrator::
+* MyODBC connect parameters::
+* ODBC Problems::
+* MyODBC clients::
+* ODBC and last_insert_id::
+* MyODBC bug report::
+@end menu
+
+@node Installing MyODBC, ODBC administrator, ODBC, ODBC
+@c German node MyODBC-Installation
@subsection Wie Sie MyODBC installieren
@strong{MyODBC} ist ein 32-Bit-ODBC- (2.50) -Level-0- (mit Level-1- und
@@ -41890,9 +41954,10 @@ für die Datenbankverbindung nutzt.
Wenn Sie @strong{MyODBC} unter Unix installieren wollen, brauchen Sie noch
einen @strong{ODBC}-Manager. @strong{MyODBC} arbeitet mit den meisten
-Unix-ODBC-Managern zusammen. Eine Liste finden Sie in dem
-@strong{ODBC}-verwandten Linkabschnitt auf der MySQL-Seite @xref{Nützliche
-Links}.
+Unix-ODBC-Managern zusammen.
+@c German FIX node doesn't exist, should probably be to Portals?
+@c Eine Liste finden Sie in dem @strong{ODBC}-verwandten Linkabschnitt
+@c auf der MySQL-Seite @xref{Nützliche Links}.
Um @strong{MyODBC} unter Windows zu installieren, sollten sie die passende
@strong{MyODBC} Zip-Datei (für Windows 95/98 oder NT / Windows 2000)
@@ -41930,7 +41995,7 @@ Der Windows-Benutzer muss Zugriffsrechte auf den MySQL-Server der
Unix-Maschine besitzen. Diese richten Sie mit dem @code{GRANT}-Befehl ein.
@xref{GRANT,,@code{GRANT}}.
@item
-Sie muessen wie folgt einen ODBC-DSN-Eintrag erstellen:
+Sie müssen wie folgt einen ODBC-DSN-Eintrag erstellen:
@itemize @minus
@item
@@ -41946,7 +42011,7 @@ Wählen Sie MySQL im Fenster "Neue Datenquelle hinzufügen" und klicken Sie
auf den Fertig-Knopf.
@item
Das MySQL-Treiber-Standard-Konfigurationsfenster wird nun angezeigt.
-@xref{ODBC-Administrator}.
+@xref\{ODBC administrator}.
@end itemize
@item
@@ -41958,7 +42023,8 @@ Bitte beachten Sie, dass weitere Konfigurationsoptionen im MySQL-Fenster
vorhanden sind (trace, don't prompt on connect usw.). Probieren Sie diese
aus, wenn Sie Probleme haben.
-@node ODBC-Administrator, MyODBC-Verbindungsparameter, MyODBC-Installation, ODBC
+@node ODBC administrator, MyODBC connect parameters, Installing MyODBC, ODBC
+@c German node ODBC-Administrator
@subsection Wie Sie die verschiedenen Felder im ODBC-Administrator Programm ausfüllen
@cindex ODBC, Administrator
@@ -42014,7 +42080,8 @@ gelesen. Sie können alle Optionen verwenden, die für @code{mysql_options()}
gültig sind. @xref{mysql_options, , @code{mysql_options}}.
-@node MyODBC-Verbindungsparameter, ODBC-Probleme, ODBC-Administrator, ODBC
+@node MyODBC connect parameters, ODBC Problems, ODBC administrator, ODBC
+@c German node MyODBC-Verbindungsparameter
@subsection Verbindungsparameter für MyODBC
Man kann die folgenden Parameter für @strong{MyODBC} im
@@ -42073,7 +42140,8 @@ verwenden. Um diese Datei zu installieren, kopieren Sie @file{MYODBCD.DLL}
einfach über die installierte @code{MYODBC.DLL}-Datei.
-@node ODBC-Probleme, MyODBC-Clients, MyODBC-Verbindungsparameter, ODBC
+@node ODBC Problems, MyODBC clients, MyODBC connect parameters, ODBC
+@c German node ODBC-Probleme
@subsection Wie Sie Probleme mit MyODBC berichten
@strong{MyODBC} wurde mit Access, Admndemo.exe, C++-Builder,
@@ -42089,7 +42157,7 @@ Bescheid!
Mit einigen Programmen können Fehler wie diese auftreten: @code{Another
user hat modifies the record that you have modified}. Meistens lösen Sie
-das folgendermassen:
+das folgendermaßen:
@itemize @bullet
@item
@@ -42098,16 +42166,17 @@ existiert.
@item
Fügen Sie eine TIMESTAMP-Spalte hinzu, wenn noch keine existiert.
@item
-Verwenden Sie ausschliesslich 'Double Float'-Felder. Manche Programme
+Verwenden Sie ausschließlich 'Double Float'-Felder. Manche Programme
kommen mit 'Single Float'-Feldern nicht klar.
@end itemize
Wenn das nicht helfen sollte, dann erstellen Sie eine @code{MyODBC}
-'Trace'-Datei und versuchen Sie, die Fehlerquelle so zu erschliessen.
+'Trace'-Datei und versuchen Sie, die Fehlerquelle so zu erschließen.
-@node MyODBC-Clients, ODBC und last_insert_id, ODBC-Probleme, ODBC
-@subsection Programme, die bekanntermassen mit MyODBC zusammenarbeiten
+@node MyODBC clients, ODBC and last_insert_id, ODBC Problems, ODBC
+@c German node MyODBC-Clients
+@subsection Programme, die bekanntermaßen mit MyODBC zusammenarbeiten
Die meisten Programme sollten mit @strong{MyODBC} zusammenarbeiten. Für die
unten aufgeführten haben wir es selbst getestet oder haben die Bestätigung
@@ -42160,7 +42229,7 @@ Zeilen finden oder ändern können.
@item
Wenn Sie eine Tabelle mit MyODBC verbinden, die eine @code{BIGINT}-Spalte hat,
werden die Ergebnisse als @code{#DELETED} angezeigt. Sie umgehen das Problem
-folgendermassen:
+folgendermaßen:
@itemize @bullet
@item
Fügen Sie eine weitere @code{TIMESTAMP}-"Dummy-Spalte" hinzu, am besten
@@ -42182,7 +42251,7 @@ Ihnen der folgende Trick helfen:
Verwenden Sie anstelle von @code{Datenblattansicht} ein Formular mit den
von Ihnen gewünschten Feldern und benutzen Sie dann
-@code{Formularblattansicht}. Sie sollten den @code{StandartWert} für die
+@code{Formularblattansicht}. Sie sollten den @code{StandardWert} für die
@code{TIMESTAMP}-Spalte auf @code{NOW()} setzen. Zusätzlich ist es sicher
nützlich, die @code{TIMESTAMP}-Spalte zu verstecken, damit Ihre Anwender
nicht erschrecken.
@@ -42208,7 +42277,7 @@ die größer als 127 sind!
@cindex ADO program
@item ADO
Wenn Sie mit der ADO-API und @strong{MyODBC} kodieren, müssen Sie auf
-einige vorgabemässige Eigenschaften achten, die vom MySQL-Server nicht
+einige vorgabemäßige Eigenschaften achten, die vom MySQL-Server nicht
unterstützt werden. Die Benutzung von @code{CursorLocationProperty} als
@code{adUseServer} zum Beispiel gibt für @code{RecordCountProperty} ein
Ergebnis von -1 zurück. Um den richtigen Wert zu erhalten, müssen Sie diese
@@ -42250,7 +42319,7 @@ benutzen.
Wenn Sie eine Anfrage starten, können Sie die Eigenschaft @code{Active}
oder die Methode @code{Open} benutzen. Beachten Sie, dass @code{Active}
automatisch mit einer @code{SELECT * FROM ...}-Anfrage startet, was keine
-gute Idee ist, wenn Ihre Tabellen gross sind!
+gute Idee ist, wenn Ihre Tabellen Groß sind!
@item ColdFusion (unter Unix)
Die folgenden Informationen sind der ColdFusion-Dokumentation entnommen:
@@ -42295,7 +42364,7 @@ korrekt als Zeitwerte von Excel97 erkannt werden.
Der Zweck von @code{CONCAT()} in diesem Beispiel ist, ODBC auszutricksen,
so dass es denkt, dass die Spalte vom Typ "Zeichenkette" sei. Ohne
-@code{CONCAT()} weiss ODBC, dass die Spalte vom Typ "Zeit" ist, und Excel
+@code{CONCAT()} weiß ODBC, dass die Spalte vom Typ "Zeit" ist, und Excel
versteht das nicht.
Beachten Sie, dass das ein Bug in Excel ist, weil es eine Zeichenkette
@@ -42403,7 +42472,7 @@ fReg:= TRegistry.Create;
@cindex C++-Builder
@item C++-Builder
-Getested mit BDE-Version 3.0. Das einzige bekannte Problem ist, dass
+Getestet mit BDE-Version 3.0. Das einzige bekannte Problem ist, dass
Anfragefelder nicht aktualisiert werden, wenn sich die Tabellenstruktur
ändert. BDE scheint jedoch keine Primärschlüssel zu erkennen, sondern nur
den Index PRIMARY, obwohl das eigentlich kein Problem darstellt.
@@ -42416,9 +42485,9 @@ Sie sollten den Option-Flag @code{Return matching rows} benutzen.
Damit Sie eine Tabelle aktualisieren können, müssen Sie für die Tabelle
einen Primärschlüssel definieren.
-Visual Basic mit ADO kann keine grossen Ganzzahlen handhaben. Das heisst,
+Visual Basic mit ADO kann keine großen Ganzzahlen handhaben. Das heißt,
dass einige Anfragen wie @code{SHOW PROCESSLIST} nicht korrekt
-funktionieren. Das lässt sich beheben, indem man die Option
+funktionieren. Das läßt sich beheben, indem man die Option
@code{OPTION=16834} in der ODBC-Verbindungs-Zeichenkette hinzufügt oder die
@code{Change BIGINT columns to INT}-Option im MySQL-Verbindungsbildschirm
setzt. Eventuell sollten Sie auch die @code{Return matching rows}-Option
@@ -42435,7 +42504,8 @@ Sie sollten den Option-Flag @code{Don't optimize column widths} setzen.
@end table
-@node ODBC und last_insert_id, MyODBC-Bug-Bericht, MyODBC-Clients, ODBC
+@node ODBC and last_insert_id, MyODBC bug report, MyODBC clients, ODBC
+@c German node ODBC und last_insert_id
@subsection Wie man den Wert einer @code{AUTO_INCREMENT}-Spalte in ODBC erhält
@cindex AUTO-INCREMENT, ODBC
@@ -42457,7 +42527,7 @@ INSERT INTO foo (auto,text) VALUES(NULL,'text');
INSERT INTO foo2 (id,text) VALUES(LAST_INSERT_ID(),'text');
@end example
-@xref{Eindeutige Kennung erhalten}.
+@xref\{Getting unique ID}.
Bei einigen ODBC-Applikationen (zumindest Delphi und Access) kann folgende
Anfrage benutzt werden, um eine neu eingefügte Zeile zu finden:
@@ -42466,7 +42536,8 @@ SELECT * FROM tabelle WHERE auto IS NULL;
@end example
-@node MyODBC-Bug-Bericht, , ODBC und last_insert_id, ODBC
+@node MyODBC bug report, , ODBC and last_insert_id, ODBC
+@c German node MyODBC-Bug-Bericht
@subsection Probleme mit MyODBC berichten
@cindex berichten, MyODBC-Probleme
@@ -42496,7 +42567,7 @@ Konfigurationsfenster an. Das Log wird in die Datei @file{C:\myodbc.log}
geschrieben.
Wenn Sie zu diesem Fenster zurückkehren und feststellen, dass die
-Trace-Option nicht mehr angekreuzt ist, heisst das, dass Sie nicht den
+Trace-Option nicht mehr angekreuzt ist, heißt das, dass Sie nicht den
@code{myodbcd.dll}-Treiber benutzen (siehe oben).
@item
Starten Sie Ihre Applikation und versuchen Sie, eine Fehlfunktion zu
@@ -42536,22 +42607,12 @@ Informationen Sie uns zur Verfügung stellen!
@node C, Cplusplus, ODBC, Clients
+@c German node C
@section MySQL-C-API
@cindex C-API, datatypes
@cindex Datentypen, C-API
-@menu
-* C-API-Datentypen:: C-API-Datentypen
-* C-API-Funktionsüberblick:: C-API-Funktionsüberblick
-* C-API-Funktionen:: C-API-Funktionsbeschreibungen
-* C-Thread-Funktionen:: C-Thread-Funktionen
-* C-Embedded-Server-Funktionen:: C-Embedded-Server-Funktionen
-* C-API-Probleme:: Häufige Fragen und Probleme bei der Benutzung der C-API
-* Clients bauen:: Client-Programme bauen
-* Threaded Clients:: Wie man einen threaded Client herstellt
-* libmysqld:: libmysqld, die eingebettete MySQL-Server-Bibliothek
-@end menu
Der C-API-Code wird mit MySQL ausgeliefert. Er ist in der
@code{mysqlclient}-Bibliothek enthalten und erlaubt C-Programmen, auf eine
@@ -42564,44 +42625,57 @@ MySQL-Quelldistribution.
Viele andere Client-APIs (alle ausser Java) benutzen die
@code{mysqlclient}-Bibliothek, um mit dem MySQL-Server zu kommunizieren.
-Das heisst zum Beispiel, dass Sie viele derselben Umgebungsvariablen nutzen
+Das heißt zum Beispiel, dass Sie viele derselben Umgebungsvariablen nutzen
können, die von anderen Client-Programmen benutzt werden, weil sie von der
Bibliothek referenziert werden. Eine Liste dieser Variablen findet sich
-unter @ref{Clientseitige Skripte}.
+unter @ref\{Client-Side Scripts}.
-Der Client hat eine maximale Kommunikationspuffergrösse. Die anfänglich
-zugewiesene Puffergrösse (16 KB) wird automatisch bis zur maximale Grösse
-(16 MB) vergrössert. Weil Puffergrössen nur bei Bedarf vergrössert werden,
-bedeutet die einfache Erhöhung der maximalen Grösse nicht per se, dass mehr
-Ressourcen benutzt werden. Die Überprüfung der Grösse ist hauptsächlich
+Der Client hat eine maximale Kommunikationspuffergröße. Die anfänglich
+zugewiesene Puffergröße (16 KB) wird automatisch bis zur maximale Größe
+(16 MB) vergrößert. Weil Puffergrößen nur bei Bedarf vergrößert werden,
+bedeutet die einfache Erhöhung der maximalen Größe nicht per se, dass mehr
+Ressourcen benutzt werden. Die Überprüfung der Größe ist hauptsächlich
eine Prüfung auf irrtümliche Anfragen und Kommunikationspakete.
-Der Kommunikationspuffer muss gross genug sein, um ein einzelnes
+Der Kommunikationspuffer muss Groß genug sein, um ein einzelnes
SQL-Statement aufzunehmen (für den Client-Server-Verkehr) und eine Zeile
zurückgegebener Daten (für den Server-Client-Verkehr). Der
-Kommunikationspuffer jedes Threads wird dynamisch vergrössert, um jede
-Anfrage oder Zeile bis zur maximalen Grösse zu handhaben. Wenn Sie
+Kommunikationspuffer jedes Threads wird dynamisch vergrößert, um jede
+Anfrage oder Zeile bis zur maximalen Größe zu handhaben. Wenn Sie
beispielsweise @code{BLOB}-Werte haben, die bis zu 16 MB an Daten
beinhalten, müssen Sie eine Kommunikationspuffergrenze von zumindest 16 MB
-haben (sowohl beim Server als auch beim Client). Die vorgabemässige
-maximale Grösse beim Client liegt bei 16 MB, aber die vorgabemässige
-maximale Grenze beim Server liegt bei 1 MB. Das können Sie vergrössern,
+haben (sowohl beim Server als auch beim Client). Die vorgabemäßige
+maximale Größe beim Client liegt bei 16 MB, aber die vorgabemäßige
+maximale Grenze beim Server liegt bei 1 MB. Das können Sie vergrößern,
indem Sie den Wert des @code{max_allowed_packet}-Parameters setzen, wenn
-der Server gestartet wird. @xref{Serverparameter}.
+der Server gestartet wird. @xref\{Server parameters}.
-Der MySQL-Server verrringert den Kommunikationspuffer auf
+Der MySQL-Server verringert den Kommunikationspuffer auf
@code{net_buffer_length} Bytes nach jeder Anfrage. Bei Clients wird die
-Grösse des zugewiesenen Puffers bei einer Verbindung nicht herabgesetzt,
+Größe des zugewiesenen Puffers bei einer Verbindung nicht herabgesetzt,
bis die Verbindung geschlossen wird. Dann wird der Client-Speicher wieder
freigesetzt.
-Zum Programmieren mit Threads siehe @ref{Threaded Clients}. Um eine
+Zum Programmieren mit Threads siehe @ref\{Threaded clients}. Um eine
Standalone-Applikation herzustellen, die "Server" und "Client" im selben
Programm beinhaltet (und nicht mit einem externen MySQL-Server
kommuniziert), siehe @ref{libmysqld}.
-@node C-API-Datentypen, C-API-Funktionsüberblick, C, C
+@menu
+* C API datatypes::
+* C API function overview::
+* C API functions::
+* C Thread functions::
+* C Embedded Server func::
+* C API problems::
+* Building clients::
+* Threaded clients::
+* libmysqld::
+@end menu
+
+@node C API datatypes, C API function overview, C, C
+@c German node C-API-Datentypen
@subsection C-API-Datentypen
@table @code
@@ -42629,7 +42703,7 @@ enthalten können.) Zeilen werden mit dem Aufruf von
@tindex MYSQL_FIELD C-Typ
@item MYSQL_FIELD
Diese Struktur enthält Informationen über ein Feld, wie Feldname, Feldtyp
-und Feldgrösse. Seine Elemente werden weiter unten genauer beschrieben. Sie
+und Feldgröße. Seine Elemente werden weiter unten genauer beschrieben. Sie
erhalten die @code{MYSQL_FIELD}-Strukturen für jedes Feld durch den
wiederholten Aufruf von @code{mysql_fetch_field()}. Feldwerte sind nicht
Teil dieser Struktur, sondern in der @code{MYSQL_ROW}-Struktur enthalten.
@@ -42767,7 +42841,8 @@ Die Anzahl von Dezimalstellen für numerische Felder.
@end table
-@node C-API-Funktionsüberblick, C-API-Funktionen, C-API-Datentypen, C
+@node C API function overview, C API functions, C API datatypes, C
+@c German node C-API-Funktionsüberblick
@subsection C-API-Funktionsüberblick
@cindex C-API, Funktionen
@@ -42775,7 +42850,7 @@ Die Anzahl von Dezimalstellen für numerische Felder.
Die in der C-API verfügbaren Funktionen sind unten aufgeführt und im
nächsten Abschnitt detaillierter beschrieben.
-@xref{C-API-Funktionen}.
+@xref\{C API functions}.
@multitable @columnfractions .3 .7
@item @strong{mysql_affected_rows()} @tab
@@ -42784,7 +42859,7 @@ Gibt die Anzahl von Zeilen zurück, die durch die letzte @code{UPDATE}-,
hinzugefügt wurden.
@item @strong{mysql_close()} @tab
-Schliesst eine Server-Verbindung.
+Schließt eine Server-Verbindung.
@item @strong{mysql_connect()} @tab
Stellt die Verbindung mit einem MySQL-Server her. Diese Funktion ist
@@ -42794,7 +42869,7 @@ veraltet, benutzen Sie statt dessen @code{mysql_real_connect()}.
Ändert Benutzer und Datenbank bei einer geöffneten Verbindung.
@item @strong{mysql_character_set_name()} @tab
-Gibt den Namen des vorgabemässigen Zeichensatzes für die Verbindung zurück.
+Gibt den Namen des vorgabemäßigen Zeichensatzes für die Verbindung zurück.
@item @strong{mysql_create_db()} @tab
Erzeugt eine Datenbank. Diese Funktion ist veraltet, benutzen Sie statt
@@ -42999,7 +43074,7 @@ In beiden Fällen können Sie auf Zeilen zugreifen, indem Sie
@code{mysql_fetch_row()} aufrufen. Bei @code{mysql_store_result()} greift
@code{mysql_fetch_row()} auf Zeilen zurück, die bereits vom Server geholt
wurden. Bei @code{mysql_use_result()} ruft @code{mysql_fetch_row()} die
-Zeilen direkt vom Server ab. Informationen über die Grösse der Daten in
+Zeilen direkt vom Server ab. Informationen über die Größe der Daten in
jeder Zeile sind durch Aufruf von @code{mysql_fetch_lengths()} verfügbar.
Wenn Sie mit einer Ergebnismenge fertig sind, rufen Sie
@@ -43018,7 +43093,7 @@ benutzen, um die aktuelle Position innerhalb der Ergebnismenge zu ändern.
Sie können auch herausfinden, wie viele Zeilen es gibt, indem Sie
@code{mysql_num_rows()} aufrufen. Auf der anderen Seite kann der
Speicherbedarf für @code{mysql_store_result()} sehr hoch sein, wenn Sie
-grosse Ergebnismengen abrufen, so dass Speichermangel eintreten kann.
+große Ergebnismengen abrufen, so dass Speichermangel eintreten kann.
Ein Vorteil von @code{mysql_use_result()} ist, dass der Client weniger
Arbeitsspeicher für die Ergebnismenge benötigt, weil er nur eine Zeile
@@ -43069,63 +43144,10 @@ Verfügung, die erfolgreich sein oder fehlschlagen können, so dass Sie
feststellen können, wann ein Fehler auftrat und welcher es war.
-@node C-API-Funktionen, C-Thread-Funktionen, C-API-Funktionsüberblick, C
+@node C API functions, C Thread functions, C API function overview, C
+@c German node C-API-Funktionen
@subsection C-API-Funktionsbeschreibungen
-@menu
-* mysql_affected_rows:: @code{mysql_affected_rows()}
-* mysql_close:: @code{mysql_close()}
-* mysql_connect:: @code{mysql_connect()}
-* mysql_change_user:: @code{mysql_change_user()}
-* mysql_character_set_name:: @code{mysql_character_set_name()}
-* mysql_create_db:: @code{mysql_create_db()}
-* mysql_data_seek:: @code{mysql_data_seek()}
-* mysql_debug:: @code{mysql_debug()}
-* mysql_drop_db:: @code{mysql_drop_db()}
-* mysql_dump_debug_info:: @code{mysql_dump_debug_info()}
-* mysql_eof:: @code{mysql_eof()}
-* mysql_errno:: @code{mysql_errno()}
-* mysql_error:: @code{mysql_error()}
-* mysql_escape_string:: @code{mysql_escape_string()}
-* mysql_fetch_field:: @code{mysql_fetch_field()}
-* mysql_fetch_fields:: @code{mysql_fetch_fields()}
-* mysql_fetch_field_direct:: @code{mysql_fetch_field_direct()}
-* mysql_fetch_lengths:: @code{mysql_fetch_lengths()}
-* mysql_fetch_row:: @code{mysql_fetch_row()}
-* mysql_field_count:: @code{mysql_field_count()}
-* mysql_field_seek:: @code{mysql_field_seek()}
-* mysql_field_tell:: @code{mysql_field_tell()}
-* mysql_free_result:: @code{mysql_free_result()}
-* mysql_get_client_info:: @code{mysql_get_client_info()}
-* mysql_get_host_info:: @code{mysql_get_host_info()}
-* mysql_get_proto_info:: @code{mysql_get_proto_info()}
-* mysql_get_server_info:: @code{mysql_get_server_info()}
-* mysql_info:: @code{mysql_info()}
-* mysql_init:: @code{mysql_init()}
-* mysql_insert_id:: @code{mysql_insert_id()}
-* mysql_kill:: @code{mysql_kill()}
-* mysql_list_dbs:: @code{mysql_list_dbs()}
-* mysql_list_fields:: @code{mysql_list_fields()}
-* mysql_list_processes:: @code{mysql_list_processes()}
-* mysql_list_tables:: @code{mysql_list_tables()}
-* mysql_num_fields:: @code{mysql_num_fields()}
-* mysql_num_rows:: @code{mysql_num_rows()}
-* mysql_options:: @code{mysql_options()}
-* mysql_ping:: @code{mysql_ping()}
-* mysql_query:: @code{mysql_query()}
-* mysql_real_connect:: @code{mysql_real_connect()}
-* mysql_real_escape_string:: @code{mysql_real_escape_string()}
-* mysql_real_query:: @code{mysql_real_query()}
-* mysql_reload:: @code{mysql_reload()}
-* mysql_row_seek:: @code{mysql_row_seek()}
-* mysql_row_tell:: @code{mysql_row_tell()}
-* mysql_select_db:: @code{mysql_select_db()}
-* mysql_shutdown:: @code{mysql_shutdown()}
-* mysql_stat:: @code{mysql_stat()}
-* mysql_store_result:: @code{mysql_store_result()}
-* mysql_thread_id:: @code{mysql_thread_id()}
-* mysql_use_result:: @code{mysql_use_result()}
-@end menu
In den unten stehenden Beschreibungen bedeutet ein Parameter oder
Rückgabewert von @code{NULL} @code{NULL} im Sinne der
@@ -43158,7 +43180,63 @@ aufrufen. Eine Zeichenketten-Darstellung des Fehler kann durch Aufruf von
@code{mysql_error()} erlangt werden.
-@node mysql_affected_rows, mysql_close, C-API-Funktionen, C-API-Funktionen
+@menu
+* mysql_affected_rows::
+* mysql_close::
+* mysql_connect::
+* mysql_change_user::
+* mysql_character_set_name::
+* mysql_create_db::
+* mysql_data_seek::
+* mysql_debug::
+* mysql_drop_db::
+* mysql_dump_debug_info::
+* mysql_eof::
+* mysql_errno::
+* mysql_error::
+* mysql_escape_string::
+* mysql_fetch_field::
+* mysql_fetch_fields::
+* mysql_fetch_field_direct::
+* mysql_fetch_lengths::
+* mysql_fetch_row::
+* mysql_field_count::
+* mysql_field_seek::
+* mysql_field_tell::
+* mysql_free_result::
+* mysql_get_client_info::
+* mysql_get_host_info::
+* mysql_get_proto_info::
+* mysql_get_server_info::
+* mysql_info::
+* mysql_init::
+* mysql_insert_id::
+* mysql_kill::
+* mysql_list_dbs::
+* mysql_list_fields::
+* mysql_list_processes::
+* mysql_list_tables::
+* mysql_num_fields::
+* mysql_num_rows::
+* mysql_options::
+* mysql_ping::
+* mysql_query::
+* mysql_real_connect::
+* mysql_real_escape_string::
+* mysql_real_query::
+* mysql_reload::
+* mysql_row_seek::
+* mysql_row_tell::
+* mysql_select_db::
+* mysql_shutdown::
+* mysql_stat::
+* mysql_store_result::
+* mysql_thread_id::
+* mysql_use_result::
+@end menu
+
+@node mysql_affected_rows, mysql_close, C API functions, C API functions
+@c German node mysql_affected_rows
@subsubsection @code{mysql_affected_rows()}
@findex @code{mysql_affected_rows()}
@@ -43176,7 +43254,7 @@ aufgerufen werden, bei @code{UPDATE}-, @code{DELETE}- oder
@subsubheading Rückgabewerte
-Eine Ganzzahl grösser als 0 gibt die Anzahl von Zeilen an, die betroffen
+Eine Ganzzahl größer als 0 gibt die Anzahl von Zeilen an, die betroffen
oder abgerufen wurden. 0 gibt an, dass keine Datensätze bei einem
@code{UPDATE}-Statement geändert wurden, keine Zeilen der
@code{WHERE}-Klausel in der Anfrage entsprachen oder dass bislang keine
@@ -43207,7 +43285,8 @@ Zeile ersetzte. Das liegt daran, dass in diesem Fall eine neue Zeile
eingefügt und dann das alte Duplikat gelöscht wurde.
-@node mysql_close, mysql_connect, mysql_affected_rows, C-API-Funktionen
+@node mysql_close, mysql_connect, mysql_affected_rows, C API functions
+@c German node mysql_close
@subsubsection @code{mysql_close()}
@findex @code{mysql_close()}
@@ -43215,7 +43294,7 @@ eingefügt und dann das alte Duplikat gelöscht wurde.
@code{void mysql_close(MYSQL *mysql)}
@subsubheading Beschreibung
-Schliesst eine vorher geöffnete Verbindung. @code{mysql_close()} gibt auch
+Schließt eine vorher geöffnete Verbindung. @code{mysql_close()} gibt auch
den Verbindungs-Handle frei, der von @code{mysql} zugewiesen wurde, wenn
der Handle automatisch mit @code{mysql_init()} oder @code{mysql_connect()}
zugewiesen wurde.
@@ -43229,7 +43308,8 @@ Keine.
Keine.
-@node mysql_connect, mysql_change_user, mysql_close, C-API-Funktionen
+@node mysql_connect, mysql_change_user, mysql_close, C API functions
+@c German node mysql_connect
@subsubsection @code{mysql_connect()}
@findex @code{mysql_connect()}
@@ -43266,7 +43346,8 @@ Dieselben wie für @code{mysql_real_connect()}.
Dieselben wie für @code{mysql_real_connect()}.
-@node mysql_change_user, mysql_character_set_name, mysql_connect, C-API-Funktionen
+@node mysql_change_user, mysql_character_set_name, mysql_connect, C API functions
+@c German node mysql_change_user
@subsubsection @code{mysql_change_user()}
@findex @code{mysql_change_user()}
@@ -43277,7 +43358,7 @@ char *password, const char *db)}
@subsubheading Beschreibung
Ändert den Benutzer und veranlasst, dass die Datenbank, die mit @code{db}
-angegeben wurde, die vorgabemässige (aktualle) Datenbank für die Verbindung
+angegeben wurde, die vorgabemäßige (aktuelle) Datenbank für die Verbindung
wird, die durch @code{mysql} festgelegt wurde. In nachfolgenden Anfragen
ist diese Datenbank die Vorgabe für Tabellenverweise, bei denen nicht
explizit eine Datenbank angegeben wird.
@@ -43289,7 +43370,7 @@ authentifizieren kann oder wenn er keine Zugriffsrechte auf die Datenbank
hat. In diesem Fall werden Benutzer und Datenbank nicht geändert.
Der @code{db}-Parameter kann auf @code{NULL} gesetzt werden, wenn Sie keine
-vorgabemässige Datenbank haben wollen.
+vorgabemäßige Datenbank haben wollen.
@subsubheading Rückgabewerte
@@ -43332,7 +43413,8 @@ if (mysql_change_user(&mysql, "benutzer", "passwort", "neue_datenbank"))
@end example
-@node mysql_character_set_name, mysql_create_db, mysql_change_user, C-API-Funktionen
+@node mysql_character_set_name, mysql_create_db, mysql_change_user, C API functions
+@c German node mysql_character_set_name
@subsubsection @code{mysql_character_set_name()}
@findex @code{mysql_character_set_name()}
@@ -43341,18 +43423,19 @@ if (mysql_change_user(&mysql, "benutzer", "passwort", "neue_datenbank"))
@subsubheading Beschreibung
-Gibt den vorgabemässigen Zeichensatz für die aktuelle Verbindung zurück.
+Gibt den vorgabemäßigen Zeichensatz für die aktuelle Verbindung zurück.
@subsubheading Rückgabewerte
-Der vorgabemässige Zeichensatz
+Der vorgabemäßige Zeichensatz
@subsubheading Fehler
Keine.
-@node mysql_create_db, mysql_data_seek, mysql_character_set_name, C-API-Funktionen
+@node mysql_create_db, mysql_data_seek, mysql_character_set_name, C API functions
+@c German node mysql_create_db
@subsubsection @code{mysql_create_db()}
@findex @code{mysql_create_db()}
@@ -43398,7 +43481,8 @@ if(mysql_create_db(&mysql, "meine_datenbank"))
@end example
-@node mysql_data_seek, mysql_debug, mysql_create_db, C-API-Funktionen
+@node mysql_data_seek, mysql_debug, mysql_create_db, C API functions
+@c German node mysql_data_seek
@subsubsection @code{mysql_data_seek()}
@findex @code{mysql_data_seek()}
@@ -43424,7 +43508,8 @@ Keine.
Keine.
-@node mysql_debug, mysql_drop_db, mysql_data_seek, C-API-Funktionen
+@node mysql_debug, mysql_drop_db, mysql_data_seek, C API functions
+@c German node mysql_debug
@subsubsection @code{mysql_debug()}
@findex @code{mysql_debug()}
@@ -43435,8 +43520,8 @@ Keine.
Führt ein @code{DBUG_PUSH} mit der angegebenen Zeichenkette durch.
@code{mysql_debug()} benutzt die Debug-Bibliothek von Fred Fish. Um diese
Funktion benutzen zu können, müssen Sie die Client-Bibliothek so
-kompilieren, dass sie Debuggen unterstützt. @xref{Server debuggen}.
-@xref{Clients debuggen}.
+kompilieren, dass sie Debuggen unterstützt. @xref\{Debugging server}.
+@xref\{Debugging client}.
@subsubheading Rückgabewerte
@@ -43456,7 +43541,8 @@ mysql_debug("d:t:O,/tmp/client.trace");
@end example
-@node mysql_drop_db, mysql_dump_debug_info, mysql_debug, C-API-Funktionen
+@node mysql_drop_db, mysql_dump_debug_info, mysql_debug, C API functions
+@c German node mysql_drop_db
@subsubsection @code{mysql_drop_db()}
@findex @code{mysql_drop_db()}
@@ -43497,7 +43583,8 @@ if(mysql_drop_db(&mysql, "meine_datenbank"))
@end example
-@node mysql_dump_debug_info, mysql_eof, mysql_drop_db, C-API-Funktionen
+@node mysql_dump_debug_info, mysql_eof, mysql_drop_db, C API functions
+@c German node mysql_dump_debug_info
@subsubsection @code{mysql_dump_debug_info()}
@findex @code{mysql_dump_debug_info()}
@@ -43527,7 +43614,8 @@ Ein unbekannter Fehler trat auf.
@end table
-@node mysql_eof, mysql_errno, mysql_dump_debug_info, C-API-Funktionen
+@node mysql_eof, mysql_errno, mysql_dump_debug_info, C API functions
+@c German node mysql_eof
@subsubsection @code{mysql_eof()}
@findex @code{mysql_eof()}
@@ -43610,7 +43698,8 @@ if(mysql_errno(&mysql)) // mysql_fetch_row() schlug wegen eines Fehlers fehl
@end example
-@node mysql_errno, mysql_error, mysql_eof, C-API-Funktionen
+@node mysql_errno, mysql_error, mysql_eof, C API functions
+@c German node mysql_errno
@subsubsection @code{mysql_errno()}
@findex @code{mysql_errno()}
@@ -43638,7 +43727,8 @@ Ein Fehlercode-Wert. 0, wenn kein Fehler auftrat.
Keine.
-@node mysql_error, mysql_escape_string, mysql_errno, C-API-Funktionen
+@node mysql_error, mysql_escape_string, mysql_errno, C API functions
+@c German node mysql_error
@subsubsection @code{mysql_error()}
@findex @code{mysql_error()}
@@ -43667,7 +43757,7 @@ if(mysql_error(&mysql)[0] != '\0')
Die Sprache der Client-Fehlermeldungen kann durch erneutes Kompilieren der
MySQL-Client-Bibliothek geändert werden. Sie können Fehlermeldungen in
-mehreren unterschiedlichen Sprachen auswählen. @xref{Sprachen}.
+mehreren unterschiedlichen Sprachen auswählen. @xref\{Languages}.
@subsubheading Rückgabewerte
@@ -43679,7 +43769,8 @@ kein Fehler auftrat.
Keine.
-@node mysql_escape_string, mysql_fetch_field, mysql_error, C-API-Funktionen
+@node mysql_escape_string, mysql_fetch_field, mysql_error, C API functions
+@c German node mysql_escape_string
@subsubsection @code{mysql_escape_string()}
@findex @code{mysql_escape_string()}
@@ -43688,12 +43779,13 @@ Statt dessen sollten Sie @code{mysql_real_escape_string()} benutzen!
Das ist identisch mit @code{mysql_real_escape_string()}, ausser dass die
Verbindung als erstes Argument genommen wird.
-@code{mysql_real_escape_string()} escapet die Zeichenkette gemäss dem
+@code{mysql_real_escape_string()} escapet die Zeichenkette gemäß dem
aktuellen Zeichensatz, wohingegen @code{mysql_escape_string()} die aktuelle
Zeichensatzeinstellung ignoriert.
-@node mysql_fetch_field, mysql_fetch_fields, mysql_escape_string, C-API-Funktionen
+@node mysql_fetch_field, mysql_fetch_fields, mysql_escape_string, C API functions
+@c German node mysql_fetch_field
@subsubsection @code{mysql_fetch_field()}
@findex @code{mysql_fetch_field()}
@@ -43716,9 +43808,9 @@ betroffen.
Wenn Sie @code{mysql_query()} aufgerufen haben, um ein @code{SELECT} auf
eine Tabelle auszuführen, aber nicht @code{mysql_store_result()} aufgerufen
-haben, gibt MySQL die vorgabemässige BLOB-Länge (8 KB) zurück, wenn Sie
+haben, gibt MySQL die vorgabemäßige BLOB-Länge (8 KB) zurück, wenn Sie
@code{mysql_fetch_field()} aufrufen, um nach der Länge eines
-@code{BLOB}-Felds zu fragen. (Die Grösse von 8 KB wird gewählt, weil MySQL
+@code{BLOB}-Felds zu fragen. (Die Größe von 8 KB wird gewählt, weil MySQL
die maximale Länge des @code{BLOB} nicht kennt. Das wird irgendwann einmal
konfigurierbar gemacht.) Nachdem Sie die Ergebnismenge erst einmal
abgerufen haben, enthält @code{field->max_length} die Länge des längsten
@@ -43745,7 +43837,8 @@ while((field = mysql_fetch_field(ergebnis)))
@end example
-@node mysql_fetch_fields, mysql_fetch_field_direct, mysql_fetch_field, C-API-Funktionen
+@node mysql_fetch_fields, mysql_fetch_field_direct, mysql_fetch_field, C API functions
+@c German node mysql_fetch_fields
@subsubsection @code{mysql_fetch_fields()}
@findex @code{mysql_fetch_fields()}
@@ -43783,7 +43876,8 @@ for(i = 0; i < num_fields; i++)
@end example
-@node mysql_fetch_field_direct, mysql_fetch_lengths, mysql_fetch_fields, C-API-Funktionen
+@node mysql_fetch_field_direct, mysql_fetch_lengths, mysql_fetch_fields, C API functions
+@c German node mysql_fetch_field_direct
@subsubsection @code{mysql_fetch_field_direct()}
@findex @code{mysql_fetch_field_direct()}
@@ -43823,7 +43917,8 @@ for(i = 0; i < num_fields; i++)
@end example
-@node mysql_fetch_lengths, mysql_fetch_row, mysql_fetch_field_direct, C-API-Funktionen
+@node mysql_fetch_lengths, mysql_fetch_row, mysql_fetch_field_direct, C API functions
+@c German node mysql_fetch_lengths
@subsubsection @code{mysql_fetch_lengths()}
@findex @code{mysql_fetch_lengths()}
@@ -43837,7 +43932,7 @@ zurück. Wenn Sie vorhaben, Feldwerte zu kopieren, sind diese
Längeninformationen auch nützlich für Optimierungen, weil Sie vermeiden
können, @code{strlen()} aufzurufen. Wenn die Ergebnismenge Binärdaten
enthält, kommt hinzu, dass Sie diese Funktion benutzen @emph{müssen}, um
-die Grösse der Daten zu bestimmen, weil @code{strlen()} falsche Ergebnisse
+die Größe der Daten zu bestimmen, weil @code{strlen()} falsche Ergebnisse
für Felder zurückgibt, die NULL-Zeichen enthalten.
Die Länge leerer Spalten und von Spalten, die @code{NULL}-Werte enthalten,
@@ -43846,7 +43941,7 @@ in der Beschreibung von @code{mysql_fetch_row()} nach.
@subsubheading Rückgabewerte
-Ein Array vorzeichenloser langer Ganzzahlen (long integer), die die Grösse
+Ein Array vorzeichenloser langer Ganzzahlen (long integer), die die Größe
jeder Spalte darstellen (ohne irgend welche begrenzenden NULL-Zeichen).
@code{NULL}, wenn ein Fehler auftrat.
@@ -43878,7 +43973,8 @@ if (zeile)
@end example
-@node mysql_fetch_row, mysql_field_count, mysql_fetch_lengths, C-API-Funktionen
+@node mysql_fetch_row, mysql_field_count, mysql_fetch_lengths, C API functions
+@c German node mysql_fetch_row
@subsubsection @code{mysql_fetch_row()}
@findex @code{mysql_fetch_row()}
@@ -43943,7 +44039,8 @@ while ((zeile = mysql_fetch_row(ergebnis)))
@end example
-@node mysql_field_count, mysql_field_seek, mysql_fetch_row, C-API-Funktionen
+@node mysql_field_count, mysql_field_seek, mysql_fetch_row, C API functions
+@c German node mysql_field_count
@subsubsection @code{mysql_field_count()}
@findex @code{mysql_field_count()}
@@ -44019,7 +44116,8 @@ von @code{mysql_field_count()} zu schlussfolgern, ob das Statement ein
@code{SELECT} war oder nicht.
-@node mysql_field_seek, mysql_field_tell, mysql_field_count, C-API-Funktionen
+@node mysql_field_seek, mysql_field_tell, mysql_field_count, C API functions
+@c German node mysql_field_seek
@subsubsection @code{mysql_field_seek()}
@findex @code{mysql_field_seek()}
@@ -44044,7 +44142,8 @@ Der vorherige Wert des Feldcursors.
Keine.
-@node mysql_field_tell, mysql_free_result, mysql_field_seek, C-API-Funktionen
+@node mysql_field_tell, mysql_free_result, mysql_field_seek, C API functions
+@c German node mysql_field_tell
@subsubsection @code{mysql_field_tell()}
@findex @code{mysql_field_tell()}
@@ -44066,7 +44165,8 @@ Der aktuelle Offset des Feldcursors.
Keine.
-@node mysql_free_result, mysql_get_client_info, mysql_field_tell, C-API-Funktionen
+@node mysql_free_result, mysql_get_client_info, mysql_field_tell, C API functions
+@c German node mysql_free_result
@subsubsection @code{mysql_free_result()}
@findex @code{mysql_free_result()}
@@ -44090,7 +44190,8 @@ Keine.
Keine.
-@node mysql_get_client_info, mysql_get_host_info, mysql_free_result, C-API-Funktionen
+@node mysql_get_client_info, mysql_get_host_info, mysql_free_result, C API functions
+@c German node mysql_get_client_info
@subsubsection @code{mysql_get_client_info()}
@findex @code{mysql_get_client_info()}
@@ -44109,7 +44210,8 @@ A character string that represents the MySQL-Client Bibliothek version.
Keine.
-@node mysql_get_host_info, mysql_get_proto_info, mysql_get_client_info, C-API-Funktionen
+@node mysql_get_host_info, mysql_get_proto_info, mysql_get_client_info, C API functions
+@c German node mysql_get_host_info
@subsubsection @code{mysql_get_host_info()}
@findex @code{mysql_get_host_info()}
@@ -44131,7 +44233,8 @@ bezeichnet.
Keine.
-@node mysql_get_proto_info, mysql_get_server_info, mysql_get_host_info, C-API-Funktionen
+@node mysql_get_proto_info, mysql_get_server_info, mysql_get_host_info, C API functions
+@c German node mysql_get_proto_info
@subsubsection @code{mysql_get_proto_info()}
@findex @code{mysql_get_proto_info()}
@@ -44153,7 +44256,8 @@ der aktuellen Verbindung benutzt wird.
Keine.
-@node mysql_get_server_info, mysql_info, mysql_get_proto_info, C-API-Funktionen
+@node mysql_get_server_info, mysql_info, mysql_get_proto_info, C API functions
+@c German node mysql_get_server_info
@subsubsection @code{mysql_get_server_info()}
@findex @code{mysql_get_server_info()}
@@ -44173,7 +44277,8 @@ Eine Zeichenkette, die die Server-Versionsnummer bezeichnet.
Keine.
-@node mysql_info, mysql_init, mysql_get_server_info, C-API-Funktionen
+@node mysql_info, mysql_init, mysql_get_server_info, C API functions
+@c German node mysql_info
@subsubsection @code{mysql_info()}
@findex @code{mysql_info()}
@@ -44216,7 +44321,8 @@ Information verfügbar ist.
Keine.
-@node mysql_init, mysql_insert_id, mysql_info, C-API-Funktionen
+@node mysql_init, mysql_insert_id, mysql_info, C API functions
+@c German node mysql_init
@subsubsection @code{mysql_init()}
@findex @code{mysql_init()}
@@ -44231,7 +44337,7 @@ Alloziert oder initialisiert ein @code{MYSQL}-Objekt, das für
ein neues Objekt zurück. Ansonsten wird das Objekt initialisiert und die
Adresse des Objekts zurückgegeben. Wenn @code{mysql_init()} ein neues
Objekt alloziert, wird es freigegeben, wenn @code{mysql_close()} aufgerufen
-wird, um die Verbindung zu schliessen.
+wird, um die Verbindung zu schließen.
@subsubheading Rückgabewerte
@@ -44243,7 +44349,8 @@ nicht ausreichte, um ein neues Objekt zu allozieren.
Im Falle von ungenügendem Speicher wird @code{NULL} zurückgegeben.
-@node mysql_insert_id, mysql_kill, mysql_init, C-API-Funktionen
+@node mysql_insert_id, mysql_kill, mysql_init, C API functions
+@c German node mysql_insert_id
@subsubsection @code{mysql_insert_id()}
@findex @code{mysql_insert_id()}
@@ -44266,7 +44373,7 @@ Wert erzeugt.
@code{mysql_insert_id()} wird nach @code{INSERT}- und
@code{UPDATE}-Statements aktualisiert, die einen @code{AUTO_INCREMENT}-Wert
erzeugen oder einen Spaltenwert auf @code{LAST_INSERT_ID(ausdruck)} setzen.
-@xref{Verschiedene Funktionen}.
+@xref\{Miscellaneous functions}.
Beachten Sie auch, dass der Wert der SQL-@code{LAST_INSERT_ID()}-Funktion
immer den aktuellsten erzeugten @code{AUTO_INCREMENT}-Wert enthält, und
@@ -44285,7 +44392,8 @@ aktualisierte.
Keine.
-@node mysql_kill, mysql_list_dbs, mysql_insert_id, C-API-Funktionen
+@node mysql_kill, mysql_list_dbs, mysql_insert_id, C API functions
+@c German node mysql_kill
@subsubsection @code{mysql_kill()}
@findex @code{mysql_kill()}
@@ -44315,7 +44423,8 @@ Ein unbekannter Fehler trat auf.
@end table
-@node mysql_list_dbs, mysql_list_fields, mysql_kill, C-API-Funktionen
+@node mysql_list_dbs, mysql_list_fields, mysql_kill, C API functions
+@c German node mysql_list_dbs
@subsubsection @code{mysql_list_dbs()}
@findex @code{mysql_list_dbs()}
@@ -44355,7 +44464,8 @@ Ein unbekannter Fehler trat auf.
@end table
-@node mysql_list_fields, mysql_list_processes, mysql_list_dbs, C-API-Funktionen
+@node mysql_list_fields, mysql_list_processes, mysql_list_dbs, C API functions
+@c German node mysql_list_fields
@subsubsection @code{mysql_list_fields()}
@findex @code{mysql_list_fields()}
@@ -44395,7 +44505,8 @@ Ein unbekannter Fehler trat auf.
@end table
-@node mysql_list_processes, mysql_list_tables, mysql_list_fields, C-API-Funktionen
+@node mysql_list_processes, mysql_list_tables, mysql_list_fields, C API functions
+@c German node mysql_list_processes
@subsubsection @code{mysql_list_processes()}
@findex @code{mysql_list_processes()}
@@ -44430,7 +44541,8 @@ Ein unbekannter Fehler trat auf.
@end table
-@node mysql_list_tables, mysql_num_fields, mysql_list_processes, C-API-Funktionen
+@node mysql_list_tables, mysql_num_fields, mysql_list_processes, C API functions
+@c German node mysql_list_tables
@subsubsection @code{mysql_list_tables()}
@findex @code{mysql_list_tables()}
@@ -44467,7 +44579,8 @@ Ein unbekannter Fehler trat auf.
@end table
-@node mysql_num_fields, mysql_num_rows, mysql_list_tables, C-API-Funktionen
+@node mysql_num_fields, mysql_num_rows, mysql_list_tables, C API functions
+@c German node mysql_num_fields
@subsubsection @code{mysql_num_fields()}
@findex @code{mysql_num_fields()}
@@ -44551,7 +44664,8 @@ durch eine Prüfung zu ersetzen, ob @code{mysql_field_count(&mysql)} gleich
0 ist. Das passiert nur, wenn etwas schief lief.
-@node mysql_num_rows, mysql_options, mysql_num_fields, C-API-Funktionen
+@node mysql_num_rows, mysql_options, mysql_num_fields, C API functions
+@c German node mysql_num_rows
@subsubsection @code{mysql_num_rows()}
@findex @code{mysql_num_rows()}
@@ -44579,7 +44693,8 @@ Die Anzahl von Zeilen in der Ergebnismenge.
Keine.
-@node mysql_options, mysql_ping, mysql_num_rows, C-API-Funktionen
+@node mysql_options, mysql_ping, mysql_num_rows, C API functions
+@c German node mysql_options
@subsubsection @code{mysql_options()}
@findex @code{mysql_options()}
@@ -44626,29 +44741,29 @@ benutzen.
@item @code{database} @tab Mit dieser Datenbank verbinden, wenn im
Verbindungsbefehl keine Datenbank angegeben wurde.
@item @code{debug} @tab Debug-Optionen.
-@item @code{host} @tab Vorgabemässiger Hostname.
+@item @code{host} @tab Vorgabemäßiger Hostname.
@item @code{init-commund} @tab Befehl, der bei der Verbindung zum
MySQL-Server ausgeführt wird. Wird automatisch beim erneuten Verbinden
erneut ausgeführt.
@item @code{interactive-timeout} @tab Dasselbe wie die Angabe von
@code{CLIENT_INTERACTIVE} für @code{mysql_real_connect()}.
@xref{mysql_real_connect}.
-@item @code{password} @tab Vorgabemässiges Passwort.
+@item @code{password} @tab Vorgabemäßiges Passwort.
@item @code{pipe} @tab Named Pipes benutzen, um sich mit einem MySQL-Server unter NT zu verbinden.
-@item @code{port} @tab Vorgabemässige Port-Nummer.
+@item @code{port} @tab Vorgabemäßige Port-Nummer.
@item @code{return-found-rows} @tab Weist @code{mysql_info()} an, gefundene
Zeilen anstelle von aktualisierten Zeilen zurückzugeben, wenn @code{UPDATE}
benutzt wird.
-@item @code{socket} @tab Vorgabemässige Socket-Nummer.
+@item @code{socket} @tab Vorgabemäßige Socket-Nummer.
@item
-@item @code{user} @tab Vorgabemässiger Benutzer.
+@item @code{user} @tab Vorgabemäßiger Benutzer.
@end multitable
Beachten Sie, dass @code{timeout} durch @code{connect_timeout} ersetzt
wurde. Dennoch wird @code{timeout} noch für eine Weile funktionieren.
Weitere Informationen über Optionsdateien finden Sie unter
-@ref{Optionsdateien}.
+@ref\{Option files}.
@subsubheading Rückgabewerte
@@ -44674,7 +44789,8 @@ Client-/Server-Protokoll zu benutzen und zusätzliche Optionen aus dem
@code{odbc}-Abschnitt in @code{my.cnf} zu lesen.
-@node mysql_ping, mysql_query, mysql_options, C-API-Funktionen
+@node mysql_ping, mysql_query, mysql_options, C API functions
+@c German node mysql_ping
@subsubsection @code{mysql_ping()}
@findex @code{mysql_ping()}
@@ -44706,7 +44822,8 @@ Ein unbekannter Fehler trat auf.
@end table
-@node mysql_query, mysql_real_connect, mysql_ping, C-API-Funktionen
+@node mysql_query, mysql_real_connect, mysql_ping, C API functions
+@c German node mysql_query
@subsubsection @code{mysql_query()}
@findex @code{mysql_query()}
@@ -44746,7 +44863,8 @@ Ein unbekannter Fehler trat auf.
@end table
-@node mysql_real_connect, mysql_real_escape_string, mysql_query, C-API-Funktionen
+@node mysql_real_connect, mysql_real_escape_string, mysql_query, C API functions
+@c German node mysql_real_connect
@subsubsection @code{mysql_real_connect()}
@findex @code{mysql_real_connect()}
@@ -44785,7 +44903,7 @@ werden diese statt TCP/IP benutzt, um sich mit dem Server zu verbinden.
Der @code{user}-Parameter enthält die MySQL-Login-Benutzerkennung. Wenn
@code{user} @code{NULL} ist, wird der aktuelle Benutzer angenommen. Unter
Unix ist das der aktuelle Login-Name. Unter Windows-ODBC muss der aktuelle
-Benutzername explizit angegeben werden. @xref{ODBC-Administrator}.
+Benutzername explizit angegeben werden. @xref\{ODBC administrator}.
@item
Der @code{passwd}-Parameter enthält das Passwort für @code{user}. Wenn
@@ -44802,7 +44920,7 @@ automatisch durch die Client-API gehandhabt.
@item
@code{db} ist der Datenbankname. Wenn @code{db} nicht @code{NULL} ist,
-wird die vorgabemässige Datenbank für die Verbindung auf diesen Wert
+wird die vorgabemäßige Datenbank für die Verbindung auf diesen Wert
gesetzt.
@item
@@ -44919,7 +45037,8 @@ gemacht wird, bevor aufgegeben wird, wenn eine Anfrage wegen einer verloren
gegangenen Verbindung nicht ausgeführt werden kann.
-@node mysql_real_escape_string, mysql_real_query, mysql_real_connect, C-API-Funktionen
+@node mysql_real_escape_string, mysql_real_query, mysql_real_connect, C API functions
+@c German node mysql_real_escape_string
@subsubsection @code{mysql_real_escape_string()}
@findex @code{mysql_real_escape_string()}
@@ -44930,13 +45049,13 @@ gegangenen Verbindung nicht ausgeführt werden kann.
Diese Funktion wird benutzt, um eine zulässige SQL-Zeichenkette zu
erzeugen, die Sie in einem SQL-Statement benutzen können.
-@xref{Zeichenketten-Syntax}.
+@xref\{String syntax}.
Die Zeichenkette in @code{von} wird in eine escapete SQL-Zeichenkette
kodiert, wobei der aktuelle Zeichensatz der Verbindung berücksichtigt wird.
Das Ergebnis wird in @code{nach} platziert und ein Null-Byte am Ende
angefügt. Kodierte Zeichen sind @code{NUL} (ASCII 0), @samp{\n}, @samp{\r},
-@samp{\}, @samp{'}, @samp{"} und Control-Z (@pxref{Literale}).
+@samp{\}, @samp{'}, @samp{"} und Control-Z (@pxref\{Literals}).
Die Zeichenkette, auf die von @code{von} gezeigt wird, muss @code{laenge}
Bytes lang sein. Sie müssen den @code{nach}-Puffer so zuweisen, dass er
@@ -44982,7 +45101,8 @@ Die Länge des Wertes in @code{nach}, ohne das Null-Zeichen am Ende.
Keine.
-@node mysql_real_query, mysql_reload, mysql_real_escape_string, C-API-Funktionen
+@node mysql_real_query, mysql_reload, mysql_real_escape_string, C API functions
+@c German node mysql_real_query
@subsubsection @code{mysql_real_query()}
@findex @code{mysql_real_query()}
@@ -45024,7 +45144,8 @@ Ein unbekannter Fehler trat auf.
@end table
-@node mysql_reload, mysql_row_seek, mysql_real_query, C-API-Funktionen
+@node mysql_reload, mysql_row_seek, mysql_real_query, C API functions
+@c German node mysql_reload
@subsubsection @code{mysql_reload()}
@findex @code{mysql_reload()}
@@ -45058,7 +45179,8 @@ Ein unbekannter Fehler trat auf.
@end table
-@node mysql_row_seek, mysql_row_tell, mysql_reload, C-API-Funktionen
+@node mysql_row_seek, mysql_row_tell, mysql_reload, C API functions
+@c German node mysql_row_seek
@subsubsection @code{mysql_row_seek()}
@findex @code{mysql_row_seek()}
@@ -45088,7 +45210,8 @@ nachfolgenden Aufruf von @code{mysql_row_seek()} übergeben werden.
Keine.
-@node mysql_row_tell, mysql_select_db, mysql_row_seek, C-API-Funktionen
+@node mysql_row_tell, mysql_select_db, mysql_row_seek, C API functions
+@c German node mysql_row_tell
@subsubsection @code{mysql_row_tell()}
@findex @code{mysql_row_tell()}
@@ -45113,7 +45236,8 @@ Der aktuelle Offset des Zeilencursors.
Keine.
-@node mysql_select_db, mysql_shutdown, mysql_row_tell, C-API-Funktionen
+@node mysql_select_db, mysql_shutdown, mysql_row_tell, C API functions
+@c German node mysql_select_db
@subsubsection @code{mysql_select_db()}
@findex @code{mysql_select_db()}
@@ -45123,7 +45247,7 @@ Keine.
@subsubheading Beschreibung
Führt dazu, dass die Datenbank, die durch @code{db} angegeben wird, die
-vorgabemässige (aktuelle) Datenbank auf der von @code{mysql} angegebenen
+vorgabemäßige (aktuelle) Datenbank auf der von @code{mysql} angegebenen
Verbindung wird. Bei nachfolgenden Anfragen ist diese Datenbank die Vorgabe
für Tabellenverweise, die nicht explizit einen Datenbank-Spezifizierer
enthalten.
@@ -45149,7 +45273,8 @@ Ein unbekannter Fehler trat auf.
@end table
-@node mysql_shutdown, mysql_stat, mysql_select_db, C-API-Funktionen
+@node mysql_shutdown, mysql_stat, mysql_select_db, C API functions
+@c German node mysql_shutdown
@subsubsection @code{mysql_shutdown()}
@findex @code{mysql_shutdown()}
@@ -45179,7 +45304,8 @@ Ein unbekannter Fehler trat auf.
@end table
-@node mysql_stat, mysql_store_result, mysql_shutdown, C-API-Funktionen
+@node mysql_stat, mysql_store_result, mysql_shutdown, C API functions
+@c German node mysql_stat
@subsubsection @code{mysql_stat()}
@findex @code{mysql_stat()}
@@ -45190,7 +45316,7 @@ Ein unbekannter Fehler trat auf.
Gibt eine Zeichenkette zurück, die Informationen enthält, die ähnlich denen
sind, die vom @code{mysqladmin status}-Befehl zur Verfügung gestellt
-werden. Das schliesst die Betriebszeit (Uptime) in Sekunden und die Anzahl
+werden. Das schließt die Betriebszeit (Uptime) in Sekunden und die Anzahl
laufender Threads, Anfragen (Questions), Neuladen (Reloads) und offener
Tabellen ein.
@@ -45213,7 +45339,8 @@ Ein unbekannter Fehler trat auf.
@end table
-@node mysql_store_result, mysql_thread_id, mysql_stat, C-API-Funktionen
+@node mysql_store_result, mysql_thread_id, mysql_stat, C API functions
+@c German node mysql_store_result
@subsubsection @code{mysql_store_result()}
@findex @code{mysql_store_result()}
@@ -45291,7 +45418,8 @@ Ein unbekannter Fehler trat auf.
@end table
-@node mysql_thread_id, mysql_use_result, mysql_store_result, C-API-Funktionen
+@node mysql_thread_id, mysql_use_result, mysql_store_result, C API functions
+@c German node mysql_thread_id
@subsubsection @code{mysql_thread_id()}
@findex @code{mysql_thread_id()}
@@ -45304,7 +45432,7 @@ Gibt die Thread-Kennung der aktuellen Verbindung zurück. Der Wert kann als
Argument für @code{mysql_kill()} benutzt werden, um den Thread zu töten.
Wenn die Verbindung verloren ging und Sie sich mit @code{mysql_ping()}
-erneut verbinden, ändert sich die Thread-Kennung. Das heisst, dass Sie
+erneut verbinden, ändert sich die Thread-Kennung. Das heißt, dass Sie
nicht die Thread-Kennung holen und für spätere Benutzung speichern sollten.
Sie sollten sie holen, wenn Sie sie benötigen.
@@ -45317,7 +45445,8 @@ Die Thread-Kennung der aktuellen Verbindung.
Keine.
-@node mysql_use_result, , mysql_thread_id, C-API-Funktionen
+@node mysql_use_result, , mysql_thread_id, C API functions
+@c German node mysql_use_result
@subsubsection @code{mysql_use_result()}
@findex @code{mysql_use_result()}
@@ -45339,7 +45468,7 @@ einer temporären Tabelle oder einem lokalen Puffer zu speichern, was
manchmal schneller ist und viel weniger Speicher benutzt als
@code{mysql_store_result()}. Dem Client wird nur Speicher für die aktuelle
Zeile zugewiesen sowie ein Kommunikationspuffer, der bis zu
-@code{max_allowed_packet} Bytes gross werden kann.
+@code{max_allowed_packet} Bytes Groß werden kann.
Auf der anderen Seite sollten Sie @code{mysql_use_result()} nicht benutzen,
wenn Sie viele Verarbeitungen für jede Zeile auf der Client-Seite
@@ -45386,19 +45515,22 @@ Die Verbindung zum Server ging während der Anfrage verloren.
Ein unbekannter Fehler trat auf.
@end table
-@node C-Thread-Funktionen, C-Embedded-Server-Funktionen, C-API-Funktionen, C
+@node C Thread functions, C Embedded Server func, C API functions, C
+@c German node C-Thread-Funktionen
@subsection C-Threaded-Funktionsbeschreibungen
Sie benötigen folgende Funktionen, wenn Sie einen threaded Client erstellen
-wollen. @xref{Threaded Clients}.
+wollen. @xref\{Threaded clients}.
+
@menu
-* my_init():: @code{my_init()}
-* mysql_thread_init():: @code{mysql_thread_init()}
-* mysql_thread_end():: @code{mysql_thread_end()}
+* my_init::
+* mysql_thread_init::
+* mysql_thread_end::
@end menu
-@node my_init(), mysql_thread_init(), C-Thread-Funktionen, C-Thread-Funktionen
+@node my_init, mysql_thread_init, C Thread functions, C Thread functions
+@c German node my_init()
@subsubsection @code{my_init()}
@findex @code{my_init()}
@@ -45417,7 +45549,8 @@ Diese Funktion wird automatisch von @code{mysql_init()},
Keine.
-@node mysql_thread_init(), mysql_thread_end(), my_init(), C-Thread-Funktionen
+@node mysql_thread_init, mysql_thread_end, my_init, C Thread functions
+@c German node mysql_thread_init()
@subsubsection @code{mysql_thread_init()}
@findex @code{mysql_thread_init()}
@@ -45434,7 +45567,8 @@ Diese Funktion wird automatisch von @code{my_init()} und
Keine.
-@node mysql_thread_end(), , mysql_thread_init(), C-Thread-Funktionen
+@node mysql_thread_end, , mysql_thread_init, C Thread functions
+@c German node mysql_thread_end()
@subsubsection @code{mysql_thread_end()}
@findex @code{mysql_thread_end()}
@@ -45453,7 +45587,8 @@ Speicherlecks zu vermeiden.
Keine.
-@node C-Embedded-Server-Funktionen, C-API-Probleme, C-Thread-Funktionen, C
+@node C Embedded Server func, C API problems, C Thread functions, C
+@c German node C-Embedded-Server-Funktionen
@subsection C-Embedded-Server-Funktionsbeschreibungen
Sie müssen folgende Funktionen benutzen, wenn Sie wollen, dass Ihre
@@ -45465,12 +45600,14 @@ gelinkt wird, tun diese Funktionen nicht. Das ermöglicht die Auswahl
zwischen der Benutzung des eingebetteten MySQL-Servers und eines
Standalone-Servers, ohne irgend welchen Code zu verändern.
+
@menu
-* mysql_server_init()::
-* mysql_server_end()::
+* mysql_server_init::
+* mysql_server_end::
@end menu
-@node mysql_server_init(), mysql_server_end(), C-Embedded-Server-Funktionen, C-Embedded-Server-Funktionen
+@node mysql_server_init, mysql_server_end, C Embedded Server func, C Embedded Server func
+@c German node mysql_server_init()
@subsubsection @code{mysql_server_init()}
@findex @code{mysql_server_init()}
@@ -45493,7 +45630,7 @@ Server gibt.
Die @code{NULL}-begrenzte Liste von Zeichenketten in @code{groups} wählt
aus, welche Gruppen in den Optionsdateien aktiv sind.
-@xref{Optionsdateien}. Aus Bequemlichkeitsgründen kann @code{groups}
+@xref\{Option files}. Aus Bequemlichkeitsgründen kann @code{groups}
@code{NULL} sein. In diesem Fall ist die @code{[server]}-Gruppe aktiv.
@subsubheading Beispiel
@@ -45529,7 +45666,8 @@ int main(void) @{
Keine.
-@node mysql_server_end(), , mysql_server_init(), C-Embedded-Server-Funktionen
+@node mysql_server_end, , mysql_server_init, C Embedded Server func
+@c German node mysql_server_end()
@subsubsection @code{mysql_server_end()}
@findex @code{mysql_server_end()}
@@ -45544,21 +45682,24 @@ herunter.
Keine.
-@node C-API-Probleme, Clients bauen, C-Embedded-Server-Funktionen, C
+@node C API problems, Building clients, C Embedded Server func, C
+@c German node C-API-Probleme
@subsection Häufige Fragen und Probleme bei der Benutzung der C-API
@tindex @code{mysql_query()}
@tindex @code{mysql_store_result()}
+
+
@menu
-* NULL mysql_store_result:: Warum gibt @code{mysql_store_result()} manchmal @code{NULL} zurück, nachdem @code{mysql_query()} Erfolg zurückgegeben hat?
-* Anfrageergebnisse:: Welche Ergebnisse kann ich von einer Anfrage bekommen?
-* Eindeutige Kennung erhalten:: Wie erhalte ich die eindeutige Kennung für die letzte eingefügte Zeile?
-* C-API-Linking-Probleme:: Probleme beim Linken mit der C-API
+* NULL mysql_store_result::
+* Query results::
+* Getting unique ID::
+* C API linking problems::
@end menu
-
-@node NULL mysql_store_result, Anfrageergebnisse, C-API-Probleme, C-API-Probleme
+@node NULL mysql_store_result, Query results, C API problems, C API problems
+@c German node NULL mysql_store_result
@subsubsection Warum gibt @code{mysql_store_result()} manchmal @code{NULL} zurück, nachdem @code{mysql_query()} Erfolg zurückgegeben hat?
@code{mysql_store_result()} kann @code{NULL} zurückgeben, auch nach einem
@@ -45568,7 +45709,7 @@ das, dass eine der folgenden Bedingungen eingetreten ist:
@itemize @bullet
@item
Es gab einen @code{malloc()}-Fehler (zum Beispiel, wenn die Ergebnismenge
-zu gross war).
+zu Groß war).
@item
Die Daten konnten nicht gelesen werden (ein Fehler mit der Verbindung trat
@@ -45593,14 +45734,10 @@ Sie können durch Aufruf von @code{mysql_error()} oder @code{mysql_errno()}
auf einen Fehler überprüfen.
@cindex Anfragen, C-API-Ergebnisse
-@menu
-* Anfrageergebnisse:: Welche Ergebnisse kann ich von einer Anfrage bekommen?
-* Eindeutige Kennung erhalten:: Wie erhalte ich die eindeutige Kennung für die letzte eingefügte Zeile?
-* C-API-Linking-Probleme:: Probleme beim Linken mit der C-API
-@end menu
-@node Anfrageergebnisse, Eindeutige Kennung erhalten, NULL mysql_store_result, C-API-Probleme
+@node Query results, Getting unique ID, NULL mysql_store_result, C API problems
+@c German node Anfrageergebnisse
@subsubsection Welche Ergebnisse kann ich von einer Anfrage bekommen?
Zusätzlich zur Ergebnismenge, die von einer Anfrage zurückgegeben wird,
@@ -45639,7 +45776,8 @@ zurück, wenn es keine zusätzlichen Informationen gibt.
@end itemize
-@node Eindeutige Kennung erhalten, C-API-Linking-Probleme, Anfrageergebnisse, C-API-Probleme
+@node Getting unique ID, C API linking problems, Query results, C API problems
+@c German node Eindeutige Kennung erhalten
@subsubsection Wie erhalte ich die eindeutige Kennung für die letzte eingefügte Zeile?
@cindex eindeutige Kennung
@@ -45686,7 +45824,8 @@ INSERT INTO foo2 (id,text)
@end example
-@node C-API-Linking-Probleme, , Eindeutige Kennung erhalten, C-API-Probleme
+@node C API linking problems, , Getting unique ID, C API problems
+@c German node C-API-Linking-Probleme
@subsubsection Probleme beim Linken mit der C-API
@cindex Linken, Probleme
@@ -45705,11 +45844,12 @@ ld: fatal: Symbol referencing errors. No output written to client
@end example
Wenn das auf Ihrem System passiert, müssen Sie die math-Bibliothek
-einschliessen, indem Sie @code{-lm} am Ende der Kompilier- / Link-Zeile
+einschließen, indem Sie @code{-lm} am Ende der Kompilier- / Link-Zeile
hinzufügen.
-@node Clients bauen, Threaded Clients, C-API-Probleme, C
+@node Building clients, Threaded clients, C API problems, C
+@c German node Clients bauen
@subsection Client-Programme bauen
@cindex Client-Programme, bauen
@@ -45731,13 +45871,14 @@ Für Clients, die MySQL-Header-Dateien benutzen, müssen Sie eventuell eine
finden kann.
-@node Threaded Clients, libmysqld, Clients bauen, C
+@node Threaded clients, libmysqld, Building clients, C
+@c German node Threaded Clients
@subsection Wie man einen threaded Client herstellt
@cindex Clients, Threaded
@cindex Threaded Clients
-Die Client-Bibliothek ist fast Thread-sicher. Das grösste Problem besteht
+Die Client-Bibliothek ist fast Thread-sicher. Das größte Problem besteht
darin, dass die Subroutinen in @file{net.c}, die von Sockets lesen, nicht
Interrupt-sicher sind. Das wurde mit dem Hintergedanken gemacht, dass Sie
eventuell Ihre eigenen Alarme haben möchten, die ein langes Lesen vom
@@ -45747,7 +45888,7 @@ Thread-sicher sein.
In den älteren Binärdistributionen wurden die Client-Bibliotheken
normalerweise nicht mit der Thread-sicheren Option kompiliert (die
-Windows-Binärdateien sind vorgabemässig Thread-sicher kompiliert). Neuere
+Windows-Binärdateien sind vorgabemäßig Thread-sicher kompiliert). Neuere
Binärdistributionen sollten sowohl eine normale als auch eine
Thread-sichere Client-Bibliothek haben.
@@ -45768,9 +45909,9 @@ und Zeitüberschreitungen (Timeouts) benutzen wollen, können Sie in
umfangreicher Weise die Routinen in der @file{thr_alarm.c}-Datei benutzen.
Wenn Sie Routinen aus der @code{mysys}-Bibliothek benutzen, müssen Sie
lediglich daran denken, @code{my_init()} zuerst aufzurufen!
-@xref{C-Thread-Funktionen}.
+@xref\{C Thread functions}.
-Alle Funktionen ausser @code{mysql_real_connect()} sind vorgabemässig
+Alle Funktionen ausser @code{mysql_real_connect()} sind vorgabemäßig
Thread-sicher. Die folgenden Hinweise beschreiben, wie man eine
Thread-sichere Client-Bibliothek kompiliert und sie auf Thread-sichere
Weise benutzt. (Die unten stehenden Hinweise für
@@ -45852,20 +45993,23 @@ Client mit @code{mysqlclient_r} linken. In den meisten Fällen liegt das
daran, dass Sie die Thread-Bibliotheken nicht auf der Link- /
Kompilierzeile eingeschlossen haben.
-@node libmysqld, , Threaded Clients, C
+@node libmysqld, , Threaded clients, C
+@c German node libmysqld
@subsection libmysqld, die eingebettete MySQL-Server-Bibliothek
@cindex libmysqld
@cindex eingebettete MySQL-Server-Bibliothek
+
@menu
-* libmysqld Überblick:: Überblick über die eingebettete MySQL-Server-Bibliothek
-* libmysqld kompilieren:: Programme mit @code{libmysqld} kompilieren
-* libmysqld Beispiel:: Ein einfaches Embedded-Server-Beispiel
-* libmysqld Lizensierung:: Lizensierung des eingebetteten Servers
+* libmysqld overview::
+* libmysqld compiling::
+* libmysqld example::
+* libmysqld licensing::
@end menu
-@node libmysqld Überblick, libmysqld kompilieren, libmysqld, libmysqld
+@node libmysqld overview, libmysqld compiling, libmysqld, libmysqld
+@c German node libmysqld Überblick
@subsubsection Überblick über die eingebettete MySQL-Server-Bibliothek
Die eingebettete MySQL-Server-Bibliothek ermöglicht es, einen MySQL-Server
@@ -45873,13 +46017,14 @@ mit allen Features innerhalb einer Client-Applikation laufen zu lassen. Die
hauptsächlichen Vorteile sind erhöhte Geschwindigkeit und einfachere
Verwaltung eingebetteter Applikationen.
-@node libmysqld kompilieren, libmysqld example, libmysqld Überblick, libmysqld
+@node libmysqld compiling, libmysqld example, libmysqld overview, libmysqld
+@c German node libmysqld kompilieren
@subsubsection Programme mit @code{libmysqld} kompilieren
Momentan müssen alle unterstützten Bibliotheken explizit aufgelistet
werden, wenn Sie mit @code{-lmysqld} linken. In Zukunft wird
@code{mysql_config --libmysqld-libs} die Bibliotheken benennen, um das zu
-erleichtern. Darüber hinaus werden alle unterstütztne Bibliotheken
+erleichtern. Darüber hinaus werden alle unterstützten Bibliotheken
wahrscheinlich in libmysqld eingeschlossen werden, um dies noch weiter zu
vereinfachen.
@@ -45887,7 +46032,8 @@ Die korrekten Flags zum Kompilieren und Linken eines threaded Programms
müssen benutzt werden, selbst wenn Sie nicht direkt irgend welche
Thread-Funktionen in Ihrem Code aufrufen.
-@node libmysqld Beispiel, libmysqld Lizensierung, libmysqld kompilieren, libmysqld
+@node libmysqld example, libmysqld licensing, libmysqld compiling, libmysqld
+@c German node libmysqld Beispiel
@subsubsection Ein einfaches Embedded-Server-Beispiel
Dieses Beispiel-Programm und makefile sollten ohne Änderungen auf einem
@@ -46214,11 +46360,12 @@ clean:
rm -f $(targets) $(objects) *.core
@end example
-@node libmysqld Lizensierung, , libmysqld example, libmysqld
+@node libmysqld licensing, , libmysqld example, libmysqld
+@c German node libmysqld Lizensierung
@subsubsection Lizensierung des eingebetteten Servers
Der MySQL-Quelltext wird von der GNU-GPL-Lizenz abgedeckt
-(@pxref{GPL-Lizenz}). Eine Folge davon ist, dass jegliches Programm, das
+(@pxref\{GPL license}). Eine Folge davon ist, dass jegliches Programm, das
durch Linken mit @code{libmysqld} den MySQL-Quelltext enthält, als freie
Software (unter einer mit der GPL kompatiblen Lizenz) veröffentlicht werden
muss.
@@ -46230,11 +46377,9 @@ AB unter einer lockereren Lizenz zu erwerben. Wegen Details betreffs dieses
Themas siehe unter @ref{Lizenzpolitik}.
@node Cplusplus, Java, C, Clients
+@c German node Cplusplus
@section MySQL-C++-APIs
-@menu
-* Borland C++:: Borland C++
-@end menu
@cindex C++-APIs
@@ -46244,7 +46389,12 @@ MySQL-@uref{http://www.mysql.com/Downloads/Contrib/,Contrib-Verzeichnis}
verfügbar.
+@menu
+* Borland C++::
+@end menu
+
@node Borland C++, , Cplusplus, Cplusplus
+@c German node Borland C++
@subsection Borland C++
@cindex Borland C++-Kompiler
@@ -46255,7 +46405,7 @@ Borland C++ müssen Sie die Projektdateien selbst erstellen).
Ein bekanntes Problem bei Borland C++ ist, dass es eine andere
Strukturanordnung benutzt als VC++. Das bedeutet, dass Sie Probleme
-bekommen, wenn Sie versuchen, die vorgabemässigen
+bekommen, wenn Sie versuchen, die vorgabemäßigen
@code{libmysql.dll}-Bibliotheken (die mit VC++ kompiliert wurden) mit
Borland C++ zu verwenden. Sie können eins der folgenden Dinge tun, um
dieses Problem zu vermeiden:
@@ -46271,6 +46421,7 @@ vorher zugewiesenes (prä-alloziertes) MySQL-Strukt.
@node Java, Python, Cplusplus, Clients
+@c German node Java
@section MySQL Java Connectivity (JDBC)
@cindex Java-Connectivity
@@ -46286,6 +46437,7 @@ eigene Dokumentation der Treiber wegen MySQL-spezifischer Features.
@node Python, Tcl, Java, Clients
+@c German node Python
@section MySQL-Python-APIs
@cindex Python-APIs
@@ -46301,6 +46453,7 @@ MySQL-Server zuzugreifen.
@node Tcl, Eiffel, Python, Clients
+@c German node Tcl
@section MySQL-Tcl-APIs
@cindex Tcl-APIs
@@ -46312,6 +46465,7 @@ eine Tcl-Schnittstelle, die auf msqltcl 1.50 basiert.
@node Eiffel, , Tcl, Clients
+@c German node Eiffel
@section MySQL-Eiffel-Wrapper
@cindex Eiffel-Wrapper
@@ -46322,17 +46476,20 @@ MySQL-@uref{http://www.mysql.com/Downloads/Contrib/,Contrib-Verzeichnis}
enthält einen Eiffel-Wrapper, der von Michael Ravits geschrieben wurde.
-@node MySQL erweitern, Probleme, Clients, Top
+@node Extending MySQL, Problems, Clients, Top
+@c German node MySQL erweitern
@chapter MySQL erweitern
+
+
@menu
-* Hinzufügen von Funktionen:: Hinzufügen neuer Funktionen zu MySQL
-* Hinzufügen von Prozeduren:: Hinzufügen neuer Prozeduren zu MySQL
-* MySQL-Interna:: MySQL-Interna
+* MySQL internals::
+* Adding procedures::
+* MySQL-Interna::
@end menu
-
-@node Hinzufügen von Funktionen, Hinzufügen von Prozeduren, MySQL erweitern, MySQL erweitern
+@node MySQL internals, Adding procedures, Extending MySQL, Extending MySQL
+@c German node Hinzufügen von Funktionen
@section Hinzufügen neuer Funktionen zu MySQL
@cindex Funktionen, neue
@@ -46379,14 +46536,16 @@ Gleich welche Methode Sie zum Hinzufügen neuer Funktionen verwenden, können
Sie diese genau wie die nativen Funktionen, z. B. @code{ABS()} oder
@code{SOUNDEX()}, benutzen.
+
+
@menu
-* CREATE FUNCTION:: @code{CREATE FUNCTION/DROP FUNCTION}-Syntax
-* UDF hinzufügen:: Hinzufügen einer neuen benutzerdefinierten Funktion
-* Native Funktion hinzufügen:: Hinzufügen einer neuen nativen Funktion
+* CREATE FUNCTION::
+* Adding UDF::
+* Adding native function::
@end menu
-
-@node CREATE FUNCTION, UDF hinzufügen, Hinzufügen von Funktionen, Hinzufügen von Funktionen
+@node CREATE FUNCTION, Adding UDF, MySQL internals, MySQL internals
+@c German node CREATE FUNCTION
@subsection @code{CREATE FUNCTION / DROP FUNCTION}-Syntax
@findex CREATE FUNCTION
@@ -46423,7 +46582,7 @@ aktive Funktion ist eine, die mit @code{CREATE FUNCTION} geladen und nicht
mit @code{DROP FUNCTION} entfernt wurde.)
Wegen weiterer Anleitungen zum Schreiben benutzerdefinierte Funktionen
-siehe @ref{Hinzufügen von Funktionen}. Damit der UDF-Mechanismus
+siehe @ref\{MySQL internals}. Damit der UDF-Mechanismus
funktioniert, müssen Funktionen in C oder C++ geschrieben sein. Ihr
Betriebssystem muss dynamisches Laden unterstützen und Sie müssen
@code{mysqld} dynamisch (nicht statisch) kompiliert haben.
@@ -46435,19 +46594,14 @@ Wenn das nicht der Fall ist, sollten Sie das Skript
beheben.
-@node UDF hinzufügen, Native Funktion hinzufügen, CREATE FUNCTION, Hinzufügen von Funktionen
+@node Adding UDF, Adding native function, CREATE FUNCTION, MySQL internals
+@c German node UDF hinzufügen
@subsection Hinzufügen einer neuen benutzerdefinierten Funktion
@cindex hinzufügen, benutzerdefinierte Funktionen
@cindex benutzerdefinierte Funktionen, hinzufügen
@cindex Funktionen, benutzerdefinierte, hinzufügen
-@menu
-* UDF-Aufruf-Sequenzen:: UDF-Aufruf-Sequenzen
-* UDF-Argumente:: Verarbeitung von Argumenten
-* UDF-Rückgabewerte:: Rückgabewerte und Fehlerbehandlung
-* UDF kompilieren:: Kompilieren und Installieren benutzerdefinierter Funktionen
-@end menu
Damit der UDF-Mechanismus funktioniert, müssen Funktionen in C oder C++
@@ -46472,7 +46626,7 @@ Für jede Funktion, die Sie in SQL-Statements benutzen wollen, sollten Sie
die entsprechenden C- (oder C++-) Funktionen benutzen. In den unten
stehenden Ausführungen wird ``xxx'' als Beispiel-Funktionsname benutzt. Um
zwischen SQL- und C-/C++-Benutzung zu unterscheiden, kennzeichnet
-@code{XXX()} (Grossschreibung) einen SQL-Funktionsaufruf und @code{xxx()}
+@code{XXX()} (Großschreibung) einen SQL-Funktionsaufruf und @code{xxx()}
(Kleinschreibung) einen C-/C++-Funktionsaufruf.
The C-/C++-Funktionen, die Sie für die Implementierung der Schnittstelle
@@ -46531,12 +46685,20 @@ aufgerufen, damit sie die erforderlichen Aufräumarbeiten ausführen kann.
Alle Funktionen müssen Thread-sicher sein (nicht nur die Hauptfunktion,
sondern auch die Initialisierungs- und Deinitialisierungsfunktionen). Das
-heisst, dass Sie keinerlei globale oder statische Variablen zuweisen
+heißt, dass Sie keinerlei globale oder statische Variablen zuweisen
dürfen, die sich ändern! Wenn Sie Speicher brauchen, sollten Sie ihn in
@code{xxx_init()} zuweisen und in @code{xxx_deinit()} freigeben.
-@node UDF-Aufruf-Sequenzen, UDF-Argumente, UDF hinzufügen, UDF hinzufügen
+@menu
+* UDF calling::
+* UDF arguments::
+* UDF return values::
+* UDF compiling::
+@end menu
+
+@node UDF calling, UDF arguments, Adding UDF, Adding UDF
+@c German node UDF-Aufruf-Sequenzen
@subsubsection UDF-Aufruf-Sequenzen
@cindex Sequenzen aufrufen, UDF
@@ -46595,10 +46757,10 @@ unverändert.)
@code{xxx()} @code{NULL} zurückgeben kann. Der Vorgabewert ist @code{1},
wenn irgend eins der Argumente als @code{maybe_null} deklariert ist.
-@item unsigned int dezimalstellen
+@item unsigned int Dezimalstellen
Anzahl von Dezimalstellen. Der Vorgabewert ist die maximale Anzahl von
Dezimalstellen in den Argumenten, die an die Hauptfunktion übergeben
-werden. (Wenn der Funktion beispielweise die Argumente @code{1.34},
+werden. (Wenn der Funktion beispielsweise die Argumente @code{1.34},
@code{1.345} und @code{1.3} übergeben werden, wäre der Vorgabewert 3, weil
@code{1.345} 3 Dezimalstellen hat.
@@ -46632,7 +46794,8 @@ In @code{xxx()} und @code{xxx_deinit()} verweisen Sie auf
@end table
-@node UDF-Argumente, UDF-Rückgabewerte, UDF-Aufruf-Sequenzen, UDF hinzufügen
+@node UDF arguments, UDF return values, UDF calling, Adding UDF
+@c German node UDF-Argumente
@subsubsection Verarbeitung von Argumenten
@cindex Verarbeitung von Argumenten
@@ -46735,7 +46898,7 @@ real_val = *((double*) args->args[i]);
@item unsigned long *lengths
Bei der Initialisierungsfunktion gibt das @code{lengths}-Array die maximale
Zeichenkettenlänge jedes Arguments an. Bei jedem Aufruf der Hauptfunktion
-enhält @code{lengths} die tatsächlichen Längen jeglicher
+enthält @code{lengths} die tatsächlichen Längen jeglicher
Zeichenketten-Argumente, die für die momentan verarbeitete Zeile übergeben
werden. Bei Argumenten des Typs @code{INT_RESULT} oder @code{REAL_RESULT}
enthält @code{lengths} immer noch die maximale Länge des Arguments (wie bei
@@ -46743,7 +46906,8 @@ der Initialisierungsfunktion).
@end table
-@node UDF-Rückgabewerte, UDF kompilieren, UDF-Argumente, UDF hinzufügen
+@node UDF return values, UDF compiling, UDF arguments, Adding UDF
+@c German node UDF-Rückgabewerte
@subsubsection Rückgabewerte und Fehlerbehandlung
@cindex UDFs, Rückgabewerte
@@ -46772,7 +46936,7 @@ memcpy(result, "ergebnis_zeichenkette", 13);
@end example
Der @code{result}-Puffer, der an die Berechnungsfunktionen übergeben wird,
-ist 255 Byte gross. Wenn Ihr Ergebnis dort hinein passt, müssen Sie sich um
+ist 255 Byte Groß. Wenn Ihr Ergebnis dort hinein passt, müssen Sie sich um
die Speicherzuweisung für Ergebnisse nicht kümmern.
Wenn Ihre Zeichenketten-Funktion eine Zeichenkette zurückgeben muss, die
@@ -46781,7 +46945,7 @@ Ihrer @code{xxx_init()}-Funktion oder Ihrer @code{xxx()}-Funktion zuweisen
und in Ihrer @code{xxx_deinit()}-Funktion freigeben. Sie können den
zugewiesenen Speicher im @code{ptr}-Slot in der @code{UDF_INIT}-Struktur
für erneute Benutzung durch zukünftige @code{xxx()}-Aufrufe speichern.
-@xref{UDF-Aufruf-Sequenzen}.
+@xref\{UDF calling}.
Um einen Rückgabewert von @code{NULL} in der Hauptfunktion anzuzeigen,
setzen Sie @code{is_null} auf @code{1}:
@@ -46810,7 +46974,8 @@ sollten Sie sowohl @code{*error} als auch und @code{*is_null} setzen:
@end example
-@node UDF kompilieren, , UDF-Rückgabewerte, UDF hinzufügen
+@node UDF compiling, , UDF return values, Adding UDF
+@c German node UDF kompilieren
@subsubsection Kompilieren und Installieren benutzerdefinierter Funktionen
@cindex Kompilieren, benutzerdefinierte Funktionen
@@ -46923,7 +47088,8 @@ aktive Funktion ist eine, die mit @code{CREATE FUNCTION} geladen und nicht
mit @code{DROP FUNCTION} entfernt wurde.)
-@node Native Funktion hinzufügen, , UDF hinzufügen, Hinzufügen von Funktionen
+@node Adding native function, , Adding UDF, MySQL internals
+@c German node Native Funktion hinzufügen
@subsection Hinzufügen einer neuen nativen Function
@cindex hinzufügen, native Funktionen
@@ -47023,7 +47189,8 @@ Speichers zu vermeiden, ausser wenn das absolut notwendig ist!
@end itemize
-@node Hinzufügen von Prozeduren, MySQL-Interna, Hinzufügen von Funktionen, MySQL erweitern
+@node Adding procedures, MySQL-Interna, MySQL internals, Extending MySQL
+@c German node Hinzufügen von Prozeduren
@section Hinzufügen neuer Prozeduren zu MySQL
@cindex Prozeduren, hinzufügen
@@ -47043,13 +47210,15 @@ im Contrib-Verzeichnis finden. @xref{Contrib}. Hiermit können Sie die
LUA-Sprache benutzen, um eine Prozedur zur Laufzeit in @code{mysqld} zu
laden.
+
+
@menu
-* Prozeduranalyse:: Prozeduranalyse
-* Eine Prozedur schreiben:: Eine Prozedur schreiben
+* procedure analyse::
+* Writing a procedure::
@end menu
-
-@node Prozeduranalyse, Eine Prozedur schreiben, Hinzufügen von Prozeduren, Hinzufügen von Prozeduren
+@node procedure analyse, Writing a procedure, Adding procedures, Adding procedures
+@c German node Prozeduranalyse
@subsection Prozeduranalyse
@code{analyse([max Elemente,[max memory]])}
@@ -47074,7 +47243,8 @@ SELECT ... FROM ... WHERE ... Prozeduranalyse([max elements,[max memory]])
@end example
-@node Eine Prozedur schreiben, , Prozeduranalyse, Hinzufügen von Prozeduren
+@node Writing a procedure, , procedure analyse, Adding procedures
+@c German node Eine Prozedur schreiben
@subsection Eine Prozedur schreiben
Im Moment ist die einzige Dokumentation hierfür der Quelltext.
@@ -47090,7 +47260,8 @@ untersuchen:
@end itemize
-@node MySQL-Interna, , Hinzufügen von Prozeduren, MySQL erweitern
+@node MySQL-Interna, , Adding procedures, Extending MySQL
+@c German node <no English equivalent>
@section MySQL-Interna
@cindex Interna
@@ -47100,18 +47271,20 @@ Dieses Kapitel beschreibt viele Dinge, die Sie wissen müssen, wenn Sie am
MySQL-Code arbeiten. Wenn Sie an der MySQL-Entwicklung mitarbeiten wollen,
Zugriff auf den messerscharfen Code von Zwischenversionen haben wollen,
oder einfach nur über die Entwicklung auf dem Laufenden bleiben wollen,
-folgen Sie den Anweisungen unter @xref{Installation der Quelldistribution}.
+folgen Sie den Anweisungen unter @xref\{Installing source}.
Wenn Sie an MySQL-Interna interessiert sind, sollten Sie auch
@email{internals@@lists.mysql.com} abonnieren. Das ist eine Liste mit
relativ geringem Verkehr, verglichen mit @email{mysql@@lists.mysql.com}.
+
+
@menu
-* MySQL-Thread:: MySQL-Thread
-* MySQL-Test-Suite:: MySQL-Test-Suite
+* MySQL-Thread::
+* MySQL-Test-Suite::
@end menu
-
@node MySQL-Thread, MySQL-Test-Suite, MySQL-Interna, MySQL-Interna
+@c German node <no English equivalent>
@subsection MySQL-Thread
Der MySQL-Server erzeugt folgenden Thread:
@@ -47162,6 +47335,7 @@ DELAYED}- und Replikations-Threads.
@node MySQL-Test-Suite, , MySQL-Thread, MySQL-Interna
+@c German node <no English equivalent>
@subsection MySQL-Test-Suite
@cindex mysqltest, MySQL-Test-Suite
@@ -47187,14 +47361,16 @@ besonders Tests, die die Funktionalität untersuchen, die für Ihr System
kritisch ist, weil das sicherstellt, dass alle zukünftigen MySQL-Releases
mit Ihren Applikationen funktionieren.
+
+
@menu
-* mysqltest laufen lassen:: Die MySQL-Test-Suite laufen lassen
-* MySQL-Tests erweitern:: Die MySQL-Test-Suite erweitern
-* mysqltest-Bugs berichten:: Bugs in der MySQL-Test-Suite berichten
+* mysqltest laufen lassen::
+* MySQL-Tests erweitern::
+* mysqltest-Bugs berichten::
@end menu
-
@node mysqltest laufen lassen, MySQL-Tests erweitern, MySQL-Test-Suite, MySQL-Test-Suite
+@c German node <no English equivalent>
@subsubsection Die MySQL-Test-Suite laufen lassen
Das Testsystem besteht aus einem Test-Sprachinterpreter (@code{mysqltest}),
@@ -47225,6 +47401,7 @@ weiterer Test fehlschlägt.
@node MySQL-Tests erweitern, mysqltest-Bugs berichten, mysqltest laufen lassen, MySQL-Test-Suite
+@c German node <no English equivalent>
@subsubsection Die MySQL-Test-Suite erweitern
Sie können die @code{mysqltest}-Sprache benutzen, um Ihre eigenen Testfälle
@@ -47240,7 +47417,7 @@ Die Tests liegen in @code{mysql-test/t/*.test}
@item
Ein Testfall besteht aus @code{;}-begrenzten Statements und ist ähnlich der
Eingabe in den @code{mysql}-Kommandozeilen-Client. Ein Statement ist
-vorgabemässig eine Anfrage, die an den MySQL-Server geschickt werden soll,
+vorgabemäßig eine Anfrage, die an den MySQL-Server geschickt werden soll,
es sei denn, es wird als interner Befehl erkannt (zum Beispiel
@code{sleep}).
@@ -47319,6 +47496,7 @@ schicken.
@node mysqltest-Bugs berichten, , MySQL-Tests erweitern, MySQL-Test-Suite
+@c German node <no English equivalent>
@subsubsection Bugs in der MySQL-Test-Suite berichten
Wenn Ihre MySQL-Version die Test-Suite nicht fehlerfrei durchläuft, sollten
@@ -47327,9 +47505,9 @@ Sie folgendes tun:
@itemize @bullet
@item
Schicken Sie keinen Bug-Bericht, bevor Sie so weit wie möglich
-herausgefundenhaben, was schief ging! Benutzen Sie für den Bug-Bericht
+herausgefunden haben, was schief ging! Benutzen Sie für den Bug-Bericht
bitte das @code{mysqlbug}-Skript, so dass wir Informationen über Ihr System
-und die @code{MySQL}-Version erhalten. @xref{Bug-Berichte}.
+und die @code{MySQL}-Version erhalten. @xref\{Bug reports}.
@item
Stellen Sie sicher, dass die Ausgabe von @code{mysql-test-run} beiliegt,
sowie alle Inhalte aller @code{.reject}-Dateien im
@@ -47364,9 +47542,9 @@ Standard-Binärdateien sollten die Test-Suite fehlerfrei durchlaufen!
@item
Wenn Sie einen Fehler wie @code{Result length mismatch} oder @code{Result
-content mismatch} erhalten, heisst das, dass die Ausgabe des Tests nicht
+content mismatch} erhalten, heißt das, dass die Ausgabe des Tests nicht
genau mit der erwarteten Ausgabe übereinstimmt. Das könnte ein Bug in MySQL
-sein, könnte aber auch heissen, dass Ihre mysqld-Version unter bestimmten
+sein, könnte aber auch heißen, dass Ihre mysqld-Version unter bestimmten
Umständen leicht abweichende Ausgaben erzeugt.
Fehlgeschlagene Testergebnisse werden in eine Datei mit demselben Namen wie
@@ -47384,30 +47562,23 @@ schief ging.
Wenn Sie MySQL mit Debugging kompiliert haben, können Sie versuchen, das zu
debuggen, indem Sie @code{mysql-test-run} mit den @code{--gdb}- und / oder
@code{--debug}-Optionen laufen lassen.
-@xref{Trace-Dateien}.
+@xref\{Making trace files}.
Wenn Sie MySQL nicht für Debugging kompiliert haben, sollten Sie das besser
tun. Geben Sie einfach die @code{--with-debug}-Option für @code{configure}
-an! @xref{Installation der Quelldistribution}.
+an! @xref\{Installing source}.
@end itemize
-@node Probleme, Benutzer, MySQL erweitern, Top
+@node Problems, Benutzer, Extending MySQL, Top
+@c German node Probleme
@appendix Probleme und häufige Fehler
@cindex Probleme, häufige Fehler
@cindex Fehler, häufige
-@menu
-* Was ist ein Absturz:: Wie man feststellt, was Probleme verursacht
-* Häufige Fehler:: Einige häufige Fehler bei der Benutzung von MySQL
-* Installationsprobleme:: Installationsbezogene Themen
-* Administrationsprobleme:: Administrationsbezogene Themen
-* Anfragenprobleme:: Anfragenbezogene Themen
-* Tabellendefinitionsprobleme:: Tabellendefinitionsbezogene Themen
-@end menu
Dieses Kapitel listet einige gebräuchliche Probleme und Fehlermeldungen
auf, denen Benutzer in die Arme laufen. Sie lernen herauszufinden, was das
@@ -47415,7 +47586,17 @@ Problem ist und wie Sie es lösen. Hier finden sich auch korrekte Lösungen
einiger häufiger Probleme.
-@node Was ist ein Absturz, Häufige Fehler, Probleme, Probleme
+@menu
+* What is crashing::
+* Common errors::
+* Installation Issues::
+* Administration Issues::
+* Query Issues::
+* Table Definition Issues::
+@end menu
+
+@node What is crashing, Common errors, Problems, Problems
+@c German node Was ist ein Absturz
@appendixsec Wie man feststellt, was Probleme verursacht
Wenn Sie Probleme bekommen, sollten Sie als erstes herausfinden, welches
@@ -47463,7 +47644,7 @@ ausführen.
Untersuchen Sie Ihre System-Log-Datei (/var/log/messages oder ähnliches)
nach Gründen für Ihre Probleme. Wenn Sie glauben, dass das Problem an MySQL
liegt, sollten Sie auch die Log-Dateien von MySQL überprüfen.
-@xref{Update-Log-Datei}.
+@xref\{Update log}.
@item
Wenn Sie nicht glauben, ein Hardware-Problem zu haben, sollten Sie
@@ -47523,49 +47704,53 @@ zusammen? Erhalten Sie von diesem Programm irgend welche Ausgaben?
@end itemize
Wenn Sie einen Bug-Bericht senden, sollten Sie immer den Angaben folgen,
-die in diesem Handbuch beschrieben sind. @xref{Fragen stellen}.
+die in diesem Handbuch beschrieben sind. @xref\{Asking questions}.
-@node Häufige Fehler, Installationsprobleme, Was ist ein Absturz, Probleme
+@node Common errors, Installation Issues, What is crashing, Problems
+@c German node Häufige Fehler
@appendixsec Einige gebräuchliche Fehler bei der Benutzung von MySQL
@cindex errors, Auflistung
-@menu
-* Zugriff-verweigert-Fehler:: @code{Access denied}-Fehler
-* Weg gegangen:: @code{MySQL server has gone away}-Fehler
-* Keine Verbindung zum Server:: @code{Can't connect to [local] MySQL server}-Fehler
-* Blockierter Host:: @code{Host '...' is blocked}-Fehler
-* Zu viele Verbindungen:: @code{Too many connections}-Fehler
-* Nicht transaktionale Tabellen:: @code{Some non-transactional changed tables couldn't be rolled back}-Fehler
-* Kein Speicher verfügbar:: @code{No free memory}-Fehler
-* Paket zu gross:: @code{Packet too large}-Fehler
-* Kommunikationsfehler:: Kommunikationsfehler / Aborted connection
-* Tabelle voll:: @code{The table is full}-Fehler
-* Kann nicht erzeugen:: @code{Can't create/write to file}-Fehler
-* Befehl nicht synchronisiert:: @code{Command out of sync}-Fehler in client
-* Benutzer ignoriert:: @code{User ignored}-Fehler
-* Tabelle nicht gefunden:: @code{Table 'xxx' doesn't exist}-Fehler
-* Zeichensatz kann nicht initialisiert werden:: @code{Can@'t initialize charset xxx}-Fehler.
-* Nicht genug Datei-Handles:: File Not Found
-@end menu
Dieser Abschnitt listet einige Fehler auf, die Benutzer häufig erhalten.
Hier finden Sie Beschreibungen dieser Fehler und wie man die Probleme löst.
-@node Zugriff-verweigert-Fehler, Weg gegangen, Häufige Fehler, Häufige Fehler
+@menu
+* Error Access denied::
+* Gone away::
+* Can not connect to server::
+* Blocked host::
+* Too many connections::
+* Non-transactional tables::
+* Out of memory::
+* Packet too large::
+* Communication errors::
+* Full table::
+* Cannot create::
+* Commands out of sync::
+* Ignoring user::
+* Cannot find table::
+* Cannot initialize character set::
+* Not enough file handles::
+@end menu
+
+@node Error Access denied, Gone away, Common errors, Common errors
+@c German node Zugriff-verweigert-Fehler
@appendixsubsec @code{Access denied}-Fehler
@cindex Fehler, Zugriff verweigert
@cindex Probleme, Zugriff-verweigert-Fehler
@cindex access denied
-@xref{Berechtigungen}, insbesondere @xref{Zugriff verweigert}.
+@xref\{Privileges}, insbesondere @xref\{Access denied}.
-@node Weg gegangen, Keine Verbindung zum Server, Zugriff-verweigert-Fehler, Häufige Fehler
+@node Gone away, Can not connect to server, Error Access denied, Common errors
+@c German node Weg gegangen
@appendixsubsec @code{MySQL server has gone away}-Fehler
Dieser Abschnitt behandelt auch den verwandten @code{Lost connection to
@@ -47573,14 +47758,14 @@ server during query}-Fehler.
Der häufigste Grund für den @code{MySQL server has gone away}-Fehler ist
eine Zeitüberschreitung, nach der der Server die Verbindung schloss.
-Vorgabemässig schliesst der Server die Verbindung nach 8 Stunden, wenn
+Vorgabemäßig schließt der Server die Verbindung nach 8 Stunden, wenn
nichts passiert ist. Sie können diesen Wert mit der
@code{wait_timeout}-Variablen ändern, die beim Start von @code{mysqld}
gesetzt wird.
Ein weiterer häufiger Grund für den @code{MySQL server has gone
away}-Fehler ist das Absetzen eines ``close'' auf Ihre MySQL-Verbindung mit
-dem anschliessenden Versuch, auf der geschlossenen Verbindung eine Anfrage
+dem anschließenden Versuch, auf der geschlossenen Verbindung eine Anfrage
abzusetzen.
Sie können überprüfen, ob der MySQL-Server gestorben ist, indem Sie
@@ -47601,18 +47786,19 @@ Antwort.
@end multitable
Sie erhalten diese Fehler auch, wenn Sie eine Anfrage zum Server schicken,
-die falsch oder zu gross ist. Wenn @code{mysqld} ein Paket erhält, das zu
-gross oder nicht in Ordnung ist, nimmt er hat, dass etwas mit dem Client
-schief ging und schliesst die Verbindung. Wenn Sie grosse Anfragen brauchen
+die falsch oder zu Groß ist. Wenn @code{mysqld} ein Paket erhält, das zu
+Groß oder nicht in Ordnung ist, nimmt er hat, dass etwas mit dem Client
+schief ging und schließt die Verbindung. Wenn Sie große Anfragen brauchen
(beispielsweise wenn Sie mit @code{BLOB}-Spalten arbeiten), können Sie die
Anfragebeschränkung erhöhen, indem Sie @code{mysqld} mit der @code{-O
max_allowed_packet=#}-Option starten (Vorgabe 1 MB). Der zusätzliche
Speicher wird bei Bedarf zugewiesen, daher benutzt @code{mysqld} nur dann
-mehr Speicher, wenn Sie eine grosse Anfrage ausführen oder wennn
-@code{mysqld} ein grosses Ergebnis zurückgeben muss!
+mehr Speicher, wenn Sie eine große Anfrage ausführen oder wenn
+@code{mysqld} ein großes Ergebnis zurückgeben muss!
-@node Keine Verbindung zum Server, Blockierter Host, Weg gegangen, Häufige Fehler
+@node Can not connect to server, Blocked host, Gone away, Common errors
+@c German node Keine Verbindung zum Server
@appendixsubsec @code{Can't connect to [local] MySQL server}-Fehler
Ein MySQL-Client unter Unix kann sich auf zwei unterschiedliche Arten mit
@@ -47640,7 +47826,7 @@ Socket-Datei oder einen falschen TCP/IP-Port bei der Verbindung mit dem
Prüfen Sie zuerst mit @code{ps} oder dem Task-Manager unter Windows, ob es
einen laufenden Prozess namens @code{mysqld} auf Ihrem Server gibt! Wenn es
-keinen @code{mysqld}-Prozess gibt, sollten Sie einen starten. @xref{Server starten}.
+keinen @code{mysqld}-Prozess gibt, sollten Sie einen starten. @xref\{Starting server}.
Wenn ein @code{mysqld}-Prozess läuft, können Sie den Server mit diesen
unterschiedlichen Verbindungen überprüfen (die Portnummer und
@@ -47657,7 +47843,7 @@ shell> mysqladmin --socket=/tmp/mysql.sock version
Beachten Sie die Benutzung umgedrehter Anführungszeichen statt normaler
Anführungszeichen beim @code{hostname}-Befehl. Diese verursachen, dass die
-Ausgabe durch @code{hostname} (das heisst des aktuellen Hostnamens) im
+Ausgabe durch @code{hostname} (das heißt des aktuellen Hostnamens) im
@code{mysqladmin}-Befehl ersetzt wird.
Hier sind einige Gründe für das Auftreten des @code{Can't connect to local
@@ -47669,7 +47855,7 @@ MySQL server}-Fehlers:
@item
Sie fahren auf einem System, das MIT-pThread verwendet. Wenn Sie auf einem
System fahren, das keine nativen Threads hat, benutzt @code{mysqld} das
-MIT-pThread-Paket. @xref{Welches Betriebssystem}. Nicht alle
+MIT-pThread-Paket. @xref\{Which OS}. Nicht alle
MIT-pThread-Versionen unterstützen jedoch Unix-Sockets. Auf einem System
ohne Socket-Unterstützung müssen Sie den Hostnamen immer explizit angeben,
wenn Sie sich mit dem Server verbinden. Benutzen Sie diesen Befehl, um die
@@ -47686,20 +47872,20 @@ laufen lassen und überprüfen, dass der Socket, den @code{mysqladmin}
versucht zu benutzen, tatsächlich existiert. Die Problemlösung besteht in
diesem Fall darin, den @code{cron}-Job so zu ändern, dass er nicht
@file{mysqld.sock} entfernt oder den Socket an andere Stelle zu platzieren.
-@xref{Probleme mit mysql.sock}.
+@xref\{Problems with mysql\.sock}.
@item
Sie haben den @code{mysqld}-Server mit der
@code{--socket=/pfad/zu/socket}-Option gestartet. Wenn Sie den
Socket-Pfadnamen zum Server ändern, müssen Sie auch die MySQL-Clients
darüber unterrichten. Das können Sie tun, indem Sie den Socket-Pfad als
-Argument an den Client übergeben. @xref{Probleme mit mysql.sock}.
+Argument an den Client übergeben. @xref\{Problems with mysql\.sock}.
@item
Sie benutzen Linux und ein Thread ist gestorben (Core Dump). In diesem Fall
müssen Sie den anderen @code{mysqld}-Thread killen (beispielsweise mit dem
@code{mysql_zap}-Skript), bevor Sie einen neuen MySQL-Server starten
-können. @xref{Abstürze}.
+können. @xref\{Crashing}.
@item
-Eventuell haben Sie keine Lese- und Schreibberechtigungen entweder für deas
+Eventuell haben Sie keine Lese- und Schreibberechtigungen entweder für das
Verzeichnis, in dem die Socket-Datei liegt, oder keine Berechtigung für die
Socket-Datei selbst. In diesem Fall können Sie entweder die Berechtigung
für die Datei und / oder das Verzeichnis ändern oder @code{mysqld} neu
@@ -47730,7 +47916,8 @@ die @code{--skip-networking}-Option verwenden.
@end itemize
-@node Blockierter Host, Zu viele Verbindungen, Keine Verbindung zum Server, Häufige Fehler
+@node Blocked host, Too many connections, Can not connect to server, Common errors
+@c German node Blockierter Host
@appendixsubsec @code{Host '...' is blocked}-Fehler
Wenn Sie einen Fehler wie folgt erhalten:
@@ -47748,7 +47935,7 @@ fehlgeschlagenen Anfragen nimmt @code{mysqld} an, dass etwas nicht stimmt
Verbindungsanforderungen von der Site, bis jemand @code{mysqladmin
flush-hosts} ausführt.
-Vorgabemässig blockiert @code{mysqld} einen Host nach 10
+Vorgabemäßig blockiert @code{mysqld} einen Host nach 10
Verbindungsfehlern. Das können Sie leicht durch Starten des Servers wie
folgt ändern:
@@ -47763,19 +47950,20 @@ nützt es Ihnen nichts, den Wert der @code{max_connect_errors}-Variablen
heraufzusetzen!
-@node Zu viele Verbindungen, nicht transkationale Tabellen, Blockierter Host, Häufige Fehler
+@node Too many connections, Non-transactional tables, Blocked host, Common errors
+@c German node Zu viele Verbindungen
@appendixsubsec @code{Too many connections}-Fehler
Wenn Sie beim Verbindungsversuch den Fehler @code{Too many connections}
-erhalten, heisst das, dass es bereits @code{max_connections} Clients gibt,
+erhalten, heißt das, dass es bereits @code{max_connections} Clients gibt,
die mit dem @code{mysqld}-Server verbunden sind.
Wenn Sie mehr Verbindungen als die Vorgabe (100) benötigen, können Sie
-@code{mysqld} mit einem grösseren Wert für die
+@code{mysqld} mit einem größeren Wert für die
@code{max_connections}-Variable neu starten.
Beachten Sie, dass @code{mysqld} tatsächlich (@code{max_connections}+1)
-Clients für Verbindungen zulässt. Die letzte Verbindung wird für einen
+Clients für Verbindungen zuläßt. Die letzte Verbindung wird für einen
Benutzer mit der @strong{process}-Berechtigung reserviert. Wenn Sie keinem
normalen Benutzer diese Berechtigung geben (diese sollte sie nie
benötigen), kann sich ein Administrator mit dieser Berechtigung einloggen
@@ -47784,11 +47972,12 @@ und @code{SHOW PROCESSLIST} benutzen, um herauszufinden, was schief geht.
Die maximale Anzahl von Verbindungen ist davon abhängig, wie gut die
Thread-Bibliothek auf der Plattform ist. Linux oder Solaris sollten in der
-Lage sein, 500 bis 1000 gleichzeitige Verbindungen zu untertützen, abhängig
+Lage sein, 500 bis 1000 gleichzeitige Verbindungen zu unterstützen, abhängig
davon, wie viel Arbeitsspeicher Sie haben und was Ihre Clients ausführen.
-@node Nicht transaktionale Tabellen, Kein freier Arbeitsspeicher, Zu viele Verbindungen, Häufige Fehler
+@node Non-transactional tables, Out of memory, Too many connections, Common errors
+@c German node Nicht transaktionale Tabellen
@appendixsubsec @code{Some non-transactional changed tables couldn't be rolled back}-Fehler
@cindex Nicht transaktionale Tabellen
@@ -47817,7 +48006,8 @@ unterstützt, wie folgt überprüfen:
@code{show variables like 'have_%'}. @xref{SHOW VARIABLES}.
-@node Kein Speicher verfügbar, Paket zu gross, Nicht transaktionale Tabellen, Häufige Fehler
+@node Out of memory, Packet too large, Non-transactional tables, Common errors
+@c German node Kein Speicher verfügbar
@appendixsubsec @code{No free memory}-Fehler
Wenn Sie eine Anfrage ausführen und etwas wie folgenden Fehler erhalten:
@@ -47839,32 +48029,34 @@ Fall ist, können Sie @code{mysql --quick} benutzen, was
Hierdurch wird Last vom Client auf den Server verlagert.
-@node Paket zu gross, Kommunikationsfehler, Kein freier Arbeitsspeicher, Häufige Fehler
+@node Packet too large, Communication errors, Out of memory, Common errors
+@c German node Paket zu Groß
@appendixsubsec @code{Packet too large}-Fehler
Wenn ein MySQL-Client oder der @code{mysqld}-Server ein Paket erhält, das
-grösser als @code{max_allowed_packet} Bytes ist, gibt er einen @code{Packet
-too large}-Fehler aus und schliesst die Verbindung.
+größer als @code{max_allowed_packet} Bytes ist, gibt er einen @code{Packet
+too large}-Fehler aus und schließt die Verbindung.
-Wenn Sie den @code{mysql}-Client benutzen, müssen Sie einen grösseren
+Wenn Sie den @code{mysql}-Client benutzen, müssen Sie einen größeren
Puffer angeben, indem Sie den Client mit @code{mysql
--set-variable=max_allowed_packet=8M} starten.
-Wenn Sie andere Clients benutzen, die die Angabe der maximalen Paketgrösse
-nicht zulassen (wie @code{DBI}), müssen Sie die Paketgrösse beim Start des
+Wenn Sie andere Clients benutzen, die die Angabe der maximalen Paketgröße
+nicht zulassen (wie @code{DBI}), müssen Sie die Paketgröße beim Start des
Servers setzen. Sie können eine Kommandozeilenoption für @code{mysqld}
-benutzen, um @code{max_allowed_packet} auf eine höhere Grösse zu setzen.
+benutzen, um @code{max_allowed_packet} auf eine höhere Größe zu setzen.
Wenn Sie zum Beispiel beabsichtigen, die volle Länge eines @code{BLOB} in
eine Tabelle zu speichern, müssen Sie den Server mit der
@code{--set-variable=max_allowed_packet=16M}-Option starten.
-Sie können merkwürdige Probleme mit grossen Paketen erhalten, wenn Sie
-grosse Blobs benutzen, aber @code{mysqld} keinen Zugriff auf genug Speicher
+Sie können merkwürdige Probleme mit großen Paketen erhalten, wenn Sie
+große Blobs benutzen, aber @code{mysqld} keinen Zugriff auf genug Speicher
gegeben haben, um die Anfrage zu handhaben. Wenn Sie vermuten, dass das der
Fall ist, versuchen Sie, am Anfang des @code{safe_mysqld}-Skripts
@code{ulimit -d 256000} hinzuzufügen, und starten Sie @code{mysqld} neu.
-@node Kommunikationsfehler, Tabelle voll, Paket zu gross, Häufige Fehler
+@node Communication errors, Full table, Packet too large, Common errors
+@c German node Kommunikationsfehler
@appendixsubsec Kommunikationsfehler / Abgebrochene Verbindung
@cindex Abgebrochene Clients
@@ -47880,7 +48072,7 @@ Wenn Sie Fehler wie den folgenden in Ihrer Fehler-Log-Datei entdecken:
010301 14:38:23 Aborted connection 854 to db: 'Benutzer' user: 'josh'
@end example
-@xref{Fehler-Log-Datei}.
+@xref\{Error log}.
Bedeutet das, dass eins der folgenden Dinge passiert ist:
@@ -47925,7 +48117,7 @@ Verbindungen:
@item
Benutzung des Duplex-Ethernet-Protokolls, sowohl Halb- als auch
Voll-Duplex, unter Linux. Viele Linux-Ethernet-Treiber haben diesen Bug.
-Sie können auf diesen Bug überprüfen, indem Sie eine sehr grosse Datei via
+Sie können auf diesen Bug überprüfen, indem Sie eine sehr große Datei via
FTP zwischen diesen beiden Maschinen übertragen. Wenn ein Transfer nach dem
Schema schnelle Übertragung - Pause - schnelle Übertragung - Pause läuft,
haben Sie ein Linux-Duplex-Syndrom. Die einzige Lösung besteht darin, Halb-
@@ -47940,21 +48132,23 @@ Fehlerhafte Ethernets, Hubs, Switches, Kabel usw. Das kann nur durch
Austausch von Hardware sauber diagnostiziert werden.
@item
@code{max_allowed_packet} ist zu klein oder Anfragen erfordern mehr
-Speicher, als Sie für @code{mysqld} zugewiesen haben. @xref{Paket zu
-gross}.
+Speicher, als Sie für @code{mysqld} zugewiesen haben.
+@c German FIX unwrapped @xref
+@xref\{Packet too large}.
@end itemize
-@node Tabelle voll, Kann nicht erzeugen, Kommunikationsfehler, Häufige Fehler
+@node Full table, Cannot create, Communication errors, Common errors
+@c German node Tabelle voll
@appendixsubsec @code{The table is full}-Fehler
@cindex Tabelle ist voll
Der Fehler tritt in älteren MySQL-Versionen auf, wenn eine
-Hauptspeicher-basierende temporäre Tabelle grösser als
+Hauptspeicher-basierende temporäre Tabelle größer als
@code{tmp_table_size} Bytes wird. Um dieses Problem zu vermeiden, können
Sie die @code{-O tmp_table_size=#}-Option für @code{mysqld} benutzen, um
-die Grösse der temporären Tabelle zu erhöhen, oder die SQL-Option
+die Größe der temporären Tabelle zu erhöhen, oder die SQL-Option
@code{SQL_BIG_TABLES} verwenden, bevor Sie die problematische Anfrage
abschicken. @xref{SET OPTION, , @code{SET OPTION}}.
@@ -47964,10 +48158,11 @@ benutzen.
In MySQL-Version 3.23 werden Hauptspeicher-basierende temporäre Tabellen
automatisch in Festplatten-basierende @code{MyISAM}-Tabellen umgewandelt,
-wenn die Tabelle grösser als @code{tmp_table_size} wird.
+wenn die Tabelle größer als @code{tmp_table_size} wird.
-@node Kann nicht erzeugen, Befehl nicht synchronisiert, Tabelle voll, Häufige Fehler
+@node Cannot create, Commands out of sync, Full table, Common errors
+@c German node Kann nicht erzeugen
@appendixsubsec @code{Can't create/write to file}-Fehler
@cindex can't create/write to file
@@ -47981,7 +48176,7 @@ Can't create/write to file '\\sqla3fe_0.ism'.
Bedeutet das, dass MySQL keine temporäre Datei für die Ergebnismenge im
angegebenen temporären Verzeichnis erzeugen kann. (Der obige Fehler ist
eine typische Fehlermeldung unter Windows; die Unix-Fehlermeldung ist
-ähnlich.) Das Problem lässt sich beheben, indem Sie @code{mysqld} mit
+ähnlich.) Das Problem läßt sich beheben, indem Sie @code{mysqld} mit
@code{--tmpdir=pfad} starten oder folgendes in Ihrer Optionsdatei ergänzen:
@example
@@ -47990,7 +48185,7 @@ tmpdir=C:/temp
@end example
Unter der Annahme, dass das @file{c:\\temp}-Verzeichnis existiert.
-@xref{Optionsdateien}.
+@xref\{Option files}.
Überprüfen Sie auch den Fehler-Code, den Sie bei @code{perror} erhalten.
Ein Grund kann ein Fehler wegen fehlenden Festplattenspeichers sein:
@@ -48001,7 +48196,8 @@ Error code 28: No space left on device
@end example
-@node Befehl nicht synchronisiert, Benutzer ignoriert, Kann nicht erzeugen, Häufige Fehler
+@node Commands out of sync, Ignoring user, Cannot create, Common errors
+@c German node Befehl nicht synchronisiert
@appendixsubsec @code{Command out of sync}-Fehler in Client
@cindex Befehle nicht synchronisiert
@@ -48018,7 +48214,8 @@ zwischendrin @code{mysql_use_result()} oder @code{mysql_store_result()}
aufzurufen.
-@node Benutzer ignoriert, Tabelle nicht gefunden, Befehl nicht synchronisiert, Häufige Fehler
+@node Ignoring user, Cannot find table, Commands out of sync, Common errors
+@c German node Benutzer ignoriert
@appendixsubsec @code{User ignored}-Fehler
Wenn Sie folgenden Fehler erhalten:
@@ -48060,7 +48257,8 @@ mysql> update user set password=PASSWORD('ihr_passwort')
@end itemize
-@node Tabelle nicht gefunden, Zeichensatz kann nicht initialisiert werden, Benutzer ignoriert, Häufige Fehler
+@node Cannot find table, Cannot initialize character set, Ignoring user, Common errors
+@c German node Tabelle nicht gefunden
@appendixsubsec @code{Table 'xxx' doesn't exist}-Fehler
Wenn Sie den Fehler @code{Table 'xxx' doesn't exist} oder @code{Can't find
@@ -48068,7 +48266,7 @@ file: 'xxx' (errno: 2)} erhalten, bedeutet das, dass in der aktuellen
Datenbank keine Tabelle mit dem Namen @code{xxx} existiert.
Beachten Sie, dass Datenbank- und Tabellennamen @strong{abhängig von der
-verwendeten Gross-/Kleinschreibung} sind, weil MySQL Verzeichnisse und
+verwendeten Groß-/Kleinschreibung} sind, weil MySQL Verzeichnisse und
Dateien benutzt, um Datenbanken und Tabellen zu speichern! (Unter Windows
sind Datenbank- und Tabellennamen unabhängig von der Schreibweise, aber
alle Verweise auf eine gegebene Tabelle innerhalb einer Anfrage müssen
@@ -48079,7 +48277,8 @@ befinden, indem Sie @code{SHOW TABLES} eingeben. @xref{SHOW, ,
@code{SHOW}}.
-@node Zeichensatz kann nicht initialisiert werden, Nicht genug Datei-Handles, Tabelle nicht gefunden, Häufige Fehler
+@node Cannot initialize character set, Not enough file handles, Cannot find table, Common errors
+@c German node Zeichensatz kann nicht initialisiert werden
@appendixsubsec @code{Can@'t initialize charset xxx}-Fehler.
@cindex Multibyte-Zeichensätze
@@ -48099,12 +48298,12 @@ diesen Zeichensatz nicht.
In diesem Fall müssen Sie Ihren Client neu kompilieren und die
@code{--with-charset=xxx}- oder die @code{--with-extra-charsets=xxx}-Option
-angeben. @xref{Optionen konfigurieren}.
+angeben. @xref\{configure options}.
Alle Standard-MySQL-Binärdistributionen werden mit
@code{--with-extra-character-sets=complex} kompiliert, was die
Unterstützung für alle Multi-Byte-Zeichensätze aktiviert.
-@xref{Zeichensätze}.
+@xref\{Character sets}.
@item
Der Zeichensatz ist ein einfacher Zeichensatz, der nicht in @code{mysqld}
@@ -48116,7 +48315,7 @@ In diesem Fall müssen Sie:
@itemize @bullet
@item
Den Client mit Unterstützung für den Zeichensatz neu kompilieren.
-@xref{Optionen konfigurieren}.
+@xref\{configure options}.
@item
Dem Client angeben, wo die Zeichensatz-Definitionsdateien sind. Bei vielen
Clients können Sie das mit der
@@ -48128,7 +48327,8 @@ finden erwartet.
@end itemize
-@node Nicht genug Datei-Handles, , Zeichensatz kann nicht initialisiert werden, Häufige Fehler
+@node Not enough file handles, , Cannot initialize character set, Common errors
+@c German node Nicht genug Datei-Handles
@appendixsubsec File Not Found
Wenn Sie den Fehler @code{ERROR '...' not found (errno: 23)}, @code{Can't
@@ -48164,7 +48364,7 @@ stehen, zu ändern, können Sie die @code{--open-files-limit=#}-Option für
@code{safe_mysqld} oder die @code{-O open-files-limit=#}-Option für
@code{mysqld} benutzen. @xref{SHOW VARIABLES}. Die einfachste Art, das zu
tun, besteht darin, eine Option zu Ihrer Optionsdatei hinzuzufügen.
-@xref{Optionsdateien}. Wenn Sie eine alte @code{mysqld}-Version haben, die
+@xref\{Option files}. Wenn Sie eine alte @code{mysqld}-Version haben, die
das nicht unterstützt, können Sie das @code{safe_mysqld}-Skript editieren.
Es gibt dort eine auskommentierte Zeile @code{ulimit -n 256}. Entfernen Sie
das @code{'#'}-Zeichen, um diese Zeile zu aktivieren, und ändern Sie die
@@ -48186,17 +48386,20 @@ Werte, wenn Sie die aktuellen Grenzen abfragen! In diesem Fall sollten Sie
@code{safe_mysqld} mit @code{sh} starten!
-@node Installationsprobleme, Administrationsprobleme, Häufige Fehler, Probleme
+@node Installation Issues, Administration Issues, Common errors, Problems
+@c German node Installationsprobleme
@appendixsec Installationsbezogene Themen
+
@menu
-* Link-Fehler:: Probleme beim Linken mit der MySQL-Client-Bibliothek
-* Änderung des MySQL-Benutzers:: Wie man MySQL als normaler Benutzer laufen lässt
-* Dateirechte:: Probleme mit Dateirechten
+* Link errors::
+* Changing MySQL user::
+* File permissions ::
@end menu
-@node Link-Fehler, Änderung des MySQL-Benutzers, Installationsprobleme, Installationsprobleme
+@node Link errors, Changing MySQL user, Installation Issues, Installation Issues
+@c German node Link-Fehler
@appendixsubsec Probleme beim Linken mit der MySQL-Client-Bibliothek
@cindex linken, Fehler
@@ -48236,15 +48439,15 @@ auf Ihrem System nicht gibt, wie folgenden:
mf_format.o(.text+0x201): undefined reference to `__lxstat'
@end example
-Heisst das üblicherweise, dass Ihre Bibliothek auf einem System kompiliert
+Heißt das üblicherweise, dass Ihre Bibliothek auf einem System kompiliert
wurde, das nicht 100% kompatibel zu Ihrem System ist. In diesem Fall
sollten Sie die letzte MySQL-Quelldistribution herunter laden und sie
-selbst kompilieren. @xref{Installation der Quelldistribution}.
+selbst kompilieren. @xref\{Installing source}.
Wenn Sie versuchen, ein Programm laufen zu lassen und Fehler für
unreferenzierte Symbole erhalten, die mit @code{mysql_} anfangen, oder den
Fehler, dass die @code{mysqlclient}-Bibliothek nicht gefunden werden kann,
-heisst das, dass Ihr System die gemeinsam genutzte
+heißt das, dass Ihr System die gemeinsam genutzte
@code{libmysqlclient.so}-Bibliothek nicht findet.
Das Problem beheben Sie, indem Sie Ihr System anweisen, dort nach gemeinsam
@@ -48271,8 +48474,9 @@ Fall sollten Sie sicherstellen, dass keine anderen Programme die
dynamischen Bibliotheken benutzen!
-@node Änderung des MySQL-Benutzers, Dateirechte , Link-Fehler, Installationsprobleme
-@appendixsubsec Wie man MySQL als normaler Benutzer laufen lässt
+@node Changing MySQL user, File permissions , Link errors, Installation Issues
+@c German node Änderung des MySQL-Benutzers
+@appendixsubsec Wie man MySQL als normaler Benutzer laufen läßt
@cindex starten, @code{mysqld}
@cindex @code{mysqld}, starten
@@ -48323,7 +48527,7 @@ user=benutzername
Nunmehr sollte Ihr @code{mysqld}-Prozess korrekt unter dem Unix-Benutzer
@code{benutzername} laufen. Dennoch hat sich eins nicht geändert: Die
-Inhalte der Berechtigungstabellen. Vorgabemässig (direkt nach dem
+Inhalte der Berechtigungstabellen. Vorgabemäßig (direkt nach dem
Laufenlassen des Skripts @code{mysql_install_db}, das die
Berechtigungstabellen installiert), ist der MySQL-Benutzer @code{root} der
einzige Benutzer mit Zugriffsrechten auf die @code{mysql}-Datenbank. Er ist
@@ -48350,7 +48554,8 @@ angeben. Ansonsten kann jeder beliebige Benutzer mit einem Konto auf der
Maschine @code{mysql -u root datenbank} eingeben und tun, was er will.
-@node Dateirechte , , Änderung des MySQL-Benutzers, Installationsprobleme
+@node File permissions , , Changing MySQL user, Installation Issues
+@c German node Dateirechte
@appendixsubsec Probleme mit Dateirechten
@cindex Dateien, Rechte
@@ -48367,7 +48572,7 @@ Error: Can't find file: 'pfad/mit/dateiname.frm' (Errcode: 13)
@tindex UMASK-Umgebungsvariable
@tindex Umgebungsvariable, UMASK
Kann es sein, dass die Umgebungsvariable @code{UMASK} falsch gesetzt ist,
-wenn @code{mysqld} startet. Der vorgabemässige umask-Wert ist @code{0660}.
+wenn @code{mysqld} startet. Der vorgabemäßige umask-Wert ist @code{0660}.
Sie können dieses Verhalten ändern, indem Sie @code{safe_mysqld} wie folgt
starten:
@@ -48379,7 +48584,7 @@ shell> /pfad/zu/safe_mysqld &
@tindex UMASK_DIR-Umgebungsvariable
@tindex Umgebungsvariable, UMASK_DIR
-Vorgabemässig erzeugt MySQL Datenbank- und @code{RAID}-Verzeichnisse mit
+Vorgabemäßig erzeugt MySQL Datenbank- und @code{RAID}-Verzeichnisse mit
dem Berechtigungstyp 0700. Dieses Verhalten können Sie durch Setzen der
@code{UMASK_DIR}-Variablen ändern. Wenn Sie diese setzen, werden neue
Verzeichnisse mit kombiniertem @code{UMASK} und @code{UMASK_DIR} erzeugt.
@@ -48396,30 +48601,33 @@ Ab MySQL-Version 3.23.25 nimmt MySQL an, dass die Werte für @code{UMASK}
und @code{UMASK_DIR} in oktal angegeben sind, wenn sie mit einer 0
anfangen.
-@xref{Umgebungsvariablen}.
+@xref\{Environment variables}.
-@node Administrationsprobleme, Anfragenprobleme, Installationsprobleme, Probleme
+@node Administration Issues, Query Issues, Installation Issues, Problems
+@c German node Administrationsprobleme
@appendixsec Administrationsbezogene Themen
+
@menu
-* Abstürze:: Was zu tun ist, wenn MySQL andauernd abstürzt
-* Berechtigungen zurücksetzen:: Wie ein vergessenes Passwort zurückgesetzt wird
-* Platte voll:: Wie MySQL mit vollen Festplatten umgeht
-* Temporäre Dateien:: Wohin MySQL temporäre Dateien speichert
-* Probleme mit mysql.sock:: Wie @file{/tmp/mysql.sock} vor dem Gelöschtwerden geschützt wird
-* Zeitzonen-Probleme:: Zeitzonen-Probleme
+* Crashing::
+* Resetting permissions::
+* Full disk::
+* Temporary files::
+* Problems with mysql.sock::
+* Timezone problems::
@end menu
-@node Abstürze, Berechtigungen zurücksetzen, Administrationsprobleme, Administrationsprobleme
+@node Crashing, Resetting permissions, Administration Issues, Administration Issues
+@c German node Abstürze
@appendixsubsec Was zu tun ist, wenn MySQL andauernd abstürzt
@cindex Absturz, wiederholter
Alle MySQL-Versionen werden auf vielen Plattformen getestet, bevor sie
-herausgegeben werden. Das heisst nicht, dass es keinerlei Bugs in MySQL
-gibt, aber es heisst, dass, wenn es Bugs gibt, diese sehr wenige und schwer
+herausgegeben werden. Das heißt nicht, dass es keinerlei Bugs in MySQL
+gibt, aber es heißt, dass, wenn es Bugs gibt, diese sehr wenige und schwer
zu finden sind. Wenn Sie ein Problem haben, ist es immer hilfreich
herauszufinden, was Ihr System zum Absturz bringt, weil Sie dann viel
bessere Chancen haben, es schnell zu beheben.
@@ -48430,7 +48638,7 @@ Ihrem Client haben. Sie können herausfinden, seit wann Ihr
@code{mysqld}-Server hochgefahren ist, indem Sie @code{mysqladmin version}
ausführen. Wenn @code{mysqld} gestorben ist, finden Sie den Grund hierfür
womöglich in der Datei @file{mysql-daten-verzeichnis/`hostname`.err}.
-@xref{Fehler-Log-Datei}.
+@xref\{Error log}.
Viele Abstürze von MySQL werden durch beschädigte Index- oder Daten-Dateien
verursacht. MySQL aktualisiert die Daten auf Platte mit dem @code{write()}
@@ -48484,21 +48692,21 @@ Fahren Sie den @code{mysqld}-Daemon mit @code{mysqladmin shutdown} herunter
und führen Sie @code{myisamchk --silent --force */*.MYI} auf alle Tabellen
aus. Starten Sie den @code{mysqld}-Daemon erneut. Das stellt sicher, dass
Sie von einem sauberen Ausgangszustand aus fahren.
-@xref{MySQL-Datenbankadministration}.
+@xref\{MySQL Database Administration}.
@item
Benutzen Sie @code{mysqld --log} und versuchen Sie den Informationen im Log
zu entnehmen, ob eine bestimmte Anfrage den Server killt oder nicht. Etwa
95% aller Bugs beziehen sich auf eine bestimmte Anfrage! Normalerweise ist
das eine der letzten Anfragen in der Log-Datei, direkt bevor MySQL neu
-startete. @xref{Anfragen-Log-Datei}. Wenn Sie MySQL wiederholt mit einer
+startete. @xref\{Query log}. Wenn Sie MySQL wiederholt mit einer
der Anfragen killen, selbst wenn Sie alle Tabellen direkt vor der
Ausführung der Anfrage überprüft haben, haben Sie den Bug eingegrenzt und
-sollten dafür einen Bug-Bericht schreiben! @xref{Bug-Berichte}.
+sollten dafür einen Bug-Bericht schreiben! @xref\{Bug reports}.
@item
Versuchen Sie, einen Testfall herzustellen, den wir zur Reproduzierung des
-Problems verwenden können. @xref{Reproduzierbarer Testfall}.
+Problems verwenden können. @xref\{Reproduceable test case}.
@item
Versuchen Sie, die beigefügten mysql-test test und MySQL-Benchmarks laufen
@@ -48516,7 +48724,7 @@ Wenn Sie MySQL zum Debuggen konfigurieren, ist es wesentlich einfacher,
Informationen über mögliche Fehler zu erhalten, wenn etwas schief geht.
Konfigurieren Sie MySQL mit der @code{--with-debug}-Option oder mit der
@code{--with-debug=full}-Option für @code{configure} neu und kompilieren
-Sie neu. @xref{Server debuggen}.
+Sie neu. @xref\{Debugging server}.
@item
Wenn MySQL zum Debuggen konfiguriert wird, wird ein sicherer
@@ -48530,7 +48738,7 @@ Haben Sie die neuesten Patches für Ihr Betriebssystem installiert?
Benutzen Sie die @code{--skip-locking}-Option für @code{mysqld}. Auf
manchen Systemen arbeitet der @code{lockd}-Sperrmanager nicht korrekt. Die
@code{--skip-locking}-Option weist @code{mysqld} an, keine externen Sperren
-zu benutzen. (Das heisst, dass Sie nicht zwei @code{mysqld}-Server auf
+zu benutzen. (Das heißt, dass Sie nicht zwei @code{mysqld}-Server auf
denselben Daten laufen lassen können und dass Sie vorsichtig sein müssen,
wenn Sie @code{myisamchk} benutzen, aber es kann aufschlussreich sein, die
Option testweise zu benutzen.)
@@ -48556,7 +48764,7 @@ Versuchen Sie folgendes:
@item
Starten Sie @code{mysqld} von @code{gdb} aus (oder in einem anderen
Debugger).
-@xref{gdb auf mysqld benutzen}.
+@xref\{Using gdb on mysqld}.
@item
Lassen Sie Ihre Test-Skripts laufen.
@@ -48586,7 +48794,7 @@ MySQL zu zwingen, abzustürzen oder fehlerhaftes Verhalten an den Tag zu
legen.
@item
-Senden Sie einen normalen Bug-Bericht. @xref{Bug-Berichte}. Geben Sie mehr
+Senden Sie einen normalen Bug-Bericht. @xref\{Bug reports}. Geben Sie mehr
Details an als üblich. Weil MySQL bei vielen Leuten funktioniert, kann es
sein, dass der Absturz das Ergebnis von etwas ist, das nur auf Ihrem
Computer existiert (beispielsweise ein Fehler, der aus Ihren besonderen
@@ -48602,13 +48810,14 @@ benötigen etwas mehr Platz, sind aber fehlertoleranter gegenüber
Beschädigungen!
Der aktuelle Code mit dynamischen Zeilen ist bei MySQL AB seit mindestens
-drei Jahren ohne jedes Problem in Benutzung, aber naturgemäss sind Zeilen
+drei Jahren ohne jedes Problem in Benutzung, aber naturgemäß sind Zeilen
dynamischer Länge fehleranfälliger. Daher kann es eine gute Idee sein, das
oben Gesagte auszuprobieren.
@end itemize
-@node Berechtigungen zurücksetzen, Platte voll, Abstürze, Administrationsprobleme
+@node Resetting permissions, Full disk, Crashing, Administration Issues
+@c German node Berechtigungen zurücksetzen
@appendixsubsec Wie ein vergessenes Passwort zurückgesetzt wird
@cindex Passwörter, vergessen
@@ -48651,7 +48860,8 @@ einem @code{Unknown command}-Fehler führt, bis Sie @code{FLUSH PRIVILEGES}
ausgeführt haben.
-@node Platte voll, temporäre Dateien, Berechtigungen zurücksetzen, Administrationsprobleme
+@node Full disk, Temporary files, Resetting permissions, Administration Issues
+@c German node Platte voll
@appendixsubsec Wie MySQL mit vollen Festplatten umgeht
@cindex volle Festplatte
@@ -48692,15 +48902,16 @@ Ausnahmen zum obigen Verhalten treten bei der Benutzung von @code{REPAIR}
oder @code{OPTIMIZE} auf, oder wenn die Indexe nach einem @code{LOAD DATA
INFILE}- oder einem @code{ALTER TABLE}-Statement im Stapel erzeugt werden.
-Alle obigen Befehle benutzen eventuell grosse temporäre Dateien, die - sich
-selbst überlassen - für den Rest des Systems grosse Probleme verursachen
+Alle obigen Befehle benutzen eventuell große temporäre Dateien, die - sich
+selbst überlassen - für den Rest des Systems große Probleme verursachen
können. Wenn MySQL ein ``Platte voll'' erhält, während irgend eine der
-obigen Operationen ausgeführt wird, entfernt er die grossen temporären
+obigen Operationen ausgeführt wird, entfernt er die großen temporären
Dateien und markiert die Tabelle als beschädigt (ausser bei @code{ALTER
TABLE}, wobei die alte Tabelle unverändert gelassen wird).
-@node Temporäre Dateien, Probleme mit mysql.sock, Platte voll, Administrationsprobleme
+@node Temporary files, Problems with mysql.sock, Full disk, Administration Issues
+@c German node Temporäre Dateien
@appendixsubsec Wohin MySQL temporäre Dateien speichert
MySQL benutzt den Wert der @code{TMPDIR}-Umgebungsvariablen als Pfadnamen
@@ -48715,7 +48926,7 @@ für @code{mysqld} setzen.
MySQL erzeugt alle temporären Dateien als versteckte Dateien. Das stellt
sicher, dass die temporären Dateien entfernt werden, wenn @code{mysqld}
-beendet wird. Der Nachteil versteckter Dateien ist, dass Sie eine grosse
+beendet wird. Der Nachteil versteckter Dateien ist, dass Sie eine große
temporäre Datei nicht sehen, die das Dateisystem auffüllt, in dem sich das
Verzeichnis für temporäre Dateien befindet.
@@ -48729,7 +48940,7 @@ anzahl_uebereinstimmender_zeilen * 2
@end example
@code{groesse_von(datenbank_zeiger)} ist üblicherweise 4, kann in Zukunft
-aber für wirklich grosse Tabellen anwachsen.
+aber für wirklich große Tabellen anwachsen.
Bei einigen @code{SELECT}-Anfragen erzeugt MySQL zusätzliche temporäre
SQL-Tabellen. Diese sind nicht versteckt und haben Namen der Form
@@ -48739,7 +48950,8 @@ SQL-Tabellen. Diese sind nicht versteckt und haben Namen der Form
dem sich die Original-Tabelle befindet.
-@node Probleme mit mysql.sock, Zeitzonen-Probleme, Temporäre Dateien, Administrationsprobleme
+@node Problems with mysql.sock, Timezone problems, Temporary files, Administration Issues
+@c German node Probleme mit mysql.sock
@appendixsubsec Wie Sie die MySQL-Socket-Datei @file{/tmp/mysql.sock} schützen oder ändern
@cindex @code{mysql.sock}, schützen
@@ -48779,7 +48991,7 @@ socket=pfad-fuer-socket-datei
[mysqld]
socket=pfad-fuer-socket-datei
@end example
-@xref{Optionsdateien}.
+@xref\{Option files}.
@item
Geben Sie den Pfad auf der Kommandozeile für @code{safe_mysqld} und die
meisten Clients mit der @code{--socket=pfad-fuer-socket-datei}-Option an.
@@ -48790,7 +49002,7 @@ variable.
@item
Definieren Sie den Pfad mit der @code{configure}-Option
@code{--with-unix-socket-path=pfad-fuer-socket-datei}.
-@xref{Optionen konfigurieren}.
+@xref\{configure options}.
@end itemize
Mit folgendem Befehl können Sie testen, ob der Socket funktioniert:
@@ -48799,7 +49011,8 @@ Mit folgendem Befehl können Sie testen, ob der Socket funktioniert:
shell> mysqladmin --socket=/pfad/zu/socket version
@end example
-@node Zeitzonen-Probleme, , Probleme mit mysql.sock, Administrationsprobleme
+@node Timezone problems, , Problems with mysql.sock, Administration Issues
+@c German node Zeitzonen-Probleme
@appendixsubsec Zeitzonen-Probleme
@cindex Zeitzonen-Probleme
@@ -48813,37 +49026,40 @@ Wenn es Probleme damit gibt, dass @code{SELECT NOW()} Werte in GMT
Sie die @code{TZ}-Umgebungsvariable auf Ihre aktuelle Zeitzone setzen. Das
sollte für die Umgebung gemacht werden, in der der Server läuft, zum
Beispiel in @code{safe_mysqld} oder @code{mysql.server}.
-@xref{Umgebungsvariablen}.
+@xref\{Environment variables}.
-@node Anfragenprobleme, Tabellendefinitionsprobleme, Administrationsprobleme, Probleme
+@node Query Issues, Table Definition Issues, Administration Issues, Problems
+@c German node Anfragenprobleme
@appendixsec Anfragenbezogene Themen
+
@menu
-* Gross-/Kleinschreibung:: Gross-/Kleinschreibung beim Suchen
-* Benutzung von DATE:: Probleme bei der Benutzung von @code{DATE}-Spalten
-* Probleme mit NULL:: Probleme mit @code{NULL}-Werten
-* Probleme mit alias:: Probleme mit @code{alias}
-* Löschen aus verwandten Tabellen:: Zeilen aus verwandten Tabellen löschen
-* Keine übereinstimmenden Zeilen:: Probleme bei keinen übereinstimmenden Zeilen lösen
+* Case sensitivity::
+* Using DATE::
+* Problems with NULL::
+* Problems with alias::
+* Deleting from related tables::
+* No matching rows::
@end menu
-@node Gross-/Kleinschreibung, Benutzung von DATE, Anfragenprobleme, Anfragenprobleme
-@appendixsubsec Gross-/Kleinschreibung beim Suchen
+@node Case sensitivity, Using DATE, Query Issues, Query Issues
+@c German node Groß-/Kleinschreibung
+@appendixsubsec Groß-/Kleinschreibung beim Suchen
-@cindex Gross-/Kleinschreibung, beim Suchen
-@cindex Suchen und Gross-/Kleinschreibung
+@cindex Groß-/Kleinschreibung, beim Suchen
+@cindex Suchen und Groß-/Kleinschreibung
@cindex chinesisch
@cindex Big5, chinesische Zeichensatz-Kodierung
-Vorgabemässig sind MySQL-Suchen unabhängig von der verwendeten
-Gross-/Kleinschreibung (obwohl es einige Zeichensätze gibt, die nie
-unabhängig von der verwendeten Gross-/Kleinschreibung sind, wie
+Vorgabemäßig sind MySQL-Suchen unabhängig von der verwendeten
+Groß-/Kleinschreibung (obwohl es einige Zeichensätze gibt, die nie
+unabhängig von der verwendeten Groß-/Kleinschreibung sind, wie
@code{tschechisch}). Wenn Sie daher mit @code{spalten_name LIKE 'a%'}
suchen, erhalten Sie alle Spaltenwerte, die mit @code{A} oder @code{a}
anfangen. Wenn Sie die Suche abhängig von der verwendeten
-Gross-/Kleinschreibung machen wollen, verwenden Sie etwas wie
+Groß-/Kleinschreibung machen wollen, verwenden Sie etwas wie
@code{INSTR(spalten_name, "A")=1}, um ein Präfix zu überprüfen, oder
benutzen Sie @code{STRCMP(spalten_name, "A") = 0}, wenn der Spaltenwert
exakt @code{"A"} sein muss.
@@ -48854,12 +49070,12 @@ demselben Sortierwert (wie E, e und é) werden als dasselbe Zeichen
behandelt!
In älteren MySQL-Versionen wurden @code{LIKE}-Vergleiche mit dem
-Grossschreibungswert jedes Zeichens durchgeführt (E == e, aber E <> é). In
+Großschreibungswert jedes Zeichens durchgeführt (E == e, aber E <> é). In
neueren MySQL-Versionen funktioniert @code{LIKE} genau wie die anderen
Vergleichsoperatoren.
Wenn Sie wollen, dass eine Spalte immer abhängig von der verwendeten
-Gross-/Kleinschreibung behandelt wird, deklarieren Sie sie als
+Groß-/Kleinschreibung behandelt wird, deklarieren Sie sie als
@code{BINARY}. @xref{CREATE TABLE, , @code{CREATE TABLE}}.
Wenn Sie chinesische Daten in der so genannten Big5-Kodierung verwenden,
@@ -48868,7 +49084,8 @@ weil die Sortierreihenfolge von Big5-Zeichen auf der Reihenfolge von
ASCII-Codes basiert.
-@node Benutzung von DATE, Probleme mit NULL, Gross-/Kleinschreibung, Anfragenprobleme
+@node Using DATE, Problems with NULL, Case sensitivity, Query Issues
+@c German node Benutzung von DATE
@appendixsubsec Probleme bei der Benutzung von @code{DATE}-Spalten
@findex DATE
@@ -48876,7 +49093,7 @@ ASCII-Codes basiert.
@cindex DATE-Spalten, Probleme
@cindex Probleme, @code{DATE}-Spalten
-Das Format eines @code{DATE}-Werts ist @code{'YYYY-MM-DD'}. Gemäss ANSI-SQL
+Das Format eines @code{DATE}-Werts ist @code{'YYYY-MM-DD'}. Gemäß ANSI-SQL
ist kein anderes Format zulässig. Sie sollten dieses Format in
@code{UPDATE}-Ausdrücken und in der WHERE-Klausel von
@code{SELECT}-Statements benutzen. Beispiel:
@@ -48890,7 +49107,7 @@ eine Zahl, wenn das Datum in einem numerischen Zusammenhang benutzt wird
(und umgekehrt). MySQL unterstützt ausserdem ein ``entspanntes''
Zeichenkettenformat beim Aktualisieren und in einer @code{WHERE}-Klausel,
die ein Datum mit einer @code{TIMESTAMP}-, @code{DATE}- oder einer
-@code{DATETIME}-Spalte vergleicht. (Entspannt heisst hierbei, dass jedes
+@code{DATETIME}-Spalte vergleicht. (Entspannt heißt hierbei, dass jedes
beliebige Satzzeichen als Trennzeichen zwischen Bestandteilen benutzt
werden darf. Beispielsweise sind @code{'1998-08-15'} und
@code{'1998#08#15'} äquivalent.) MySQL kann auch eine Zeichenkette
@@ -48941,7 +49158,8 @@ dass es Sache der Applikation und nicht des Servers ist, Datumsangaben zu
überprüfen.
-@node Probleme mit NULL, Probleme mit alias, Benutzung von DATE, Anfragenprobleme
+@node Problems with NULL, Problems with alias, Using DATE, Query Issues
+@c German node Probleme mit NULL
@appendixsubsec Probleme mit @code{NULL}-Werten
@cindex @code{NULL}-Werte im Vergleich mit leeren Werten
@@ -49023,7 +49241,8 @@ Sie @code{NULL} in eine @code{AUTO_INCREMENT}-Spalte einfügen, wird die
nächste Zahl in der Zahlenfolge eingefügt.
-@node Probleme mit alias, Löschen aus verwandten Tabellen, Probleme mit NULL, Anfragenprobleme
+@node Problems with alias, Deleting from related tables, Problems with NULL, Query Issues
+@c German node Probleme mit alias
@appendixsubsec Probleme mit @code{alias}
@tindex alias
@@ -49053,7 +49272,8 @@ benutzt wird, um zu entscheiden, welche Zeilen der Ergebnismenge benutzt
werden sollten.
-@node Löschen aus verwandten Tabellen, Keine übereinstimmenden Zeilen, Probleme mit alias, Anfragenprobleme
+@node Deleting from related tables, No matching rows, Problems with alias, Query Issues
+@c German node Löschen aus verwandten Tabellen
@appendixsubsec Zeilen aus verwandten Tabellen löschen
@cindex löschen, Zeilen
@@ -49088,7 +49308,8 @@ Index ist, ist die Geschwindigkeit unabhängig von der Anzahl von Argumenten
in der @code{IN}-Klausel.
-@node Keine übereinstimmenden Zeilen, , Löschen aus verwandten Tabellen, Anfragenprobleme
+@node No matching rows, , Deleting from related tables, Query Issues
+@c German node Keine übereinstimmenden Zeilen
@appendixsubsec Probleme bei keinen übereinstimmenden Zeilen lösen
@cindex keine übereinstimmenden Zeilen
@@ -49110,7 +49331,7 @@ werden.
@item
Entfernen Sie nacheinander Tabelle für Tabelle aus der Anfrage, bis sie
-Zeilen zurückgibt. Wenn die Tabellen gross sind, ist es eine gute Idee,
+Zeilen zurückgibt. Wenn die Tabellen Groß sind, ist es eine gute Idee,
@code{LIMIT 10} bei der Anfrage zu benutzen.
@item
@@ -49121,7 +49342,7 @@ entfernt wurde.
@item
Wenn Sie @code{FLOAT}- oder @code{DOUBLE}-Spalten mit Zahlen vergleichen,
die Dezimalstellen haben, können Sie nicht @code{=} benutzen! Das Problem
-tritt in den meisten Computersprachen auf, weil Fliesskommawerte keine
+tritt in den meisten Computersprachen auf, weil Fließkommawerte keine
exakten Werte sind:
@example
@@ -49153,17 +49374,20 @@ Schicken Sie die Testdatei mittels @code{mysqlbug} an
@end enumerate
-@node Tabellendefinitionsprobleme, , Anfragenprobleme, Probleme
+@node Table Definition Issues, , Query Issues, Problems
+@c German node Tabellendefinitionsprobleme
@appendixsec Tabellendefinitionsbezogene Themen
+
@menu
-* Probleme mit ALTER TABLE:: Probleme mit @code{ALTER TABLE}.
-* Änderung der Spalten-Reihenfolge:: Wie man die Reihenfolge der Spalten in einer Tabelle ändert
-* Probleme mit temporären Tabellen:: TEMPORARY TABLE-Probleme
+* ALTER TABLE problems::
+* Change column order::
+* Temporary table problems::
@end menu
-@node Probleme mit ALTER TABLE, Änderung der Spalten-Reihenfolge, Tabellendefinitionsprobleme, Tabellendefinitionsprobleme
+@node ALTER TABLE problems, Change column order, Table Definition Issues, Table Definition Issues
+@c German node Probleme mit ALTER TABLE
@appendixsubsec Probleme mit @code{ALTER TABLE}.
@tindex ALTER TABLE
@@ -49201,12 +49425,13 @@ auch an eine andere Stelle verschieben.)
Wenn etwas bei dieser Umbennungsoperation fehlschlägt, versucht MySQL, die
Änderungen rückgängig zu machen. Wenn etwas Schwerwiegendes schief geht
-(was natürlich passieren kann), lässt MySQL eventuell die alte Tabelle als
+(was natürlich passieren kann), läßt MySQL eventuell die alte Tabelle als
@file{B-xxx}, aber ein einfaches Umbenennen auf Systemebene sollte Ihre
Daten zurückbringen.
-@node Änderung der Spalten-Reihenfolge, Probleme mit temporären Tabellen, Probleme mit ALTER TABLE, Tabellendefinitionsprobleme
+@node Change column order, Temporary table problems, ALTER TABLE problems, Table Definition Issues
+@c German node Änderung der Spalten-Reihenfolge
@appendixsubsec Wie man die Reihenfolge der Spalten in einer Tabelle ändert
@cindex neu sortieren, Spalten
@@ -49214,7 +49439,7 @@ Daten zurückbringen.
@cindex ändern, Spalten-Reihenfolge
@cindex Tabellen, Spalten-Reihenfolge ändern
-Im Grossen und Ganzen geht es bei SQL darum, die Applikation vom
+Im großen und Ganzen geht es bei SQL darum, die Applikation vom
Daten-Speicherformat zu abstrahieren. Sie sollten immer die Reihenfolge
angeben, in der Sie Ihre Daten abrufen wollen. Beispiel:
@@ -49255,7 +49480,8 @@ Führen Sie @code{ALTER TABLE neue_tabelle RENAME alte_tabelle} aus.
@end enumerate
-@node Probleme mit temporären Tabellen, , Änderung der Spalten-Reihenfolge, Tabellendefinitionsprobleme
+@node Temporary table problems, , Change column order, Table Definition Issues
+@c German node Probleme mit temporären Tabellen
@appendixsubsec TEMPORARY TABLE-Probleme
@cindex temporäre Tabellen, Probleme
@@ -49284,8 +49510,9 @@ Das soll in Version 4.0 behoben werden.
-
-@node Benutzer, MySQL-Benutzung durch Kunden, Probleme, Top
+@c German FIX this appendix should be removed (as was done from English ver.)
+@node Benutzer, MySQL-Benutzung durch Kunden, Problems, Top
+@c German node <no English equivalent>
@appendix Einige MySQL-Benutzer
@cindex Benutzer, von MySQL
@@ -49297,6 +49524,7 @@ Liste ist bei weitem nicht vollständig, sollte aber eine allgemeine
Vorstellung davon geben, wer MySQL benutzt und wofür es benutzt werden
kann.
+
@appendixsec Allgemeine News-Sites
@itemize @bullet
@@ -49363,6 +49591,7 @@ kann.
@item @uref{http://www.lyrics.net, das internationale Liedtext-Netzwerk}
+@c German FIX removed comma (",") to make description work inside uref
@item @uref{http://TheMatrix.com/~matrix/bund_search.phtml, Musiker die andere Musiker suchen (kostenloser Service)}
@item @uref{http://www.addall.com/AddBooks/Stores.html,AddALL Büchersuche und Preisvergleich}
@@ -49383,6 +49612,7 @@ Veröffentlichungen an der Monash University in Australien}
Berufsbezogene Gesundheits- und Sicherheits-Website-Datenbank (ein Projekt für die ECC)}
@c c.presutti@ipielle.emr.it
+@c German FIX removed comma (",") to make description work inside uref
@item @uref{http://data.mch.mcgill.ca/, Bioinformatik-Datenbanken am
Montreal-Kinderkrankenhaus die MySQL benutzen}
@c saeed@www.debelle.mcgill.ca
@@ -49435,6 +49665,7 @@ Abstimmungsservice mit Millionen Benutzern.}
@itemize @bullet
+@c German FIX removed comma (",") to make description work inside uref
@item @uref{http://www.wix.com/mysql-hosting, Registrar von Webprovidern
die MySQL unterstützen}
@@ -49469,7 +49700,7 @@ die MySQL unterstützen}
@item @uref{http://www.netizen.com.au/, Netizen: Web-Beratung in Australien}
-@item @uref{http://www.trainingpages.co.uk, Suchseite für Trainingskurse in Grossbritannien}
+@item @uref{http://www.trainingpages.co.uk, Suchseite für Trainingskurse in Großbritannien}
@item @uref{http://chat.nitco.com, Gannon Chat (GPL). Geschrieben in Perl und JavaScript}
@@ -49487,8 +49718,8 @@ die MySQL unterstützen}
@item @uref{http://tips.pair.com, Tipps zur Web-Entwicklung}
-@item @uref{http://www.mailfriends.com, Mailfriends.com ist ein kostenloser
-Service für jeden der über das Internet einen Freund finden will.}
+@c German FIX removed comma (",") to make description work inside uref
+@item @uref{http://www.mailfriends.com, Mailfriends.com ist ein kostenloser Service für jeden der über das Internet einen Freund finden will.}
@item @uref{http://www.uninova.com/cgi-bin/wctelnets?list, Website Telnet BBS List}
@@ -49505,17 +49736,15 @@ MySQL-Datenbank erzeugt.
@appendixsec Websites, die @code{PHP} und MySQL benutzen
@itemize @bullet
-@c @item @uref{http://www.wh200th.com, Site zum 200. Jahrestag des Weissen Hauses}
+@c @item @uref{http://www.wh200th.com, Site zum 200. Jahrestag des Weißen Hauses}
@item @uref{http://support.jgaa.com/, Jgaa's Internet - Offizielle Support-Site}
-@item @uref{http://io.incluso.com, Ionline - online publication:} MySQL,
-PHP, Java, Web-Programmierung, DB-Entwicklung
+@item @uref{http://io.incluso.com, Ionline - online publication:} MySQL, PHP, Java, Web-Programmierung, DB-Entwicklung
@item @uref{http://www.baboo.com, BaBoo(Browse und bookmark). Kostenloser Web-basierender Bookmarkmanager und Kalender}
-@item @uref{http://www.courses.pjc.cc.fl.us/Schedule/index.php,
-Kursplanungssystem am Pensacola Junior College}
+@item @uref{http://www.courses.pjc.cc.fl.us/Schedule/index.php, Kursplanungssystem am Pensacola Junior College}
@item @uref{http://www.fccj.org, Florida Community College in Jacksonville}
@@ -49525,18 +49754,13 @@ Kursplanungssystem am Pensacola Junior College}
@c Added 990604; EMAIL: ah@dybdahl.dk
-@item @uref{http://www.burken.nu/ , Burken.NU} Burken ist ein Webhotel, das
-Skripte unter anderem für entfernte Benutzer zur Verfügung stellt,
-beispielsweise Counter, Gästebücher usw.
+@item @uref{http://www.burken.nu/ , Burken.NU} Burken ist ein Webhotel, das Skripte unter anderem für entfernte Benutzer zur Verfügung stellt, beispielsweise Counter, Gästebücher usw.
@c Added 990608; EMAIL: spacedmp@SpaceDump.Burken.NU (Anders Olausson)
-@item @uref{http://tips.pair.com, tips.pair.com} Enthält Tipps zu HTML,
-JavaScript, 2D-/3D-Grafiken und PHP3/MySQL. Alle Seiten werden aus einer
-Datenbank erzeugt.
+@item @uref{http://tips.pair.com, tips.pair.com} Enthält Tipps zu HTML, JavaScript, 2D-/3D-Grafiken und PHP3/MySQL. Alle Seiten werden aus einer Datenbank erzeugt.
@c Added 990614; EMAIL: downey@image.dk (Rune Madsen)
-@item @uref{http://www.Softwarezrus.com/, Softwarezrus.com}
-E-Commerce-Site, die Computer verkauft.
+@item @uref{http://www.Softwarezrus.com/, Softwarezrus.com} E-Commerce-Site, die Computer verkauft.
@end itemize
@cindex Berater, Auflistung
@@ -49580,8 +49804,7 @@ E-Commerce-Site, die Computer verkauft.
@itemize @bullet
-@item @uref{http://www.feature-showcase.com/htmls/demo_mysql.sql,
-AZC.COM's Feature Showcase}
+@item @uref{http://www.feature-showcase.com/htmls/demo_mysql.sql, AZC.COM's Feature Showcase}
@item @uref{http://www.teach.org.uk/subjects/trainingcourse/g.html, Kurssuche}
@@ -49617,13 +49840,12 @@ AZC.COM's Feature Showcase}
@item @uref{http://www.jade-v.com/techinfo.html, Jade-V Network Services }
-@item @uref{http://ww2010.atmos.uiuc.edu/(Gl)/abt/aknw/tech.rxml,
-Weather World 2010 Technical Credits} @*
+@item @uref{http://ww2010.atmos.uiuc.edu/(Gl)/abt/aknw/tech.rxml, Weather World 2010 Technical Credits} @*
@item @uref{http://gimp.foebud.org/registry/doc/, Über die Gimp-Plugin-Registrierung}
-@item @uref{http://www.fast-inc.com/produkte/Archiver/database.html, Java-Werkzeug
-Archiver technical detail (leicht optimistisch was die MySQL-ANSI-92-Kompatibilität betrifft)}
+@c German FIX removed comma (",") to make description work inside uref
+@item @uref{http://www.fast-inc.com/produkte/Archiver/database.html, Java-Werkzeug Archiver technical detail (leicht optimistisch was die MySQL-ANSI-92-Kompatibilität betrifft)}
@item @uref{http://www.gamesdomain.com/cheats/usrcheat.phtml, Games Domain Cheats Datenbank}
@@ -49710,6 +49932,7 @@ Schicken Sie Ergänzungen dieser Liste an @email{webmaster@@mysql.com}.
@node MySQL-Benutzung durch Kunden, Contrib, Benutzer, Top
+@c German node <no English equivalent>
@appendix MySQL-Benutzung durch Kunden
@cindex MySQL-Benutzung
@@ -49729,14 +49952,14 @@ einige Zeit bis zur Beantwortung dauern kann, da wir sehr beschäftigt sind.
@itemize @bullet
@item
@strong{Peter Zaitsev von Spylog.ru} schreibt:
-Ich denke, die Grösse meiner Datenbank könnte für Euch interessant sein.
+Ich denke, die Größe meiner Datenbank könnte für Euch interessant sein.
Die gesamte Datenbank liegt momentan auf 15 Servern und enthält etwa 60.000
Tabellen, die etwa 5.000.000.000 Zeilen enthalten. Mein unter der höchsten
Last stehender Server hat momentan etwa 10.000 Tabellen mit 1.000.000.000
-Zeilen. Die grössten Tabellen enthalten etwa 50.000.000 Zeilen, und dieser
-Wert wird sich noch steigern, wenn ich auf den 2.4-Kernel mit grossen
-Dateien umstelle. Momentan muss ich viele Logs für grosse Sites löschen, um
-Tabellengrösse unter 2 GB zu halten.
+Zeilen. Die größten Tabellen enthalten etwa 50.000.000 Zeilen, und dieser
+Wert wird sich noch steigern, wenn ich auf den 2.4-Kernel mit großen
+Dateien umstelle. Momentan muss ich viele Logs für große Sites löschen, um
+Tabellengröße unter 2 GB zu halten.
@item
@strong{Texas Instruments} benutzt MySQL für die Handhabung von Tabellen,
@@ -49749,7 +49972,8 @@ enthalten.
-@node Contrib, Danksagungen, MySQL-Benutzung durch Kunden, Top
+@node Contrib, Credits, MySQL-Benutzung durch Kunden, Top
+@c German node Contrib
@appendix Beigesteuerte Programme
@cindex Beigesteuerte Programme
@@ -49882,6 +50106,7 @@ Ein Wrapper für libmysql.dll für die Benutzung in Delphi. Von Reiner Sombrowsky.
@item @uref{http://www.fichtner.net/delphi/mysql.delphi.phtml, Eine Delphi-Schnittstelle zu MySQL.}
Mit Quelltext. Von Matthias Fichtner.
+@c German FIX removed comma (",") to make description work inside uref
@item @uref{http://www.productivity.org/projects/tmysql/, @strong{TmySQL}
Eine Bibliothek um MySQL mit Delphi zu benutzen}.
@@ -50082,6 +50307,7 @@ Homepage: @uref{http://www.mysqlfront.de/}.
Win32-Client für die Verwaltung von Datenbanken, Tabellen, Tabellendaten,
Indexen und Import-/Export-Dateien. Freeware. Von Ansgar Becker.
+@c German FIX removed comma (",") to make description work inside uref
@item @uref{http://www.mysql.com/downloads/Win32/W9xstop.zip,Dienstprogramm
von Artronic um MySQL unter Windows 9x anzuhalten}.
@@ -50253,6 +50479,7 @@ Aktualisierung, Löschen), ohne jedes Programmieren! Von Marc Beneteau, @email{ma
SQL/HTML ist ein HTML-Datenbankmanager für MySQL mit @code{DBI} 1.06.
@item @uref{http://www.mysql.com/Downloads/Contrib/udmsearch-3.0.23.tar.gz, UdmSearch 3.0.23 (stabile Version)}.
+@c German FIX removed comma (",") to make description work inside uref
@item @uref{http://www.mysql.com/Downloads/Contrib/mnogosearch-3.1.12.tar.gz, mnogosearch 3.1.12 (Entwicklungs- aber empfohlene Version)}.
@item @uref{http://search.mnoGo.ru, UdmSearch-Homepage}
Eine SQL-basierende Suchmaschine fürs Internet. Von Alexander I. Barkov @email{bar@@izhcom.ru}.
@@ -50367,7 +50594,7 @@ Konverter von MS-SQL zu MySQL. Von Michael Kofler.
@item @uref{http://www.mysql.com/Downloads/Contrib/dbf2mysql-1.14.tar.gz, dbf2mysql-1.14.tar.gz}
Konvertiert zwischen @file{.dbf}-Dateien und MySQL-Tabellen. Von Maarten
Boekhold (@email{boekhold@@cindy.et.tudelft.nl}), William Volkman und
-Michael Widenius. Dieser Konverter schliesst rudimentäre Unterstützung (nur
+Michael Widenius. Dieser Konverter schließt rudimentäre Unterstützung (nur
lesen) für MEMO-Felder ein.
@item @uref{http://www.mysql.com/Downloads/Contrib/dbf2mysql-1.13.tgz, dbf2mysql-1.13.tgz}
@@ -50594,7 +50821,8 @@ nicht interessiert sind.
-@node Danksagungen, Neuigkeiten, Contrib, Top
+@node Credits, News, Contrib, Top
+@c German node Danksagungen
@appendix Danksagungen
@cindex Entwickler, Auflistung
@@ -50602,20 +50830,22 @@ nicht interessiert sind.
Dieser Anhang listet die Entwickler, Kontributoren und Unterstützer auf,
die mitgeholfen haben, dass MySQL das wird, was es heute ist.
+
+
@menu
-* Entwickler:: Entwickler bei MySQL AB
-* Kontributoren:: Kontributoren zu MySQL
-* Unterstützer:: Unterstützer von MySQL
+* Developers::
+* Contributors::
+* Supporters::
@end menu
-
-@node Entwickler, Kontributoren, Danksagungen, Danksagungen
+@node Developers, Contributors, Credits, Credits
+@c German node Entwickler
@appendixsec Entwickler bei MySQL AB
-Hier sind die Entwickler, die von MySQL AB angestellt wurden, um an MySQL
-zu arbeiten, ungefähr in der Reihenfolge ihres Eintritts. Neben dem Namen
-wird aufgelistet, für welche Teilaufgaben der Entwickler verantwortlich ist
-oder welche Leistungen er erbracht hat.
+Hier sind die Entwickler, die von @code{MySQL AB} angestellt wurden, um an
+@code{MySQL} zu arbeiten, ungefähr in der Reihenfolge ihres Eintritts.
+Neben dem Namen wird aufgelistet, für welche Teilaufgaben der Entwickler
+verantwortlich ist oder welche Leistungen er erbracht hat.
@table @asis
@item Michael (Monty) Widenius
@@ -50804,13 +51034,16 @@ Allan Larsson (der BOSS für TCX DataKonsult AB).
@end table
-@node Kontributoren, Unterstützer, Entwickler, Danksagungen
+@node Contributors, Supporters, Developers, Credits
+@c German node Kontributoren
@appendixsec Kontributoren zu MySQL
@cindex Kontributoren, Auflistung
-Hier sind Kontributoren zur MySQL-Distribution in eher zufälliger
-Reihenfolge aufgeführt:
+Während @code{MySQL AB} das gesammte Copyright für den @code{MySQL Server}
+und das @code{MySQL manual} besitzt, möchten wir hier diejenigen Menschen
+nennen, die das Ein oder Andere zur @code{MySQL Distribution} beigetragen
+haben. Die Kontributoren sind in eher zufälliger Reihenfolge aufgeführt:
@table @asis
@item Paul DuBois
@@ -50833,7 +51066,7 @@ fingen mit @code{mSQL} an, fanden aber, dass es unsere Bedürfnisse nicht
befriedigen könne, daher schrieben wir stattdessen eine SQL-Schnittstelle
zu unserem Applikation-Builder Unireg. @code{mysqladmin} und @code{mysql}
sind Programme, die stark von ihren @code{mSQL}-Pendants beeinflusst sind.
-Wir haben uns grosse Mühe gegeben, die MySQL-Syntax zu einer Obermenge von
+Wir haben uns große Mühe gegeben, die MySQL-Syntax zu einer Obermenge von
@code{mSQL} zu machen. Viele API-Ideen sind von @code{mSQL} entliehen,
damit es einfach ist, kostenlose @code{mSQL}-Programme nach MySQL zu
portieren. MySQL enthält keinen Code von @code{mSQL}. Zwei Dateien in der
@@ -50856,7 +51089,7 @@ Von ihnen haben wir einen exzellenten Compiler (@code{gcc}), die
einiger Code unter Linux funktioniert), und die @code{readline}-Bibliothek
(für den @code{mysql}-Client).
@item Free Software Foundation und das XEmacs-Entwicklungsteam
-Ihr grossartiger Editor, der für fast jeden Artikeltext bei TcX/MySQL
+Ihr großartiger Editor, der für fast jeden Artikeltext bei TcX/MySQL
AB/detron benutzt wird.
@item Patrick Lynch
Für seine Hilfe bei @code{http://www.mysql.com/}.
@@ -50964,10 +51197,10 @@ Viel Funktionalität für den chinesischen (GBK-) Zeichensatz.
Aktives Mitglied der Mailing-Liste.
@item Luuk de Boer @email{luuk@@wxs.nl}
Portierte (und erweiterte) die Benchmark-Suite für @code{DBI}/@code{DBD}.
-War eine grosse Hilfe bei @code{Crash-me} und beim Laufenlassen von
+War eine große Hilfe bei @code{Crash-me} und beim Laufenlassen von
Benchmarks. Einige neue Datumsfunktionen. Das mysql_setpermissions-Skript.
@item Jay Flaherty @email{fty@@mediapulse.com}
-Grosse Teile des Perl-@code{DBI}/@code{DBD}-Abschnitts im Handbuch.
+Große Teile des Perl-@code{DBI}/@code{DBD}-Abschnitts im Handbuch.
@item Paul Southworth @email{pauls@@etext.org}, Ray Loyzaga @email{yar@@cs.su.oz.au}
Korrekturlesen des Referenzhandbuchs.
@item Alexis Mikhailov @email{root@@medinf.chuvashia.su}
@@ -50993,7 +51226,7 @@ Er machte @code{mysqlaccess} sicherer.
@uref{http://www.pspl.co.in/konark/}. Hilfe bei der Win64-Portierung des
MySQL-Servers.
@item Albert Chin-A-Young.
-Configure-Aktualisierungen für Tru64, Unterstützung grosser Dateien und
+Configure-Aktualisierungen für Tru64, Unterstützung großer Dateien und
verbesserte Unterstützung von TCP-Wrappern.
@item John Birrell
Emulation von pthread_mutex() für OS/2.
@@ -51010,7 +51243,7 @@ Mike Simons, Jaakko Hyvatti.
Und viele Bug-Berichte und Patches von den Leuten auf der Mailing-Liste.
-Grosse Anerkennung zollen wir denjenigen, die uns halfen, Fragen auf der
+Große Anerkennung zollen wir denjenigen, die uns halfen, Fragen auf der
@code{mysql@@lists.mysql.com}-Mailing-Liste zu beantworten:
@table @asis
@@ -51050,13 +51283,16 @@ Fragen zur ODBC- und VisualC++-Schnittstelle.
@end table
-@node Unterstützer, , Kontributoren, Danksagungen
+@node Supporters, , Contributors, Credits
+@c German node Unterstützer
@appendixsec Unterstützer von MySQL
@cindex Unterstützende Unternehmen, Auflistung
-Folgende Unternehmen haben uns geholfen, die Entwicklung von MySQL zu
-finanzieren, entweder, indem sie uns für die Entwicklung eines neuen
+Während @code{MySQL AB} das gesammte Copyright für den @code{MySQL Server}
+und das @code{MySQL manual} besitzt, möchten wir hier diejenigen Unternehmen
+nennen, die die Entwicklung des @code{MySQL Servers} unterstützt haben.
+Sie haben geholfen, indem sie uns für die Entwicklung eines neuen
Features bezahlten, indem sie MySQL-Features selbst entwickelten oder indem
sie uns Hardware für die MySQL-Entwicklung gaben.
@@ -51080,7 +51316,8 @@ Entwicklung der eingebetteten @code{mysqld}-Version.
-@node Neuigkeiten, Portierung, Danksagungen, Top
+@node News, Porting, Credits, Top
+@c German node Neuigkeiten
@appendix MySQL-Änderungsverlauf (Change History)
@cindex ChangeLog
@@ -51094,15 +51331,17 @@ Beachten Sie, dass wir versuchen, das Handbuch zeitgleich mit den
Änderungen an MySQL zu aktualisieren. Wenn Sie unten eine Version
aufgelistet sehen, die Sie auf der
@uref{http://www.mysql.com/downloads/,MySQL-Download-Seite} nicht finden
-können, heisst das, dass die Version noch nicht veröffentlicht wurde!
+können, heißt das, dass die Version noch nicht veröffentlicht wurde!
+
+
@menu
-* Neuigkeiten-4.0.x:: Änderungen in Release 4.0.x (Entwicklung; Alpha)
-* Neuigkeiten-3.23.x:: Änderungen in Release 3.23.x (Stabil)
+* News-4.0.x::
+* News-3.23.x::
@end menu
-
-@node Neuigkeiten-4.0.x, Neuigkeiten-3.23.x, Neuigkeiten, Neuigkeiten
+@node News-4.0.x, News-3.23.x, News, News
+@c German node Neuigkeiten-4.0.x
@appendixsec Änderungen in Release 4.0.x (Entwicklung; Alpha)
Wir arbeiten mittlerweile aktiv an MySQL 4.0 und werden nur noch kritische
@@ -51114,13 +51353,15 @@ Unser TODO-Abschnitt enthält, was wir für 4.0 planen. @xref{TODO}.
@cindex Änderungen, Version 4.0
+
@menu
-* Neuigkeiten-4.0.2:: Änderungen in Release 4.0.2
-* Neuigkeiten-4.0.1:: Änderungen in Release 4.0.1
-* Neuigkeiten-4.0.0:: Änderungen in Release 4.0.0
+* News-4.0.2::
+* News-4.0.1::
+* News-4.0.0::
@end menu
-@node Neuigkeiten-4.0.2, Neuigkeiten-4.0.1, Neuigkeiten-4.0.x, Neuigkeiten-4.0.x
+@node News-4.0.2, News-4.0.1, News-4.0.x, News-4.0.x
+@c German node Neuigkeiten-4.0.2
@appendixsubsec Änderungen in Release 4.0.2
@itemize @bullet
@@ -51135,7 +51376,8 @@ Neue Spalten @code{Null} und @code{Index_type} zu @code{SHOW INDEX}
hinzugefügt.
@end itemize
-@node Neuigkeiten-4.0.1, Neuigkeiten-4.0.0, Neuigkeiten-4.0.2, Neuigkeiten-4.0.x
+@node News-4.0.1, News-4.0.0, News-4.0.2, News-4.0.x
+@c German node Neuigkeiten-4.0.1
@appendixsubsec Änderungen in Release 4.0.1
@itemize @bullet
@@ -51193,7 +51435,7 @@ hinzugefügt. @strong{Hinweis: Sie müssen Ihre Tabellen mit
Volltextsuche benutzen zu können.}
@item
@code{LOCATE()} und @code{INSTR()} sind abhängig von der verwendeten
-Gross-/Kleinschreibung, wenn keins der Argumente eine binäre Zeichenkette
+Groß-/Kleinschreibung, wenn keins der Argumente eine binäre Zeichenkette
ist.
@item
@code{RND()}-Initialisierung geändert, so dass @code{RND(N)} und
@@ -51201,7 +51443,7 @@ ist.
@item
Coredump-Bug in @code{UPDATE ... ORDER BY} behoben.
@item
-@code{INSERT INTO .. SELECT} geändert, damit es bei Fehlern vorgabemässig
+@code{INSERT INTO .. SELECT} geändert, damit es bei Fehlern vorgabemäßig
anhält.
@item
@code{DATA DIRECTORY}- und @code{INDEX DIRECTORY}-Anweisungen werden unter
@@ -51217,7 +51459,8 @@ Index wird jetzt in @code{ORDER BY} von einer ganzen InnoDB-Tabelle
verwendet.
@end itemize
-@node Neuigkeiten-4.0.0, , Neuigkeiten-4.0.1, Neuigkeiten-4.0.x
+@node News-4.0.0, , News-4.0.1, News-4.0.x
+@c German node Neuigkeiten-4.0.0
@appendixsubsec Änderungen in Release 4.0.0
@itemize @bullet
@@ -51282,7 +51525,7 @@ Anfragen folgenden Typs optimiert:
@code{safe_mysqld} in @code{mysqld_safe} umbenannt.
@item
Unterstützung für symbolische Links auf @code{MyISAM}-Tabellen hinzugefügt.
-Symlink-Handhabung ist jetzt vorgabemässig für Windows aktiviert.
+Symlink-Handhabung ist jetzt vorgabemäßig für Windows aktiviert.
@item
@code{LOAD DATA FROM MASTER} setzt "auto-magisch" einen Slave auf.
@item
@@ -51316,7 +51559,8 @@ behoben.
@end itemize
-@node Neuigkeiten-3.23.x, Neuigkeiten-3.22.x, Neuigkeiten-4.0.x, Neuigkeiten
+@node News-3.23.x, , News-4.0.x, News
+@c German node Neuigkeiten-3.23.x
@appendixsec Änderungen in Release 3.23.x (Stabil)
@cindex changes, version 3.23
@@ -51326,7 +51570,7 @@ nicht vorhanden sind. Es wurden drei neue Tabellentypen hinzugefügt:
@table @asis
@item @strong{MyISAM}
-Eine neue ISAM-Bibliothek, die auf SQL und Unterstützung grosser Dateien
+Eine neue ISAM-Bibliothek, die auf SQL und Unterstützung großer Dateien
abgestimmt ist.
@item @strong{BerkeleyDB} oder @strong{BDB}
Benutzt die Berkeley-DB-Bibliothek von Sleepycat Software, um
@@ -51353,61 +51597,63 @@ noch einige Releases von 3.23 mit kleineren Behebungen für diesen Teil des
Codes geben. Solange Sie diese Features nicht benutzen, sollten Sie mit
MySQL 3.23 auf der sicheren Seite liegen!
-Beachten Sie, dass das Gesagte nicht heisst, dass Replikation oder Berkeley
+Beachten Sie, dass das Gesagte nicht heißt, dass Replikation oder Berkeley
DB nicht funktionieren. Wir haben den gesamten Code ausgiebig getestet,
inklusive Replikation und BDB, ohne irgend welche Probleme zu finden. Es
-heisst nur, dass nicht so viele Benutzer diesen Code verwenden wie den Rest
+heißt nur, dass nicht so viele Benutzer diesen Code verwenden wie den Rest
des Codes, weshalb wir noch nicht 100% auf diesen Teil des Codes vertrauen.
+
@menu
-* Neuigkeiten-3.23.43:: Änderungen in Release 3.23.43
-* Neuigkeiten-3.23.42:: Änderungen in Release 3.23.42
-* Neuigkeiten-3.23.41:: Änderungen in Release 3.23.41
-* Neuigkeiten-3.23.40:: Änderungen in Release 3.23.40
-* Neuigkeiten-3.23.39:: Änderungen in Release 3.23.39
-* Neuigkeiten-3.23.38:: Änderungen in Release 3.23.38
-* Neuigkeiten-3.23.37:: Änderungen in Release 3.23.37
-* Neuigkeiten-3.23.36:: Änderungen in Release 3.23.36
-* Neuigkeiten-3.23.35:: Änderungen in Release 3.23.35
-* Neuigkeiten-3.23.34a:: Änderungen in Release 3.23.34a
-* Neuigkeiten-3.23.34:: Änderungen in Release 3.23.34
-* Neuigkeiten-3.23.33:: Änderungen in Release 3.23.33
-* Neuigkeiten-3.23.32:: Änderungen in Release 3.23.32
-* Neuigkeiten-3.23.31:: Änderungen in Release 3.23.31
-* Neuigkeiten-3.23.30:: Änderungen in Release 3.23.30
-* Neuigkeiten-3.23.29:: Änderungen in Release 3.23.29
-* Neuigkeiten-3.23.28:: Änderungen in Release 3.23.28
-* Neuigkeiten-3.23.27:: Änderungen in Release 3.23.27
-* Neuigkeiten-3.23.26:: Änderungen in Release 3.23.26
-* Neuigkeiten-3.23.25:: Änderungen in Release 3.23.25
-* Neuigkeiten-3.23.24:: Änderungen in Release 3.23.24
-* Neuigkeiten-3.23.23:: Änderungen in Release 3.23.23
-* Neuigkeiten-3.23.22:: Änderungen in Release 3.23.22
-* Neuigkeiten-3.23.21:: Änderungen in Release 3.23.21
-* Neuigkeiten-3.23.20:: Änderungen in Release 3.23.20
-* Neuigkeiten-3.23.19:: Änderungen in Release 3.23.19
-* Neuigkeiten-3.23.18:: Änderungen in Release 3.23.18
-* Neuigkeiten-3.23.17:: Änderungen in Release 3.23.17
-* Neuigkeiten-3.23.16:: Änderungen in Release 3.23.16
-* Neuigkeiten-3.23.15:: Änderungen in Release 3.23.15
-* Neuigkeiten-3.23.14:: Änderungen in Release 3.23.14
-* Neuigkeiten-3.23.13:: Änderungen in Release 3.23.13
-* Neuigkeiten-3.23.12:: Änderungen in Release 3.23.12
-* Neuigkeiten-3.23.11:: Änderungen in Release 3.23.11
-* Neuigkeiten-3.23.10:: Änderungen in Release 3.23.10
-* Neuigkeiten-3.23.9:: Änderungen in Release 3.23.9
-* Neuigkeiten-3.23.8:: Änderungen in Release 3.23.8
-* Neuigkeiten-3.23.7:: Änderungen in Release 3.23.7
-* Neuigkeiten-3.23.6:: Änderungen in Release 3.23.6
-* Neuigkeiten-3.23.5:: Änderungen in Release 3.23.5
-* Neuigkeiten-3.23.4:: Änderungen in Release 3.23.4
-* Neuigkeiten-3.23.3:: Änderungen in Release 3.23.3
-* Neuigkeiten-3.23.2:: Änderungen in Release 3.23.2
-* Neuigkeiten-3.23.1:: Änderungen in Release 3.23.1
-* Neuigkeiten-3.23.0:: Änderungen in Release 3.23.0
+* News-3.23.43::
+* News-3.23.42::
+* News-3.23.41::
+* News-3.23.40::
+* News-3.23.39::
+* News-3.23.38::
+* News-3.23.37::
+* News-3.23.36::
+* News-3.23.35::
+* News-3.23.34a::
+* News-3.23.34::
+* News-3.23.33::
+* News-3.23.32::
+* News-3.23.31::
+* News-3.23.30::
+* News-3.23.29::
+* News-3.23.28::
+* News-3.23.27::
+* News-3.23.26::
+* News-3.23.25::
+* News-3.23.24::
+* News-3.23.23::
+* News-3.23.22::
+* News-3.23.21::
+* News-3.23.20::
+* News-3.23.19::
+* News-3.23.18::
+* News-3.23.17::
+* News-3.23.16::
+* News-3.23.15::
+* News-3.23.14::
+* News-3.23.13::
+* News-3.23.12::
+* News-3.23.11::
+* News-3.23.10::
+* News-3.23.9::
+* News-3.23.8::
+* News-3.23.7::
+* News-3.23.6::
+* News-3.23.5::
+* News-3.23.4::
+* News-3.23.3::
+* News-3.23.2::
+* News-3.23.1::
+* News-3.23.0::
@end menu
-@node Neuigkeiten-3.23.43, Neuigkeiten-3.23.42, Neuigkeiten-3.23.x, Neuigkeiten-3.23.x
+@node News-3.23.43, News-3.23.42, News-3.23.x, News-3.23.x
+@c German node Neuigkeiten-3.23.43
@appendixsubsec Änderungen in Release 3.23.43
@itemize @bullet
@item
@@ -51428,7 +51674,7 @@ Eindeutige Fehlermeldung hinzugefügt, die man bei einer Blockierung
Problem mit @code{BDB}-Tabellen und @code{UNIQUE}-Spalten, die als
@code{NULL} definiert wurden, behoben.
@item
-Problem mit @code{myisampack} bei der Benutztung von CHAR-Spalten, die
+Problem mit @code{myisampack} bei der Benutzung von CHAR-Spalten, die
Leerzeichen aufgefüllt wurden, behoben.
@item
Patch von Yuri Dario für OS2 angewandt.
@@ -51436,7 +51682,8 @@ Patch von Yuri Dario für OS2 angewandt.
Bug in @code{--safe-user-create} behoben.
@end itemize
-@node Neuigkeiten-3.23.42, Neuigkeiten-3.23.41, Neuigkeiten-3.23.43, Neuigkeiten-3.23.x
+@node News-3.23.42, News-3.23.41, News-3.23.43, News-3.23.x
+@c German node Neuigkeiten-3.23.42
@appendixsubsec Änderungen in Release 3.23.42
@itemize @bullet
@item
@@ -51472,11 +51719,11 @@ Bug in @code{InnoDB}- und @code{AUTO_INCREMENT}-Spalten behoben.
Bug in @code{InnoDB} und @code{RENAME TABLE}-Spalten behoben.
@item
Kritischer Bug in @code{InnoDB}- und @code{BLOB}-Spalten behoben. Wenn man
-@code{BLOB}-Spalten grösser als 8000 Bytes in einer @code{InnoDB}-Tabelle
+@code{BLOB}-Spalten größer als 8000 Bytes in einer @code{InnoDB}-Tabelle
benutzte, musste man die Tabelle mit @code{mysqldump} sichern, löschen und
aus dem Dump neu aufbauen.
@item
-Grossen Patch für OS/2 von Yuri Dario angewandt.
+Großen Patch für OS/2 von Yuri Dario angewandt.
@item
Problem mit @code{InnoDB} behoben, bei dem man den Fehler @code{Can't
execute the given command...} bekommen konnte, selbst wenn man keine aktive
@@ -51496,13 +51743,14 @@ Automatisches Rollback behoben, das ausgeführt wurde, wenn das Beenden
eines Threads keinen anderen Thread blockiert.
@end itemize
-@node Neuigkeiten-3.23.41, Neuigkeiten-3.23.40, Neuigkeiten-3.23.42, Neuigkeiten-3.23.x
+@node News-3.23.41, News-3.23.40, News-3.23.42, News-3.23.x
+@c German node Neuigkeiten-3.23.41
@appendixsubsec Änderungen in Release 3.23.41
@itemize @bullet
@item
Option @code{--sql-mode=option[,option[,option]]} hinzugefügt.
-@xref{Kommandozeilenoptionen}.
+@xref\{Command-line options}.
@item
Mögliches Problem mit @code{shutdown} auf Solaris behoben, wobei die
@file{.pid}-Datei nicht gelöscht wurde.
@@ -51540,7 +51788,8 @@ Bug in @code{SELECT DISTINCT ... HAVING} behoben, der die Fehlermeldung
@end itemize
-@node Neuigkeiten-3.23.40, Neuigkeiten-3.23.39, Neuigkeiten-3.23.41, Neuigkeiten-3.23.x
+@node News-3.23.40, News-3.23.39, News-3.23.41, News-3.23.x
+@c German node Neuigkeiten-3.23.40
@appendixsubsec Änderungen in Release 3.23.40
@itemize @bullet
@@ -51571,8 +51820,8 @@ Wert 0 enthält.
Wenn man @code{SIGHUP} an @code{mysqld} schickt, werden jetzt nur die Logs
auf Platte zurückgeschrieben (flush), nicht die Replikation zurückgesetzt.
@item
-Parser in Ordnung gebracht, so dass er jetzt Fliesskommazahlen des Typs
-@code{1.0e1} (kein Vorzeichen nach @code{e}) zulässt.
+Parser in Ordnung gebracht, so dass er jetzt Fließkommazahlen des Typs
+@code{1.0e1} (kein Vorzeichen nach @code{e}) zuläßt.
@item
Option @code{--force} für @code{myisamchk} aktualisiert jetzt auch Zustände
(Status).
@@ -51601,7 +51850,8 @@ wird nicht unter einer Open-Source-Lizenz herausgegeben.
@end itemize
-@node Neuigkeiten-3.23.39, Neuigkeiten-3.23.38, Neuigkeiten-3.23.40, Neuigkeiten-3.23.x
+@node News-3.23.39, News-3.23.38, News-3.23.40, News-3.23.x
+@c German node Neuigkeiten-3.23.39
@appendixsubsec Änderungen in Release 3.23.39
@itemize @bullet
@@ -51623,7 +51873,7 @@ fehlschlug.
@code{myisamchk --fast --force} repariert jetzt keine Tabellen mehr, bei
denen nur der Öffnen-Zähler falsch ist.
@item
-Funktionen zur Handhabung von ymbolischen Links hinzugefügt, um sich das
+Funktionen zur Handhabung von symbolischen Links hinzugefügt, um sich das
Leben in Version 4.0 zu erleichtern.
@item
Wir benutzen jetzt die @code{-lcma}-Thread-Bibliothek unter HP-UX 10.20, so
@@ -51643,12 +51893,13 @@ TABLE} wartete, behoben.
Coredump-Bug in InnoDB behoben, wenn der Tabellenplatz (Tablespace) voll
war.
@item
-Problem mit @code{MERGE}-Tabellen und grossen Tabellen (> 4 GB) und der
+Problem mit @code{MERGE}-Tabellen und großen Tabellen (> 4 GB) und der
Benutzung von @code{ORDER BY} behoben.
@end itemize
-@node Neuigkeiten-3.23.38, Neuigkeiten-3.23.37, Neuigkeiten-3.23.39, Neuigkeiten-3.23.x
+@node News-3.23.38, News-3.23.37, News-3.23.39, News-3.23.x
+@c German node Neuigkeiten-3.23.38
@appendixsubsec Änderungen in Release 3.23.38
@itemize @bullet
@@ -51702,7 +51953,8 @@ Bug mit @code{LOCK TABLE} und BDB-Tabellen behoben.
@end itemize
-@node Neuigkeiten-3.23.37, Neuigkeiten-3.23.36, Neuigkeiten-3.23.38, Neuigkeiten-3.23.x
+@node News-3.23.37, News-3.23.36, News-3.23.38, News-3.23.x
+@c German node Neuigkeiten-3.23.37
@appendixsubsec Änderungen in Release 3.23.37
@itemize @bullet
@@ -51716,7 +51968,7 @@ Bug bei der Benutzung von @code{HEAP}-Tabellen mit @code{LIKE} behoben.
@code{INNOBASE} in @code{InnoDB} geändert (weil der @code{INNOBASE}-Name
bereits benutzt wurde). Alle @code{configure}-Optionen und
@code{mysqld}-Startoptionen benutzen jetzt @code{innodb} anstelle von
-@code{innobase}. Das heisst, dass Sie jegliche Konfigurationsdateien, in
+@code{innobase}. Das heißt, dass Sie jegliche Konfigurationsdateien, in
denen Sie @code{innobase}-Optionen benutzt haben, ändern müssen, bevor Sie
auf diese Version aktualisieren!
@item
@@ -51748,7 +52000,7 @@ IS NULL} aktualisierte / löschte nicht alle Zeilen.
unterstützen.
@item
Bug bei der Benutzung von DATE-Funktionen auf
-@code{TEXT}/@code{BLOB}-Spalten mit falschm Datumsformat behoben.
+@code{TEXT}/@code{BLOB}-Spalten mit falschem Datumsformat behoben.
@item
UDFs (benutzerdefinierte Funktionen) funktionieren jetzt auch unter
Windows (Patch von Ralph Masona).
@@ -51770,7 +52022,7 @@ Signale werden frühzeitig initialisiert, um Problem mit Signalen in
Innobase zu vermeiden.
@item
Patch für den @code{tis620}-Zeichensatz hinzugefügt, um Vergleiche
-unabhängig von der verwendeten Gross-/Kleinschreibung zu machen und einen
+unabhängig von der verwendeten Groß-/Kleinschreibung zu machen und einen
Bug in @code{LIKE} für diesen Zeichensatz zu beheben. @strong{HINWEIS}:
Alle Tabellen, die den @code{tis620}-Zeichensatz benutzen, müssen mit
@code{myisamchk -r} oder @code{REPAIR TABLE} in Ordnung gebracht werden!
@@ -51779,14 +52031,15 @@ Alle Tabellen, die den @code{tis620}-Zeichensatz benutzen, müssen mit
@end itemize
-@node Neuigkeiten-3.23.36, Neuigkeiten-3.23.35, Neuigkeiten-3.23.37, Neuigkeiten-3.23.x
+@node News-3.23.36, News-3.23.35, News-3.23.37, News-3.23.x
+@c German node Neuigkeiten-3.23.36
@appendixsubsec Änderungen in Release 3.23.36
@itemize @bullet
@item
-Bug behoben, der Datenbanknamen mit einem @samp{.}-Zeichen zuliess. Das
+Bug behoben, der Datenbanknamen mit einem @samp{.}-Zeichen zuließ. Das
behebt ein schwerwiegendes Sicherheitsproblem, wenn man @code{mysqld} unter
-dem Benutzer root laufen lässt.
+dem Benutzer root laufen läßt.
@item
Bug behoben, wenn die Erzeugung eines Threads fehlschlägt (das konnte bei
der Herstellung SEHR vieler Verbindungen in kurzer Zeit passieren).
@@ -51825,7 +52078,8 @@ werden kann.
@end itemize
-@node Neuigkeiten-3.23.35, Neuigkeiten-3.23.34a, Neuigkeiten-3.23.36, Neuigkeiten-3.23.x
+@node News-3.23.35, News-3.23.34a, News-3.23.36, News-3.23.x
+@c German node Neuigkeiten-3.23.35
@appendixsubsec Änderungen in Release 3.23.35
@itemize @bullet
@@ -51846,17 +52100,19 @@ Handhabung von Argumenten im Benchmark-Skript @file{run-all-tests} behoben.
@end itemize
-@node Neuigkeiten-3.23.34a, Neuigkeiten-3.23.34, Neuigkeiten-3.23.35, Neuigkeiten-3.23.x
+@node News-3.23.34a, News-3.23.34, News-3.23.35, News-3.23.x
+@c German node Neuigkeiten-3.23.34a
@appendixsubsec Änderungen in Release 3.23.34a
@itemize @bullet
@item
-Zusätzliche Dateien zur Distribution hinzgefügt, die es ermöglichen, mit
+Zusätzliche Dateien zur Distribution hinzugefügt, die es ermöglichen, mit
@code{INNOBASE}-Unterstützung zu kompilieren.
@end itemize
-@node Neuigkeiten-3.23.34, Neuigkeiten-3.23.33, Neuigkeiten-3.23.34a, Neuigkeiten-3.23.x
+@node News-3.23.34, News-3.23.33, News-3.23.34a, News-3.23.x
+@c German node Neuigkeiten-3.23.34
@appendixsubsec Änderungen in Release 3.23.34
@itemize @bullet
@@ -51879,7 +52135,7 @@ zum Hängen bringen konnte.
@code{mysql->server_capabilities}, wenn der Server einen
transaktionssicheren Handler unterstützt.
@item
-@code{LOAD DATA INFILE} lässt jetzt das Einfügen numerischer Werte in
+@code{LOAD DATA INFILE} läßt jetzt das Einfügen numerischer Werte in
@code{ENUM}- und @code{SET}-Spalten zu.
@item
Fehlerdiagnose beim Slave-Thread-Exit verbessert.
@@ -51939,7 +52195,8 @@ Fehlermeldung nicht korrekt erzeugt.
@end itemize
-@node Neuigkeiten-3.23.33, Neuigkeiten-3.23.32, Neuigkeiten-3.23.34, Neuigkeiten-3.23.x
+@node News-3.23.33, News-3.23.32, News-3.23.34, News-3.23.x
+@c German node Neuigkeiten-3.23.33
@appendixsubsec Änderungen in Release 3.23.33
@itemize @bullet
@@ -51950,7 +52207,7 @@ werden können, selbst wenn ein DNS-Lookup lange Zeit braucht.
@item
@code{--character-sets-dir} für @code{myisampack} hinzugefügt.
@item
-Warningen beim Laufenlassen von @code{REPAIR TABLE ... EXTENDED} entfernt.
+Warnungen beim Laufenlassen von @code{REPAIR TABLE ... EXTENDED} entfernt.
@item
Bug, der einen Coredump bei der Benutzung von @code{GROUP BY} auf ein Alias
verursachte, wobei der Alias dasselbe wie ein existierender Spaltenname
@@ -51999,7 +52256,7 @@ eingeführt wurde.
Replikationsstörungen ohne volle Datenbankkopie wiederherzustellen.
@item
@code{max_binlog_size}-Variable hinzugefügt; die Binär-Log-Datei wird
-automatisch rotiert, wenn die Grösse die Grenze überschreitet.
+automatisch rotiert, wenn die Größe die Grenze überschreitet.
@item
@code{Last_error}, @code{Last_errno} und @code{Slave_skip_counter} für
@code{SHOW SLAVE STATUS} hinzugefügt.
@@ -52027,7 +52284,7 @@ Portabilitätsbehebungen für OpenBSD und OS/2.
@code{--temp-pool}-Option zu @code{mysqld} hinzugefügt. Das Benutzen dieser
Option führt dazu, dass temporäre Dateien nur einen kleinen Satz von Namen
benutzen, statt eines eindeutigen Namens für jede neue Datei. Das ist ein
-Workaround um ein Problem im Linux-Kernel beim Erzeugen einer grossen Menge
+Workaround um ein Problem im Linux-Kernel beim Erzeugen einer großen Menge
neuer Dateien mit unterschiedlichen Namen. Beim alten Verhalten scheint es
so, als ein Linux ein Speicher-'Loch' hätte, weil zum
Verzeichniseintrags-Cache statt zum Festplatten-Cache zugewiesen
@@ -52035,7 +52292,8 @@ Verzeichniseintrags-Cache statt zum Festplatten-Cache zugewiesen
@end itemize
-@node Neuigkeiten-3.23.32, Neuigkeiten-3.23.31, Neuigkeiten-3.23.33, Neuigkeiten-3.23.x
+@node News-3.23.32, News-3.23.31, News-3.23.33, News-3.23.x
+@c German node Neuigkeiten-3.23.32
@appendixsubsec Änderungen in Release 3.23.32
@itemize @bullet
@@ -52080,7 +52338,8 @@ Bug behoben, der einen Coredump auf dem Slave bei der Replikation von
@end itemize
-@node Neuigkeiten-3.23.31, Neuigkeiten-3.23.30, Neuigkeiten-3.23.32, Neuigkeiten-3.23.x
+@node News-3.23.31, News-3.23.30, News-3.23.32, News-3.23.x
+@c German node Neuigkeiten-3.23.31
@appendixsubsec Änderungen in Release 3.23.31
@itemize @bullet
@@ -52096,11 +52355,11 @@ Problem behoben, so dass das MySQL-RPM nicht mehr von Perl5 abhängt.
@item
Einige Probleme mit @code{HEAP}-Tabellen unter Windows behoben.
@item
-s@code{SHOW TABLE STATUS} zeigte nicht die korrekte durchschnittliche
-Zeilenlänge bei Tabellen grösser als 4 GB.
+@code{SHOW TABLE STATUS} zeigte nicht die korrekte durchschnittliche
+Zeilenlänge bei Tabellen größer als 4 GB.
@item
@code{CHECK TABLE ... EXTENDED} prüften keine Zeilen-Links für Tabellen
-fester Grösse.
+fester Größe.
@item
Option @code{MEDIUM} für @code{CHECK TABLE} hinzugefügt.
@item
@@ -52143,7 +52402,8 @@ liest.
@end itemize
-@node Neuigkeiten-3.23.30, Neuigkeiten-3.23.29, Neuigkeiten-3.23.31, Neuigkeiten-3.23.x
+@node News-3.23.30, News-3.23.29, News-3.23.31, News-3.23.x
+@c German node Neuigkeiten-3.23.30
@appendixsubsec Änderungen in Release 3.23.30
@itemize @bullet
@@ -52155,7 +52415,7 @@ liest.
@code{myisamchk -k#} funktioniert jetzt wieder.
@item
Problem mit Replikation behoben, wenn die Binär-Log-Datei-Datei auf
-32-Bit-Systemen grösser als 2 GB wurde.
+32-Bit-Systemen größer als 2 GB wurde.
@item
@code{LOCK TABLES} startet jetzt automatisch eine neue Transaktion.
@item
@@ -52186,9 +52446,9 @@ Bug behoben, bei dem einige Zeilen nicht gefunden wurden, wenn
@code{--bdb-no-sync} funktioniert jetzt.
@item
@code{--bdb-recover} in @code{--bdb-no-recover} geändert, weil recover
-vorgabemässig angeschaltet sein sollte.
+vorgabemäßig angeschaltet sein sollte.
@item
-Die vorgabemässige Anzahl von BDB-Sperren auf 10.000 geändert.
+Die vorgabemäßige Anzahl von BDB-Sperren auf 10.000 geändert.
@item
Bug aus Version 3.23.29 behoben, beim Zuweisen der gemeinsam genutzten
Struktur, die für BDB-Tabellen benötigt wird.
@@ -52208,12 +52468,13 @@ behoben.
@end itemize
-@node Neuigkeiten-3.23.29, Neuigkeiten-3.23.28, Neuigkeiten-3.23.30, Neuigkeiten-3.23.x
+@node News-3.23.29, News-3.23.28, News-3.23.30, News-3.23.x
+@c German node Neuigkeiten-3.23.29
@appendixsubsec Änderungen in Release 3.23.29
@itemize @bullet
@item
-Configure-Aktualisierungen für Tru64, Unterstützung grosser Dateien und
+Configure-Aktualisierungen für Tru64, Unterstützung großer Dateien und
besser TCP-Wrapper-Unterstützung. Von Albert Chin-A-Young.
@item
Bug in @code{<=>}-Operator behoben.
@@ -52245,9 +52506,9 @@ Hostnamen als @code{''} in manchen Fehlermeldungen berichtete.
Bug mit @code{HEAP}-Tabellen behoben; die Variable
@code{max_heap_table_size} wurde nicht benutzt. Jetzt kann entweder
@code{MAX_ROWS} oder @code{max_heap_table_size} benutzt werden, um die
-Grösse einer @code{HEAP}-Tabelle zu beschränken.
+Größe einer @code{HEAP}-Tabelle zu beschränken.
@item
-Die vorgabemässige Server-Kennung auf 1 für Master-Server und 2 für Slaves
+Die vorgabemäßige Server-Kennung auf 1 für Master-Server und 2 für Slaves
geändert, um die Benutzung der Binär-Log-Datei zu erleichtern.
@item
Variable @code{bdb_lock_max} in @code{bdb_max_lock} umbenannt.
@@ -52306,7 +52567,7 @@ Bunce @email{Tim.Bunce@@ig.co.uk} für die Modifizierung von
so abgeändert, dass sie @code{mysql_print_defaults} anstelle verschiedener
Hacks benutzen, um @file{my.cnf}-Dateien zu lesen. Zusätzlich wurde die
Handhabung verschiedener Pfade konsistenter gemacht, in Bezug auf wie
-@code{mysqld} vorgabemässig handhabt.
+@code{mysqld} vorgabemäßig handhabt.
@item
Berkeley-DB-Transaktions-Logs, die nicht mehr in Benutzung sind, werden
automatisch entfernt.
@@ -52347,21 +52608,22 @@ von @code{mysql_options()} gelesen werden, hinzugefügt.
@end itemize
-@node Neuigkeiten-3.23.28, Neuigkeiten-3.23.27, Neuigkeiten-3.23.29, Neuigkeiten-3.23.x
+@node News-3.23.28, News-3.23.27, News-3.23.29, News-3.23.x
+@c German node Neuigkeiten-3.23.28
@appendixsubsec Änderungen in Release 3.23.28
@itemize @bullet
@item
Neue Optionen @code{--pager[=...]}, @code{--no-pager}, @code{--tee=...} und
@code{--no-tee} für den @code{mysql}-Client hinzugefügt. Die entsprechenden
-neuen interaktiven Befehle heissen @code{pager}, @code{nopager}, @code{tee}
+neuen interaktiven Befehle heißen @code{pager}, @code{nopager}, @code{tee}
und @code{notee}. Siehe @xref{mysql, , @code{mysql}}, @code{mysql --help}
und die interaktive Hilfe wegen weiterer Informationen.
@item
Absturz behoben, der beim Fehlschlagen der Reparatur von
@code{MyISAM}-Tabellen auftrat.
@item
-Grösserer Performance-Bug im Tabellensperren-Code behoben, wenn man
+Größerer Performance-Bug im Tabellensperren-Code behoben, wenn man
permanent VIELE @code{SELECT}-, @code{UPDATE}- und @code{INSERT}-Statements
laufen hatte. Das Symptom zeigte sich darin, dass die @code{UPDATE}- und
@code{INSERT}-Anfragen lange gesperrt waren, während neue
@@ -52453,7 +52715,7 @@ in @code{timeout} Sekunden antwortet.
@item
@code{SLAVE START} funktionierte nicht, wenn Sie mit
@code{--skip-slave-start} starteten und vorher nicht explizit @code{CHANGE
-MASTER TO} laufen liessen.
+MASTER TO} laufen ließen.
@item
Die Ausgabe von @code{SHOW MASTER STATUS} in Ordnung gebracht, damit sie
konsistent mit @code{SHOW SLAVE STATUS} ist. (Sie hat jetzt kein
@@ -52484,7 +52746,8 @@ Tabelle mit Zeilen in einer festgelegten Reihenfolge.
@end itemize
-@node Neuigkeiten-3.23.27, Neuigkeiten-3.23.26, Neuigkeiten-3.23.28, Neuigkeiten-3.23.x
+@node News-3.23.27, News-3.23.26, News-3.23.28, News-3.23.x
+@c German node Neuigkeiten-3.23.27
@appendixsubsec Änderungen in Release 3.23.27
@itemize @bullet
@@ -52506,7 +52769,8 @@ Kleinere Portabilitätsbehebungen.
@end itemize
-@node Neuigkeiten-3.23.26, Neuigkeiten-3.23.25, Neuigkeiten-3.23.27, Neuigkeiten-3.23.x
+@node News-3.23.26, News-3.23.25, News-3.23.27, News-3.23.x
+@c German node Neuigkeiten-3.23.26
@appendixsubsec Änderungen in Release 3.23.26
@itemize @bullet
@@ -52568,7 +52832,7 @@ Slave-Thread.
Optimierung von Anfragen, bei denen @code{DISTINCT} nur auf Spalten aus
denselben Tabellen benutzt wird, hinzugefügt.
@item
-Fliesskommazahlen ohne Vorzeichen nach dem Exponent (wie 1e1) werden
+Fließkommazahlen ohne Vorzeichen nach dem Exponent (wie 1e1) werden
zugelassen.
@item
@code{SHOW GRANTS} zeigte nicht immer alle Spaltenberechtigungen.
@@ -52590,7 +52854,8 @@ auf einem Patch von John Jones.
@end itemize
-@node Neuigkeiten-3.23.25, Neuigkeiten-3.23.24, Neuigkeiten-3.23.26, Neuigkeiten-3.23.x
+@node News-3.23.25, News-3.23.24, News-3.23.26, News-3.23.x
+@c German node Neuigkeiten-3.23.25
@appendixsubsec Änderungen in Release 3.23.25
@itemize @bullet
@@ -52654,7 +52919,7 @@ Solaris) zu sperren, hinzugefügt.
3.23.23).
@item
Bessere Unterstützung für @code{MERGE}-Tabellen (Schlüssel, Mapping,
-Erzeugung, Dokumention und mehr) hinzugefügt. @xref{MERGE}.
+Erzeugung, Dokumentation und mehr) hinzugefügt. @xref{MERGE}.
@item
Bug in @code{mysqldump} aus Version 3.23 behoben, der dazu führte, dass
einige @code{CHAR}-Spalten nicht in Anführungsstrichen standen.
@@ -52663,7 +52928,7 @@ einige @code{CHAR}-Spalten nicht in Anführungsstrichen standen.
zusammengefasst.
@item
@code{OPTIMIZE TABLE} wird jetzt auf @code{REPAIR} mit Statistiken und
-Sortieren des Index-Baums gemappt. Das heisst, das es momentan nur auf
+Sortieren des Index-Baums gemappt. Das heißt, das es momentan nur auf
@code{MyISAM}-Tabellen funktioniert.
@item
Einen pre-alloced Block zu root_malloc hinzugefügt, um weniger mallocs zu
@@ -52686,7 +52951,8 @@ machen.
@end itemize
-@node Neuigkeiten-3.23.24, Neuigkeiten-3.23.23, Neuigkeiten-3.23.25, Neuigkeiten-3.23.x
+@node News-3.23.24, News-3.23.23, News-3.23.25, News-3.23.x
+@c German node Neuigkeiten-3.23.24
@appendixsubsec Änderungen in Release 3.23.24
@itemize @bullet
@@ -52699,7 +52965,7 @@ mit @code{X} anders als 14 oder 8 als Zeichenketten.
@item
Sortierreihenfolge für latin1 abgeändert im Vergleich zu MySQL-Version vor
3.23.23. Jede Tabelle mit @code{CHAR}-Spalten, die Zeichen mit ASCII-Werten
-grösser als 128 enthalten darf, die vor Version 3.23.22 erzeugt oder
+größer als 128 enthalten darf, die vor Version 3.23.22 erzeugt oder
geändert wurde, muss repariert werden!
@item
Kleines Speicherleck behoben, das in Version 3.23.22 beim Einfügen einer
@@ -52713,7 +52979,8 @@ empfohlen gekennzeichnet).
@end itemize
-@node Neuigkeiten-3.23.23, Neuigkeiten-3.23.22, Neuigkeiten-3.23.24, Neuigkeiten-3.23.x
+@node News-3.23.23, News-3.23.22, News-3.23.24, News-3.23.x
+@c German node Neuigkeiten-3.23.23
@appendixsubsec Änderungen in Release 3.23.23
@itemize @bullet
@@ -52726,7 +52993,7 @@ Option @code{--core-file} für @code{mysqld} hinzugefügt, um eine Core-Datei
unter Linux zu erhalten, wenn @code{mysqld} durch das SIGSEGV-Signal
stirbt.
@item
-MySQL-Client @code{mysql} startet jetzt vorgabemässig mit
+MySQL-Client @code{mysql} startet jetzt vorgabemäßig mit
@code{--no-named-commands} (@code{-g}). Diese Option kann mit
@code{--enable-named-commands} (@code{-G}) abgeschaltet werden. Das kann in
manchen Fällen Inkompatibilitätsprobleme hervorrufen, zum Beispiel in
@@ -52756,7 +53023,7 @@ werden jetzt auf Platte zurückgeschrieben (flush).
@item
Verhalten von @code{--enable-thread-safe-client} so geändert, dass sowohl
nicht gethreadete (@code{-lmysqlclient}) als auch gethreadete
-(@code{-lmysqlclient_r}) Bibliotheken eingebaut werden. Benuter, die gegen
+(@code{-lmysqlclient_r}) Bibliotheken eingebaut werden. Benutzer, die gegen
ein gethreadetes @code{-lmysqlclient} linkten, müssen jetzt gegen
@code{libmysqlclient_r} linken.
@item
@@ -52784,7 +53051,7 @@ als @code{***DEAD***} in @code{SHOW PROCESSLIST} erschienen.
@item
Eine Sperre in unserem thr_rwlock-Code beseitigt, die dazu führen konnte,
dass SELECTs, die zur selben Zeit laufen wie gleichzeitige Einfügevorgänge,
-abstürzen. Das betrifft nur Systeme, die nich den
+abstürzen. Das betrifft nur Systeme, die nicht den
@code{pthread_rwlock_rdlock}-Code haben.
@item
Beim Löschen von Zeilen mit einem nicht eindeutigen Schlüssel in einer
@@ -52837,7 +53104,8 @@ reservierten Wort.
@end itemize
-@node Neuigkeiten-3.23.22, Neuigkeiten-3.23.21, Neuigkeiten-3.23.23, Neuigkeiten-3.23.x
+@node News-3.23.22, News-3.23.21, News-3.23.23, News-3.23.x
+@c German node Neuigkeiten-3.23.22
@appendixsubsec Änderungen in Release 3.23.22
@itemize @bullet
@@ -52869,7 +53137,7 @@ Bedeutung von @code{-F, --fast} für @code{myisamchk} geändert. Option
@code{ANALYZE tabelle} zum Aktualisieren von Schlüsselstatistiken für
Tabellen hinzugefügt.
@item
-Binäreinheiten @code{0x...} abgeändert, so dass sie vorgabemässig als
+Binäreinheiten @code{0x...} abgeändert, so dass sie vorgabemäßig als
Ganzzahlen betrachtet werden.
@item
Fehlerbehebung für SCO und @code{SHOW PROCESSLIST}.
@@ -52878,13 +53146,14 @@ Fehlerbehebung für SCO und @code{SHOW PROCESSLIST}.
hinzugefügt.
@item
Neu eingeführten Bug in @code{MyISAM} behoben, bei dem die Index-Datei
-nicht grösser als 64 MB werden durfte.
+nicht größer als 64 MB werden durfte.
@item
@code{SHOW MASTER STATUS} und @code{SHOW SLAVE STATUS} hinzugefügt.
@end itemize
-@node Neuigkeiten-3.23.21, Neuigkeiten-3.23.20, Neuigkeiten-3.23.22, Neuigkeiten-3.23.x
+@node News-3.23.21, News-3.23.20, News-3.23.22, News-3.23.x
+@c German node Neuigkeiten-3.23.21
@appendixsubsec Änderungen in Release 3.23.21
@itemize @bullet
@@ -52934,7 +53203,8 @@ vorstellen zu können.
@end itemize
-@node Neuigkeiten-3.23.20, Neuigkeiten-3.23.19, Neuigkeiten-3.23.21, Neuigkeiten-3.23.x
+@node News-3.23.20, News-3.23.19, News-3.23.21, News-3.23.x
+@c German node Neuigkeiten-3.23.20
@appendixsubsec Änderungen in Release 3.23.20
@itemize @bullet
@@ -52946,7 +53216,8 @@ Bug in Version 3.23.19 behoben; @code{DELETE FROM tabelle} entfernte die
@end itemize
-@node Neuigkeiten-3.23.19, Neuigkeiten-3.23.18, Neuigkeiten-3.23.20, Neuigkeiten-3.23.x
+@node News-3.23.19, News-3.23.18, News-3.23.20, News-3.23.x
+@c German node Neuigkeiten-3.23.19
@appendixsubsec Änderungen in Release 3.23.19
@itemize @bullet
@@ -52969,7 +53240,7 @@ Untermenge von Zeilen zu finden, die sortiert werden müssen.
Der Name von @code{print_defaults} wurde in @code{my_print_defaults}
geändert, um Namenskonflikte zu vermeiden.
@item
-@code{NULLIF()} funktioniert jetzt gemäss ANSI-SQL99.
+@code{NULLIF()} funktioniert jetzt gemäß ANSI-SQL99.
@item
@code{net_read_timeout} und @code{net_write_timeout} als Startparameter für
@code{mysqld} hinzugefügt.
@@ -52985,11 +53256,12 @@ Coredump-Bug bei der Benutzung von @code{ORDER BY} auf
@code{CONV()}-Ausdruck behoben.
@item @code{LOAD TABLE FROM MASTER} hinzugefügt.
@item @code{FLUSH MASTER} und @code{FLUSH SLAVE} hinzugefügt.
-@item Grosses/kleines 'endian'-Problem in der Replikation behoben.
+@item Großes/kleines 'endian'-Problem in der Replikation behoben.
@end itemize
-@node Neuigkeiten-3.23.18, Neuigkeiten-3.23.17, Neuigkeiten-3.23.19, Neuigkeiten-3.23.x
+@node News-3.23.18, News-3.23.17, News-3.23.19, News-3.23.x
+@c German node Neuigkeiten-3.23.18
@appendixsubsec Änderungen in Release 3.23.18
@itemize @bullet
@@ -53013,7 +53285,8 @@ Problem mit myisamchk und @code{RAID}-Tabellen behoben.
@end itemize
-@node Neuigkeiten-3.23.17, Neuigkeiten-3.23.16, Neuigkeiten-3.23.18, Neuigkeiten-3.23.x
+@node News-3.23.17, News-3.23.16, News-3.23.18, News-3.23.x
+@c German node Neuigkeiten-3.23.17
@appendixsubsec Änderungen in Release 3.23.17
@itemize @bullet
@@ -53029,7 +53302,7 @@ Tabelle nur eine übereinstimmende Zeile hatte.
4 @code{my.cnf}-Beispiel-Dateien im @file{Support-files}-Verzeichnis
hinzugefügt.
@item
-@code{duplicated key}-Problem bei der Ausführung grosser @code{GROUP BY}s
+@code{duplicated key}-Problem bei der Ausführung großer @code{GROUP BY}s
behoben. (Dieser Bug wurde wahrscheinlich in Version 3.23.15 eingeführt).
@item
Syntax für @code{INNER JOIN} geändert, um ANSI-SQL zu entsprechen.
@@ -53050,10 +53323,10 @@ Bug beim Lesen komprimierter Tabellen mit vielen Threads behoben.
@item
Symbolische-Links-Unterstützung für Windows.
@item
-Protokoll geändert, so dass der Client weiss, ob der Server im AUTOCOMMIT-
+Protokoll geändert, so dass der Client weiß, ob der Server im AUTOCOMMIT-
Modus ist und ob es eine anhängige Transaktion gibt. Wenn das der Fall ist,
gibt die Client-Bibliothek einen Fehler aus, bevor sie sich wieder mit dem
-Server verbindet, damit der Client weiss, dass der Server ein Rollback
+Server verbindet, damit der Client weiß, dass der Server ein Rollback
durchgeführt hat. Das Protokoll ist noch abwärtskompatibel mit den alten
Clients.
@item
@@ -53078,7 +53351,8 @@ Blockierungsüberprüfung für @code{INSERT DELAYED} hinzugefügt.
@end itemize
-@node Neuigkeiten-3.23.16, Neuigkeiten-3.23.15, Neuigkeiten-3.23.17, Neuigkeiten-3.23.x
+@node News-3.23.16, News-3.23.15, News-3.23.17, News-3.23.x
+@c German node Neuigkeiten-3.23.16
@appendixsubsec Änderungen in Release 3.23.16
@itemize @bullet
@@ -53112,7 +53386,8 @@ um auf Datenbanken zu beschränken, die repliziert werden.
@end itemize
-@node Neuigkeiten-3.23.15, Neuigkeiten-3.23.14, Neuigkeiten-3.23.16, Neuigkeiten-3.23.x
+@node News-3.23.15, News-3.23.14, News-3.23.16, News-3.23.x
+@c German node Neuigkeiten-3.23.15
@appendixsubsec Änderungen in Release 3.23.15
@itemize @bullet
@@ -53136,7 +53411,7 @@ extended-status} betrachtet werden.
@item
Funktionen @code{INET_NTOA()} und @code{INET_ATON()} hinzugefügt.
@item
-Der vorgabemässige Typ von @code{IF()} hängt jetzt vom zweiten und dritten
+Der vorgabemäßige Typ von @code{IF()} hängt jetzt vom zweiten und dritten
Argument ab und nicht nur vom zweiten.
@item
Fall behoben, bei dem @code{myisamchk} beim Versuch, eine Tabelle zu
@@ -53182,7 +53457,7 @@ denen der Teil ein konstanter Ausdruck im @code{WHERE}-Teil ist. Indexe
können jetzt benutzt werden, selbst wenn das @code{ORDER BY} nicht genau
mit dem Index übereinstimmt, solange alle nicht benutzten Index-Teile und
alle zusätzlichen @code{ORDER BY}-Spalten Konstanten in der
-@code{WHERE}-Klausel sind. @xref{MySQL-Indexe}.
+@code{WHERE}-Klausel sind. @xref\{MySQL indexes}.
@item
@code{UPDATE} und @code{DELETE} auf einen gesamten eindeutigen Schlüssel im
@code{WHERE}-Teil ist jetzt schneller als vorher.
@@ -53193,7 +53468,8 @@ Coredump in LOAD_FILE(NULL) behoben.
@end itemize
-@node Neuigkeiten-3.23.14, Neuigkeiten-3.23.13, Neuigkeiten-3.23.15, Neuigkeiten-3.23.x
+@node News-3.23.14, News-3.23.13, News-3.23.15, News-3.23.x
+@c German node Neuigkeiten-3.23.14
@appendixsubsec Änderungen in Release 3.23.14
@itemize @bullet
@@ -53205,7 +53481,7 @@ Kritischen Bug in @code{myisamchk} behoben, wobei es den Header in der
Index-Datei aktualisierte, wenn man die Tabelle nur prüfte. Das brachte den
@code{mysqld}-Daemon durcheinander, wenn er dieselbe Tabelle zur gleichen
Zeit aktualisierte. Jetzt wird der Status in der Index-Datei nur dann
-akualisiert, wenn man @code{--update-state} benutzt. Bei älteren
+aktualisiert, wenn man @code{--update-state} benutzt. Bei älteren
@code{myisamchk}-Versionen sollten Sie @code{--read-only} benutzen, wenn
Sie Tabellen nur prüfen, wenn es auch nur die geringste Chance gibt, dass
der @code{mysqld}-Server zur gleichen Zeit auf der Tabelle arbeitet!
@@ -53243,7 +53519,8 @@ benutzt werden, die nicht im @code{GROUP BY}-Teil angegeben wurden.
@end itemize
-@node Neuigkeiten-3.23.13, Neuigkeiten-3.23.12, Neuigkeiten-3.23.14, Neuigkeiten-3.23.x
+@node News-3.23.13, News-3.23.12, News-3.23.14, News-3.23.x
+@c German node Neuigkeiten-3.23.13
@appendixsubsec Änderungen in Release 3.23.13
@itemize @bullet
@@ -53251,7 +53528,7 @@ benutzt werden, die nicht im @code{GROUP BY}-Teil angegeben wurden.
Problem behoben bei der Ausführung von Sperren auf dieselbe Tabelle mehr
als zweimal im selben @code{LOCK TABLE}-Befehl. Dadurch wurde das Problem
behoben, das man bekam, wenn man test-ATIS test mit @code{--fast} oder
-@code{--check-only-changed} laufen liess.
+@code{--check-only-changed} laufen ließ.
@item
Option @code{SQL_Puffer_RESULT} für @code{SELECT} hinzugefügt.
@item
@@ -53272,7 +53549,8 @@ Mögliche Endlosschleife bei der Zeitstempel-Berechnung repariert.
@end itemize
-@node Neuigkeiten-3.23.12, Neuigkeiten-3.23.11, Neuigkeiten-3.23.13, Neuigkeiten-3.23.x
+@node News-3.23.12, News-3.23.11, News-3.23.13, News-3.23.x
+@c German node Neuigkeiten-3.23.12
@appendixsubsec Änderungen in Release 3.23.12
@itemize @bullet
@@ -53326,7 +53604,8 @@ funktionieren.
@end itemize
-@node Neuigkeiten-3.23.11, Neuigkeiten-3.23.10, Neuigkeiten-3.23.12, Neuigkeiten-3.23.x
+@node News-3.23.11, News-3.23.10, News-3.23.12, News-3.23.x
+@c German node Neuigkeiten-3.23.11
@appendixsubsec Änderungen in Release 3.23.11
@itemize @bullet
@@ -53369,7 +53648,7 @@ hinzugefügt.
gleichzeitige Einfügevorgänge sperrt (das wird von @code{mysqldump}
benutzt).
@item
-@code{LOCK TABLES ... READ} lässt keine gleichzeitigen Einfügevorgänge mehr
+@code{LOCK TABLES ... READ} läßt keine gleichzeitigen Einfügevorgänge mehr
zu.
@item
Option @code{--skip-delay-key-write} für @code{mysqld} hinzugefügt.
@@ -53385,7 +53664,8 @@ zu machen.
@end itemize
-@node Neuigkeiten-3.23.10, Neuigkeiten-3.23.9, Neuigkeiten-3.23.11, Neuigkeiten-3.23.x
+@node News-3.23.10, News-3.23.9, News-3.23.11, News-3.23.x
+@c German node Neuigkeiten-3.23.10
@appendixsubsec Änderungen in Release 3.23.10
@itemize @bullet
@@ -53395,7 +53675,8 @@ wurde, wenn man @code{LOCK TABLES} ausführte.
@end itemize
-@node Neuigkeiten-3.23.9, Neuigkeiten-3.23.8, Neuigkeiten-3.23.10, Neuigkeiten-3.23.x
+@node News-3.23.9, News-3.23.8, News-3.23.10, News-3.23.x
+@c German node Neuigkeiten-3.23.9
@appendixsubsec Änderungen in Release 3.23.9
@itemize @bullet
@@ -53442,7 +53723,7 @@ konstante2}
Bug behoben, bei dem eine Änderung aller @code{VARCHAR}-Spalten in
@code{CHAR}-Spalten den Spaltentyp nicht von dynamisch auf fest änderte.
@item
-Fliesskomma-Ausnahmefehler für FreeBSD abgeschaltet, um Coredump beim
+Fließkomma-Ausnahmefehler für FreeBSD abgeschaltet, um Coredump beim
Ausführen von @code{SELECT floor(pow(2,63))} zu vermeiden.
@item
@code{mysqld}-Startoption @code{--delay-key-write} in
@@ -53452,7 +53733,7 @@ Ausführen von @code{SELECT floor(pow(2,63))} zu vermeiden.
alle Probleme mit @code{HEAP}-Tabellen bei der Benutzung von
Nicht-@code{UNIQUE}-Schlüsseln beheben.
@item
-Optionen für die Ausgabe vorgabemässiger Argumente für alle Clients
+Optionen für die Ausgabe vorgabemäßiger Argumente für alle Clients
hinzugefügt.
@item
@code{--log-slow-queries} für @code{mysqld} hinzugefügt, um alle Anfragen
@@ -53471,12 +53752,13 @@ behoben.
@end itemize
-@node Neuigkeiten-3.23.8, Neuigkeiten-3.23.7, Neuigkeiten-3.23.9, Neuigkeiten-3.23.x
+@node News-3.23.8, News-3.23.7, News-3.23.9, News-3.23.x
+@c German node Neuigkeiten-3.23.8
@appendixsubsec Änderungen in Release 3.23.8
@itemize @bullet
@item
-Problem bei der Handhabung von Index-Dateien grösser als 8 GB behoben.
+Problem bei der Handhabung von Index-Dateien größer als 8 GB behoben.
@item
neueste Patches für mit-pThread für NetBSD angewandt.
@item
@@ -53494,7 +53776,7 @@ Option @code{--delay-key-write} schaltete verzögertes Schlüssel-Schreiben
nicht an.
@item
Aktualisierung von @code{TEXT}-Spalten, die nur Änderungen der
-Gross-/Kleinschreibung beinhalteten, in Ordnung gebracht.
+Groß-/Kleinschreibung beinhalteten, in Ordnung gebracht.
@item
@code{INSERT DELAYED} aktualisiert jetzt Timestamps, die angegeben sind.
@item
@@ -53513,11 +53795,12 @@ Speicher zugriff, wenn er sehr komplizierte @code{GROUP BY}-Anfragen
ausführte.
@item
Coredump behoben, wenn man eine beschädigte Tabelle erhielt, in der ein
-@code{ENUM}-Feldwert zu gross war.
+@code{ENUM}-Feldwert zu Groß war.
@end itemize
-@node Neuigkeiten-3.23.7, Neuigkeiten-3.23.6, Neuigkeiten-3.23.8, Neuigkeiten-3.23.x
+@node News-3.23.7, News-3.23.6, News-3.23.8, News-3.23.x
+@c German node Neuigkeiten-3.23.7
@appendixsubsec Änderungen in Release 3.23.7
@itemize @bullet
@@ -53585,7 +53868,8 @@ geändert.
@end itemize
-@node Neuigkeiten-3.23.6, Neuigkeiten-3.23.5, Neuigkeiten-3.23.7, Neuigkeiten-3.23.x
+@node News-3.23.6, News-3.23.5, News-3.23.7, News-3.23.x
+@c German node Neuigkeiten-3.23.6
@appendixsubsec Änderungen in Release 3.23.6
@itemize @bullet
@@ -53602,7 +53886,7 @@ Temporäre Tabellen fangen jetzt mit @code{#sql} an.
@item
Quoten von Bezeichnern mit @code{`} (@code{"} im @code{--ansi}-Modus).
@item
-Jetzt wird snprintf() bei der Ausgabe von Fliesskommazahlen benutzt, um
+Jetzt wird snprintf() bei der Ausgabe von Fließkommazahlen benutzt, um
einige Puffer-Überläufe unter FreeBSD zu vermeiden.
@item
@code{[floor()} überlaufsicher unter FreeBSD gemacht.
@@ -53646,7 +53930,8 @@ Funktion @code{ORD(zeichenkette)} hinzugefügt.
@end itemize
-@node Neuigkeiten-3.23.5, Neuigkeiten-3.23.4, Neuigkeiten-3.23.6, Neuigkeiten-3.23.x
+@node News-3.23.5, News-3.23.4, News-3.23.6, News-3.23.x
+@c German node Neuigkeiten-3.23.5
@appendixsubsec Änderungen in Release 3.23.5
@itemize @bullet
@@ -53714,7 +53999,8 @@ Problem mit @code{UDF}-Funktionen behoben.
@end itemize
-@node Neuigkeiten-3.23.4, Neuigkeiten-3.23.3, Neuigkeiten-3.23.5, Neuigkeiten-3.23.x
+@node News-3.23.4, News-3.23.3, News-3.23.5, News-3.23.x
+@c German node Neuigkeiten-3.23.4
@appendixsubsec Änderungen in Release 3.23.4
@itemize @bullet
@@ -53750,15 +54036,16 @@ Berechtigungsüberprüfung für @code{LOAD DATA REPLACE} in Ordnung gebracht.
Automatische Reparatur beschädigter Include-Dateien auf Solaris 2.7
hinzugefügt.
@item
-Einige configure-Probleme behoben, um Probleme bei der Erkennung grosser
+Einige configure-Probleme behoben, um Probleme bei der Erkennung großer
Dateisysteme zu beheben.
@item
@code{REGEXP} ist jetzt unabhängig von der verwendeten
-Gross-/Kleinschreibung, wenn Sie nicht binäre Zeichenketten verwenden.
+Groß-/Kleinschreibung, wenn Sie nicht binäre Zeichenketten verwenden.
@end itemize
-@node Neuigkeiten-3.23.3, Neuigkeiten-3.23.2, Neuigkeiten-3.23.4, Neuigkeiten-3.23.x
+@node News-3.23.3, News-3.23.2, News-3.23.4, News-3.23.x
+@c German node Neuigkeiten-3.23.3
@appendixsubsec Änderungen in Release 3.23.3
@itemize @bullet
@@ -53777,7 +54064,7 @@ Zeichensatz zu @code{SHOW VARIABLES} hinzugefügt.
@item
Unterstützung von @code{--[leerraum]}-Kommentaren hinzugefügt.
@item
-@code{INSERT into tabelle VALUES ()} wird zugelassen. Das heisst, Sie
+@code{INSERT into tabelle VALUES ()} wird zugelassen. Das heißt, Sie
können jetzt eine leere Wertliste angeben, die in eine Zeile eingefügt
wird, und in der jede Spalte auf ihren Vorgabewert gesetzt wird.
@item
@@ -53801,7 +54088,8 @@ Neue Funktion @code{COALESCE()} hinzugefügt.
@end itemize
-@node Neuigkeiten-3.23.2, Neuigkeiten-3.23.1, Neuigkeiten-3.23.3, Neuigkeiten-3.23.x
+@node News-3.23.2, News-3.23.1, News-3.23.3, News-3.23.x
+@c German node Neuigkeiten-3.23.2
@appendixsubsec Änderungen in Release 3.23.2
@itemize @bullet
@@ -53877,7 +54165,8 @@ Unterstützung für den GB2312 chinesischen Zeichensatz hinzugefügt.
@end itemize
-@node Neuigkeiten-3.23.1, Neuigkeiten-3.23.0, Neuigkeiten-3.23.2, Neuigkeiten-3.23.x
+@node News-3.23.1, News-3.23.0, News-3.23.2, News-3.23.x
+@c German node Neuigkeiten-3.23.1
@appendixsubsec Änderungen in Release 3.23.1
@itemize @bullet
@@ -53886,7 +54175,8 @@ Einige Kompilierungsprobleme behoben.
@end itemize
-@node Neuigkeiten-3.23.0, , Neuigkeiten-3.23.1, Neuigkeiten-3.23.x
+@node News-3.23.0, , News-3.23.1, News-3.23.x
+@c German node Neuigkeiten-3.23.0
@appendixsubsec Änderungen in Release 3.23.0
@itemize @bullet
@@ -53897,7 +54187,7 @@ Features hinzugefügt. @xref{MyISAM}.
Sie können @code{HEAP}-Tabellen im Hauptspeicher erzeugen, die zum
Nachschlagen extrem schnell sind.
@item
-Unterstützung für grosse Dateien (63-Bit) auf Systemen, die grosse Dateien
+Unterstützung für große Dateien (63-Bit) auf Systemen, die große Dateien
unterstützen, hinzugefügt.
@item
Neue Funktion @code{LOAD_FILE(datei)} hinzugefügt, um die Inhalte einer
@@ -53916,7 +54206,7 @@ nicht gerundet und dürfen beim Abruf in wissenschaftlicher Notation sein
@code{REPLACE} ist jetzt schneller als vorher.
@item
@code{LIKE}-Zeichenvergleiche geändert, so dass sie sich wie @code{=}
-verhalten. Das heisst, dass @code{'e' LIKE '@'é'} jetzt WAHR (true) ist
+verhalten. Das heißt, dass @code{'e' LIKE '@'é'} jetzt WAHR (true) ist
(falls hier etwas nicht richtig angezeigt wird: Das letztgenannte 'e' ist
das französische 'e' mit Akzent).
@item
@@ -53957,7 +54247,7 @@ Diese Prozedur ist extrem nützlich, wenn Sie die Daten in Ihrer Tabelle
prüfen wollen!
@item
@code{BINARY}-Cast, um zu erzwingen, dass eine Zeichenkette abhängig von
-der verwendeten Gross-/Kleinschreibung verglichen wird.
+der verwendeten Groß-/Kleinschreibung verglichen wird.
@item
Option @code{--skip-show-database} für @code{mysqld} hinzugefügt.
@item
@@ -53978,7 +54268,7 @@ ODBC-Applikationen zufrieden zu stellen (von @email{shreeve@@uci.edu}).
Das stellt sicher, dass @code{null_spalte NOT IN (...)} nicht mit
@code{NULL}-Werten übereinstimmt.
@item
-Speicherung von Fliesskommawerten in @code{TIME}-Spalten in Ordnung
+Speicherung von Fließkommawerten in @code{TIME}-Spalten in Ordnung
gebracht.
@item
Das Parsen von @code{TIME}-Zeichenketten geändert, so dass es strenger ist.
@@ -53994,15 +54284,15 @@ hinzugefügt.
@item
@code{LOW_PRIORITY}-Attribut für @code{LOAD DATA INFILE} hinzugefügt.
@item
-Der vorgabemässige Index-Name benutzt jetzt dieselbe Gross-/Kleinschreibung
+Der vorgabemäßige Index-Name benutzt jetzt dieselbe Groß-/Kleinschreibung
wie der benutzte Spaltenname.
@item
-Vorgabemässige Anzahl von Verbindungen auf 100 geändert.
+Vorgabemäßige Anzahl von Verbindungen auf 100 geändert.
@item
-Bei der Benutzung von @code{LOAD DATA INFILE} werden grössere Puffer
+Bei der Benutzung von @code{LOAD DATA INFILE} werden größere Puffer
verwendet.
@item
-@code{DECIMAL(x,y)} funktioniert jetzt gemäss ANSI-SQL.
+@code{DECIMAL(x,y)} funktioniert jetzt gemäß ANSI-SQL.
@item
Aggregat-UDF-Funktionen. Dank an Andreas F. Bobak @email{bobak@@relog.ch}
hierfür!
@@ -54050,7 +54340,8 @@ Neue @code{CREATE TABLE}-Optionen: @code{PACK_KEYS} und @code{CHECKSUM}.
@end itemize
-@node Portierung, Umgebungsvariablen, Neuigkeiten, Top
+@node Porting, Environment variables, News, Top
+@c German node Portierung
@appendix Anmerkungen zur Portierung auf andere Systeme
@cindex Portierung, auf andere Systeme
@@ -54083,7 +54374,7 @@ Probleme.
Sowohl Server als auch Client benötigen einen funktionierenden C++-Kompiler
(wir benutzen @code{gcc} und haben SparcWorks ausprobiert). Ein anderer
-bekanntermassen funktionierender Compiler ist Irix @code{cc}.
+bekanntermaßen funktionierender Compiler ist Irix @code{cc}.
Um nur den Client zu kompilieren, benutzen Sie @code{./configure
--without-server}.
@@ -54115,24 +54406,26 @@ gmake clean all install init-db
@end example
Wenn Sie bei einer neuen Portierung Probleme bekommen, kann es sein, dass
-Sie MySQL etwas debuggen müssen! @xref{Server debuggen}.
+Sie MySQL etwas debuggen müssen! @xref\{Debugging server}.
@strong{HINWEIS:} Bevor Sie mit dem Debuggen von @code{mysqld} anfangen,
bringen Sie sich zuerst die Testprogramme @code{mysys/thr_alarm} und
@code{mysys/thr_lock} zum Laufen. Das stellt sicher, dass Ihre
Thread-Installation zumindest überhaupt eine Chance hat, zu funktionieren!
+
+
@menu
-* Server debuggen:: Einen MySQL-Server debuggen
-* Clients debuggen:: Einen MySQL-Client debuggen
-* Das DBUG-Paket:: Das DBUG-Paket
-* Sperrmethoden:: Sperrmethoden
-* RTS-Thread:: Anmerkungen zu RTS-Thread
-* Thread-Pakete:: Unterschiede zwischen verschiedenen Thread-Paketen
+* Debugging server::
+* Debugging client::
+* The DBUG package::
+* Locking methods::
+* RTS-threads::
+* Thread packages::
@end menu
-
-@node Server debuggen, Clients debuggen, Portierung, Portierung
+@node Debugging server, Debugging client, Porting, Porting
+@c German node Server debuggen
@appendixsec Einen MySQL-Server debuggen
@cindex Server, debuggen
@@ -54143,7 +54436,7 @@ Wenn Sie Funktionalität benutzen, die in MySQL sehr neu ist, können Sie
versuchen, @code{mysqld} mit der @code{--skip-new}-Option laufen zu lassen
(die alle sehr neue, potenziell unsichere Funktionalität abschaltet) oder
mit @code{--safe-mode}, was viel an Optimierung abschaltet, die
-möglicherweise Probleme verursacht. @xref{Abstürze}.
+möglicherweise Probleme verursacht. @xref\{Crashing}.
Wenn @code{mysqld} nicht starten will, sollten Sie prüfen, ob Sie irgend
welche @code{my.cnf}-Dateien haben, die mit Ihrer Konfiguration in Konflikt
@@ -54168,24 +54461,26 @@ MySQL nicht zum Debuggen kompiliert haben!
Wenn das Problem darin besteht, dass einige Tabellen langsamer und
langsamer werden, sollten Sie versuchen, die Tabelle mit @code{OPTIMIZE
TABLE} der @code{myisamchk} zu optimieren.
-@xref{MySQL-Datenbankadministration}. Sie sollten langsame Anfragen
+@xref\{MySQL Database Administration}. Sie sollten langsame Anfragen
darüber hinaus mit @code{EXPLAIN} überprüfen.
Ebenfalls sollten Sie den Abschnitt über betriebssystemspezifische Dinge in
diesem Handbuch lesen, weil Sie Probleme haben könnten, die einzigartig für
-Ihre Umgebung sind. @xref{Clientseitig}.
+Ihre Umgebung sind. @xref\{Operating System Specific Notes}.
+
+
@menu
-* Zum Debuggen kompilieren:: MySQL zum Debuggen kompilieren
-* Trace-Dateien:: Trace-Dateien erzeugen
-* gdb auf mysqld benutzen:: mysqld unter gdb debuggen
-* Stack-Trace benutzen:: Einen Stack-Trace benutzen
-* Log-Dateien benutzen:: Log-Dateien benutzen, um Gründe für Fehler in mysqld zu finden
-* Reproduzierbarer Testfall:: Einen Testfall herstellen, wenn Sie Tabellenbeschädigung feststellen
+* Compiling for debugging::
+* Making trace files::
+* Using gdb on mysqld::
+* Using stack trace::
+* Using log files::
+* Reproduceable test case::
@end menu
-
-@node Zum Debuggen kompilieren, Trace-Dateien, Server debuggen, Server debuggen
+@node Compiling for debugging, Making trace files, Debugging server, Debugging server
+@c German node Zum Debuggen kompilieren
@appendixsubsec MySQL zum Debuggen kompilieren
Wenn Sie sehr spezielle Probleme haben, können Sie immer versuchen, MySQL
@@ -54230,18 +54525,19 @@ Wenn Sie MySQL zum Debuggen konfigurieren, können Sie viele zusätzliche
Sicherheitprüffunktionen hinzufügen, die die Gesundheit von @code{mysqld}
beobachten. Wenn Sie etwas ``Unerwartetes'' finden, wird ein Eintrag nach
@code{stderr} geschrieben, den @code{safe_mysqld} in die Fehler-Log-Datei
-leitet! Das heisst auch, dass Sie bei unerwarteten Problemen mit MySQL und
+leitet! Das heißt auch, dass Sie bei unerwarteten Problemen mit MySQL und
der Benutzung einer Quelldistribution als erstes MySQL zum Debuggen
konfigurieren sollten! (Die zweite Sache wäre natürlich, eine E-Mail an
@email{mysql@@lists.mysql.com} zu schicken und um Hilfe zu bitten. Bitte
benutzen Sie das @code{mysqlbug}-Skript für alle Bug-Berichte oder Fragen
hinsichtlich der MySQL-Version, die Sie benutzen!
-In der Windows-MySQL-Distribution wird @code{mysqld.exe} vorgabemässig mit
+In der Windows-MySQL-Distribution wird @code{mysqld.exe} vorgabemäßig mit
Unterstützung für Trace-Dateien kompiliert.
-@node Trace-Dateien, gdb auf mysqld benutzen, Zum Debuggen kompilieren, Server debuggen
+@node Making trace files, Using gdb on mysqld, Compiling for debugging, Debugging server
+@c German node Trace-Dateien
@appendixsubsec Trace-Dateien erzeugen
Wenn der @code{mysqld}-Server nicht startet oder wenn Sie den
@@ -54271,7 +54567,7 @@ zweiten DOS-Fenster benutzen, um das Problem zu reproduzieren. Sie können
den obigen @code{mysqld}-Server mit @code{mysqladmin shutdown} herunter
fahren.
-Beachten Sie, dass die Trace-Datei sehr @emph{GROSS} wird! Wenn Sie eine
+Beachten Sie, dass die Trace-Datei sehr @emph{Groß} wird! Wenn Sie eine
kleinere Trace-Datei haben wollen, können Sie etwa folgendes tun:
@code{mysqld --debug=d,info,error,query,general,where:O,/tmp/mysqld.trace}
@@ -54287,10 +54583,11 @@ kompletten Bug-Bericht, an @uref{ftp://Support.mysql.com/pub/mysql/secret},
so dass ein MySQL-Entwickler sich das ansehen kann.
Die Trace-Datei wird mit dem @strong{DBUG}-Paket von Fred Fish hergestellt.
-@xref{Das DBUG-Paket}.
+@xref\{The DBUG package}.
-@node gdb auf mysqld benutzen, Stack-Trace benutzen, Trace-Dateien, Server debuggen
+@node Using gdb on mysqld, Using stack trace, Making trace files, Debugging server
+@c German node gdb auf mysqld benutzen
@appendixsubsec mysqld unter gdb debuggen
@cindex gdb, using
@@ -54325,7 +54622,7 @@ gdb> backtrace full
gdb> exit
@end example
-@xref{Abstürze}.
+@xref\{Crashing}.
Wenn Sie gdb 4.17.x oder höher unter Linux benutzen, sollten Sie eine
@file{.gdb}-Datei mit folgenden Informationen in Ihrem aktuellen
@@ -54356,7 +54653,7 @@ gdb> run
backtrace full # Tun Sie das, wenn mysqld abstürzt
@end example
-Schliessen Sie die obige Ausgabe in eine Mail ein, die mit @code{mysqlbug}
+Schließen Sie die obige Ausgabe in eine Mail ein, die mit @code{mysqlbug}
erzeugt wurde und schicken Sie sie an @code{mysql@@lists.mysql.com}.
Wenn @code{mysqld} hängen bleibt, können Sie versuchen, einige
@@ -54374,18 +54671,19 @@ strace /tmp/log libexec/mysqld
Wenn Sie die Perl-@code{DBI}-Schnittstelle benutzen, können Sie
Debug-Informationen anschalten, indem Sie die @code{trace}-Methode benutzen
oder die @code{DBI_TRACE}-Umgebungsvariable setzen.
-@xref{Perl-DBI-Klasse, , Perl @code{DBI} Class}.
+@xref\{Perl DBI Class, , Perl @code{DBI} Class}.
-@node Stack-Trace benutzen, Log-Dateien benutzen, gdb auf mysqld benutzen, Server debuggen
+@node Using stack trace, Using log files, Using gdb on mysqld, Debugging server
+@c German node Stack-Trace benutzen
@appendixsubsec Einen Stack-Trace benutzen
Auf manchen Betriebssystemen enthält die Fehler-Log-Datei einen
Stack-Trace, wenn @code{mysqld} unerwartet stirbt. Diese können Sie
benutzen, um herauszufinden, wo (und vielleicht warum) @code{mysqld} starb.
-@xref{Fehler-Log-Datei}. Um einen Stack-Trace zu erhalten, sollten Sie
+@xref\{Error log}. Um einen Stack-Trace zu erhalten, sollten Sie
@code{mysqld} NICHT mit der @code{-fomit-frame-pointer}-Option für gcc
-kompilieren. @xref{Zum Debuggen kompilieren}.
+kompilieren. @xref\{Compiling for debugging}.
Wenn die Fehlerdatei etwas wie folgendes enthält:
@@ -54439,23 +54737,24 @@ aus.
Das gibt aus, wo @code{mysqld} starb. Wenn Ihnen das nicht hilft,
herauszufinden, warum @code{mysqld} starb, sollten Sie einen Bug-Bericht
-machen und die Ausgabe des obigen Befehls in diesen Bericht einschliessen.
+machen und die Ausgabe des obigen Befehls in diesen Bericht einschließen.
Beachten Sie aber, dass es uns in den meisten Fällen nicht weiterhilft, nur
einen Stack-Trace zu haben, um die Ursache des Problems herauszufinden. Um
den Bug feststellen oder einen Workaround zur Verfügung stellen zu können,
müssen wir in den meisten Fällen die Anfrage kennen, die @code{mysqld}
tötete, und am besten einen Testfall, so dass wir das Problem wiederholen
-können! @xref{Bug-Berichte}.
+können! @xref\{Bug reports}.
@end enumerate
-@node Log-Dateien benutzen, Reproduzierbarer Testfall, Stack-Trace benutzen, Server debuggen
+@node Using log files, Reproduceable test case, Using stack trace, Debugging server
+@c German node Log-Dateien benutzen
@appendixsubsec Log-Dateien benutzen, um Gründe für Fehler in mysqld zu finden
Beachten Sie, dass Sie vor dem Start von @code{mysqld} mit @code{--log}
alle Ihre Tabellen mit @code{myisamchk} prüfen sollten.
-@xref{MySQL-Datenbankadministration}.
+@xref\{MySQL Database Administration}.
Wenn @code{mysqld} stirbt oder hängenbleibt, sollten Sie ihn mit
@code{--log} starten. Wenn @code{mysqld} wieder stirbt, können Sie das Ende
@@ -54475,13 +54774,13 @@ ausprobieren, die lange Zeit benötigen, um sicherzustellen, dass
Sie finden Anfragen, die zur Ausführung lange Zeit benötigen, indem Sie
@code{mysqld} mit @code{--log-slow-queries} starten.
-@xref{Langsame-Anfragen-Log-Datei}.
+@xref\{Slow query log}.
Wenn Sie den Text @code{mysqld restarted} in der Fehler-Log-Datei-Datei
(normalerweise namens @file{hostname.err}) finden, haben Sie wahrscheinlich
eine Anfrage gefunden, die @code{mysqld} zum Absturz brachte. Wenn das
passiert, sollten Sie alle Ihre Tabellen mit @code{myisamchk} prüfen
-(@pxref{MySQL-Datenbankadministration}) und die Anfragen in den
+(@pxref\{MySQL Database Administration}) und die Anfragen in den
MySQL-Log-Dateien untersuchen, um herauszufinden, ob eine nicht
funktioniert. Wenn Sie eine solche Anfrage finden, versuchen Sie zunächst,
auf die neueste MySQL-Version zu aktualisieren. Wenn das nicht hilft und Sie
@@ -54498,7 +54797,7 @@ gekennzeichnet sind. Wenn das passiert, schreibt MySQL einen Eintrag in die
@code{Warning: Repairing table} gefolgt wird, wenn die Tabelle repariert
werden muss. Wenn Sie viele solcher Fehler erhalten, ohne dass
@code{mysqld} direkt davor unerwartet gestorben ist, stimmt etwas nicht und
-muss weiter untersucht werden. @xref{Kommandozeilenoptionen}.
+muss weiter untersucht werden. @xref\{Command-line options}.
Natürlich ist es kein gutes Zeichen, wenn @code{mysqld} unerwartet stirbt,
doch in diesem Fall sollte man nicht die @code{Checking table...}-Meldungen
@@ -54506,7 +54805,8 @@ untersuchen, sondern statt dessen versuchen herauszufinden, warum
@code{mysqld} starb.
-@node Reproduzierbarer Testfall, , Log-Dateien benutzen, Server debuggen
+@node Reproduceable test case, , Using log files, Debugging server
+@c German node Reproduzierbarer Testfall
@appendixsubsec Einen Testfall herstellen, wenn Sie Tabellenbeschädigung feststellen
Wenn Sie beschädigte Tabellen erhalten oder wenn @code{mysqld} immer nach
@@ -54529,7 +54829,7 @@ Machen Sie eine Datensicherung der Tabellen.
Entfernen (oder verschieben) Sie jegliche alten Log-Dateien aus dem
MySQL-Daten-Verzeichnis, wenn Sie mehr Platz brauchen.
@item
-Starten Sie @code{mysqld} mit @code{--log-binary}. @xref{Binär-Log-Datei}.
+Starten Sie @code{mysqld} mit @code{--log-binary}. @xref\{Binary log}.
Wenn Sie eine Anfrage finden wollen, die @code{mysqld} zum Absturz brachte,
sollten Sie @code{--log --log-binary} benutzen.
@item
@@ -54558,7 +54858,8 @@ einige der Aktualisierungs-Statements auszuführen, wenn Sie das Problem
eingrenzen wollen.
-@node Clients debuggen, Das DBUG-Paket, Server debuggen, Portierung
+@node Debugging client, The DBUG package, Debugging server, Porting
+@c German node Clients debuggen
@appendixsec Einen MySQL-Client debuggen
@cindex debuggen, Client
@@ -54566,7 +54867,7 @@ eingrenzen wollen.
Um einen MySQL-Client mit dem integrierten Debug-Paket debuggen zu können,
sollten Sie MySQL mit @code{--with-debug} oder @code{--with-debug=full}
-kompilieren. @xref{Optionen konfigurieren}.
+kompilieren. @xref\{configure options}.
@tindex MYSQL_DEBUG-Umgebungsvariable
@tindex Umgebungsvariable, MYSQL_DEBUG
@@ -54583,7 +54884,7 @@ erzeugen.
Wenn Sie Probleme mit Ihrem eigenen Client-Code haben, sollten Sie
versuchen, sich mit dem Server zu verbinden und Ihre Anfragen mit einem
-Client laufen zu lassen, der bekanntermassen funktioniert. Lassen Sie dabei
+Client laufen zu lassen, der bekanntermaßen funktioniert. Lassen Sie dabei
@code{mysql} im Debug-Modus laufen (unter der Annahme, dass Sie MySQL mit
angeschaltetem Debuggen kompiliert haben):
@@ -54592,7 +54893,7 @@ shell> mysql --debug=d:t:O,/tmp/client.trace
@end example
Das stellt nützliche Informationen für den Fall bereit, dass Sie einen
-Bug-Bericht schicken. @xref{Bug-Berichte}.
+Bug-Bericht schicken. @xref\{Bug reports}.
Wenn Ihr Client bei irgend einem 'zulässigen' Sperr-Code abstürzt, sollten
Sie sicherstellen, dass Ihre @file{mysql.h}-Include-Datei mit Ihrer
@@ -54601,7 +54902,8 @@ MySQL-Bibliotheksdatei zusammenpasst. Es ist ein häufiger Fehler, eine alte
MySQL-Bibliothek zu benutzen.
-@node Das DBUG-Paket, Sperrmethoden, Clients debuggen, Portierung
+@node The DBUG package, Locking methods, Debugging client, Porting
+@c German node Das DBUG-Paket
@appendixsec Das DBUG-Paket
@cindex DBUG-Paket
@@ -54609,14 +54911,14 @@ MySQL-Bibliothek zu benutzen.
Der MySQL-Server und die meisten MySQL-Clients werden mit dem DBUG-Paket
kompiliert, das ursprünglich von Fred Fish stammt. Wenn man MySQL zum
Debuggen kompiliert hat, ermöglicht es dieses Paket, eine Trace-Datei davon
-zu erhalten, was das Programm debuggt. @xref{Trace-Dateien}.
+zu erhalten, was das Programm debuggt. @xref\{Making trace files}.
Man benutzt das Debug-Paket durch Aufruf des Programms mit der
@code{--debug="..."}- oder der @code{-#...}-Option.
-Die meisten MySQL-Programme haben eine vorgabemässige Debug-Zeichenkette,
+Die meisten MySQL-Programme haben eine vorgabemäßige Debug-Zeichenkette,
die benutzt wird, wenn Sie keine Option für @code{--debug} angeben. Die
-vorgabemässige Trace-Datei ist üblicherweise
+vorgabemäßige Trace-Datei ist üblicherweise
@code{/tmp/programm_name.trace} unter Unix und @code{\programm_name.trace}
unter Windows.
@@ -54675,7 +54977,7 @@ oder Trace-Ausgabe ausgeben.
@tab Jede Zeile der dbug-Ausgabe nummerieren.
@item o
@tab Die Debugger-Ausgabe in die angegebene Datei umlenken. Die
-vorgabemässige Ausgabe ist stderr.
+vorgabemäßige Ausgabe ist stderr.
@item O
@tab Wie @code{O}, aber die Datei wird nach jedem Schreiben auf die Platte
zurückgeschrieben (flush). Wenn nötig, wird die Datei geschlossen und
@@ -54721,7 +55023,8 @@ ausgegeben: @code{enter}, @code{exit}, @code{error}, @code{warning},
@code{info} und @code{loop}.
-@node Sperrmethoden, RTS-Thread, Das DBUG-Paket, Portierung
+@node Locking methods, RTS-threads, The DBUG package, Porting
+@c German node Sperrmethoden
@appendixsec Sperrmethoden
@cindex Sperrmethoden
@@ -54729,7 +55032,7 @@ ausgegeben: @code{enter}, @code{exit}, @code{error}, @code{warning},
Momentan unterstützt MySQL Tabellensperren nur für @code{ISAM}- /
@code{MyISAM}- und @code{HEAP}-Tabellen und Sperren auf Seitenebene nur für
-@code{BDB}-Tabellen. @xref{Internes Sperren}. Bei @code{MyISAM}-Tabellen
+@code{BDB}-Tabellen. @xref\{Internal locking}. Bei @code{MyISAM}-Tabellen
können Sie @code{INSERT} und @code{SELECT} ohne Sperren frei vermischen.
(@code{Versionierung}).
@@ -54737,7 +55040,7 @@ Ab Version 3.23.33 können Sie die Tabellensperr-Konkurrenz auf Ihrem System
durch Prüfen der @code{Table_locks_waited}- und
@code{Table_locks_immediate}-Umgebungsvariablen analysieren.
-Einige Datenbankbenutzer behaupten, dass MySQL keine grosse Anzahl
+Einige Datenbankbenutzer behaupten, dass MySQL keine große Anzahl
gleichzeitiger Benutzer unterstützen kann, weil es kein Sperren auf
Zeilenebene hat. Das mag bei einigen speziellen Applikationen zutreffen,
aber nicht allgemein. Wie immer hängt das völlig davon ab, was Ihre
@@ -54763,11 +55066,11 @@ Nachteile:
Benötigt mehr Speicher als Sperren auf Seiten- oder Tabellenebene.
@item
Ist langsamer als Sperren auf Seiten- oder Tabellenebene, wenn es einen
-grossen Teil der Tabelle betrifft, weil man viel mehr Sperren durchführen
+großen Teil der Tabelle betrifft, weil man viel mehr Sperren durchführen
muss.
@item
Ist definitiv viel schlechter als andere Sperren, wenn Sie oft @code{GROUP
-BY} auf einen grossen Teil der Daten ausführen oder wenn man die gesamte
+BY} auf einen großen Teil der Daten ausführen oder wenn man die gesamte
Tabelle oft scannen muss.
@item
Bei Sperren auf höherer Ebene kann man einfacher Sperren unterschiedlichen
@@ -54802,7 +55105,7 @@ Andere Optionen als Sperren auf Zeilen- / Seiten-Ebene:
Versionierung (wie die, die wir bei MySQL für gleichzeitige Einfügevorgänge
nutzen), bei der man gleichzeitig einen Schreibvorgang haben kann, während
-viele Lesevorgänge stattfinden. Das heisst, dass die Datenbank / Tabelle
+viele Lesevorgänge stattfinden. Das heißt, dass die Datenbank / Tabelle
verschiedene Sichten der Daten unterstützt, abhängig davon, wann man
anfing, darauf zuzugreifen. Andere Namen hierfür sind Zeitreisen, Kopieren
beim Schreiben (Copy on Write) oder Kopieren bei Bedarf (Copy on Demand).
@@ -54833,7 +55136,7 @@ nicht vermischt, die beide gleichzeitig viele Zeilen in derselben Tabelle
untersuchen müssen.
Wenn man INSERTs und DELETEs auf dieselbe Tabelle mischt, kann @code{INSERT
-DELAYED} eine grosse Hilfe sein.
+DELAYED} eine große Hilfe sein.
Man kann auch @code{LOCK TABLES} benutzen, um Dinge zu beschleunigen (viele
UPDATEs innerhalb einer einzelnen Sperre sind viel schneller als UPDATEs
@@ -54846,10 +55149,11 @@ in @code{BDB}-Tabellen umwandeln.
@xref{BDB}.
Der Optimierungsabschnitt dieses Handbuchs behandelt viele verschiedene
-Aspekte dessen, wie man seine Applikationen optimieren kann. @xref{Tipps}.
+Aspekte dessen, wie man seine Applikationen optimieren kann. @xref\{Tips}.
-@node RTS-Thread, Thread-Pakete, Sperrmethoden, Portierung
+@node RTS-threads, Thread packages, Locking methods, Porting
+@c German node RTS-Thread
@appendixsec Anmerkungen zu RTS-Thread
@cindex RTS-Thread
@@ -54880,7 +55184,7 @@ Ein weiteres Problem ist, dass Threads auf Benutzerebene das
der Unterbrechung all dieser Funktionen weiterzumachen, aber das ist nicht
einfach zu verifizieren.
-Das grösste ungelöste Problem ist folgendes:
+Das größte ungelöste Problem ist folgendes:
Um Alarme auf Thread-Ebene zu erhalten, änderte ich
@file{mysys/thr_alarm.c} in der Art, dass es zwischen Alarmen wartet, mit
@@ -54951,7 +55255,8 @@ end
@end itemize
-@node Thread-Pakete, , RTS-Thread, Portierung
+@node Thread packages, , RTS-threads, Porting
+@c German node Thread-Pakete
@appendixsec Unterschiede zwischen verschiedenen Thread-Paketen
@cindex Thread-Pakete, Unterschiede
@@ -55005,7 +55310,8 @@ werden und der Kernel ist sich nicht wirklich ``der Threads bewusst''.
-@node Umgebungsvariablen, Reguläre Ausdrücke, Portierung, Top
+@node Environment variables, Regexp, Porting, Top
+@c German node Umgebungsvariablen
@appendix Umgebungsvariablen
@cindex Umgebungsvariablen, Auflistung
@@ -55021,7 +55327,7 @@ Umgebungsvariablen sind.
In vielen Fällen ist es vorzuziehen, eine configure-Datei anstelle von
Umgebungsvariablen zu verwenden, um das Verhalten von MySQL zu
-beeinflussen. @xref{Optionsdateien}.
+beeinflussen. @xref\{Option files}.
@tindex CCX-Umgebungsvariable
@tindex Umgebungsvariable, CCX
@@ -55073,41 +55379,42 @@ configure laufen lassen.
configure laufen lassen.
@item @code{CXXFLAGS} @tab Flags für Ihren C++-Kompiler wenn Sie
configure laufen lassen.
-@item @code{DBI_USER} @tab Der vorgabemässige Benuztzername für Perl-DBI.
+@item @code{DBI_USER} @tab Der vorgabemäßige Benutzername für Perl-DBI.
@item @code{DBI_TRACE} @tab Beim Tracen in Perl-DBI benutzt.
-@item @code{HOME} @tab Der vorgabemässige Pfad für die
+@item @code{HOME} @tab Der vorgabemäßige Pfad für die
@code{mysql}-History-Datei ist @file{$HOME/.mysql_history}.
@item @code{LD_RUN_PATH} @tab Wird benutzt um anzugeben, wo Ihr
@code{libmysqlclient.so} ist.
@item @code{MYSQL_DEBUG} @tab Debug-Trace-Optionen beim Debuggen.
@item @code{MYSQL_HISTFILE} @tab Der Pfad zur @code{mysql}-History-Datei.
-@item @code{MYSQL_HOST} @tab Vorgabemässiger Hostname, der von der
+@item @code{MYSQL_HOST} @tab Vorgabemäßiger Hostname, der von der
@code{mysql}-Befehlszeilenaufforderung benutzt wird.
-@item @code{MYSQL_PWD} @tab Das vorgabemässige Passwort bei der Verbindung
+@item @code{MYSQL_PWD} @tab Das vorgabemäßige Passwort bei der Verbindung
mit @code{mysqld}. Beachten Sie, dass die Benutzung dieser
Umgebungsvariablen unsicher ist!
-@item @code{MYSQL_TCP_PORT} @tab Der vorgabemässige TCP/IP-Port.
-@item @code{MYSQL_UNIX_PORT} @tab Der vorgabemässige Socket; benutzt für
+@item @code{MYSQL_TCP_PORT} @tab Der vorgabemäßige TCP/IP-Port.
+@item @code{MYSQL_UNIX_PORT} @tab Der vorgabemäßige Socket; benutzt für
Verbindungen nach @code{localhost}.
@item @code{PATH} @tab Wird von der Shell benutzt, um die MySQL-Programme
zu finden.
@item @code{TMPDIR} @tab Das Verzeichnis, in dem temporäre Tabellen /
Dateien erzeugt werden.
@item @code{TZ} @tab Diese Variable sollte auf Ihre lokale Zeitzone gesetzt
-sein. @xref{Zeitzonen-Probleme}.
+sein. @xref\{Timezone problems}.
@item @code{UMASK_DIR} @tab Die Erzeugungsmaske (Creation Mask) des
Benutzer-Verzeichnisses, wenn Verzeichnisse angelegt werden. Beachten Sie,
dass diese mit @code{UMASK} mit einem logischen UND verknüpft wird!
@item @code{UMASK} @tab Die Erzeugungsmaske (Creation Mask) bei der
Erzeugung von Dateien.
-@item @code{USER} @tab Der vorgabemässige Benutzer unter Windows, der beim
+@item @code{USER} @tab Der vorgabemäßige Benutzer unter Windows, der beim
Verbinden mit @code{mysqld} benutzt wird.
@end multitable
-@node Reguläre Ausdrücke, Unireg, Umgebungsvariablen, Top
+@node Regexp, GPL license, Environment variables, Top
+@c German node Reguläre Ausdrücke
@appendix Beschreibung der MySQL-Syntax für reguläre Ausdrücke
@cindex regex
@@ -55124,7 +55431,7 @@ Version.
Die vorliegende vereinfachte Referenz überspringt die Details. Um genauere
Informationen zu erhalten, sehen Sie sich Henry Spencers
@code{regex(7)}-Handbuchseite an, die in der Quelldistribution enthalten
-ist. @xref{Danksagungen}.
+ist. @xref\{Credits}.
Ein regulärer Ausdruck beschreibt einen Satz von Zeichenketten. Der
einfachste regexp ist einer, der keine Sonderzeichen enthält. Der regexp
@@ -55224,14 +55531,14 @@ Atom, gefolgt von einer Begrenzung, die zwei Ganzzahlen @code{i} und
Beide Argumente müssen im Bereich von @code{0} bis @code{RE_DUP_MAX}
(Vorgabe 255) inklusive sein. Wenn es zwei Argumente gibt, muss das zweite
-grösser oder gleich dem ersten sein.
+größer oder gleich dem ersten sein.
@item [a-dX]
@itemx [^a-dX]
Stimmt mit jedem Zeichen überein, was entweder @code{a}, @code{b},
@code{c}, @code{d} oder @code{X} ist (oder nicht ist, wenn ^ benutzt wird).
-Um ein literales @code{]}-Zeichen einzuschliessen, muss es unmittelbar der
+Um ein literales @code{]}-Zeichen einzuschließen, muss es unmittelbar der
öffnenden Klammer @code{[} folgen. Um ein literales @code{-}-Zeichen
-einzuschliessen, muss es zuerst oder zuletzt geschrieben werden. Daher
+einzuschließen, muss es zuerst oder zuletzt geschrieben werden. Daher
stimmt @code{[0-9]} mit jeder Dezimalziffer überein. Alle Zeichen, die
innerhalb eines @code{[]}-Paars keine definierte Bedeutung haben, haben
keine spezielle Bedeutung und stimmen nur mit sich selbst überein.
@@ -55304,7 +55611,8 @@ mysql> select "weeknights" REGEXP "^(wee|week)(knights|nights)$"; -> 1
-@node GPL-Lizenz, LGPL-Lizenz, Unireg, Top
+@node GPL license, LGPL license, Regexp, Top
+@c German node GPL-Lizenz
@appendix GNU GENERAL PUBLIC LICENSE
@cindex GPL, General Public License
@@ -55326,7 +55634,7 @@ Die meisten Softwarelizenzen sind daraufhin entworfen worden, Ihnen die
Freiheit zu nehmen, die Software weiterzugeben und zu verändern.
Im Gegensatz dazu soll Ihnen die GNU General Public License, die
allgemeine öffentliche GNU-Lizenz, ebendiese Freiheit garantieren.
-Sie soll sicherstellen, daß die Software für alle Benutzer frei ist.
+Sie soll sicherstellen, dass die Software für alle Benutzer frei ist.
Diese Lizenz gilt für den Großteil der von der Free Software Foundation
herausgegebenen Software und für alle anderen Programme, deren Autoren
ihr Werk dieser Lizenz unterstellt haben. Auch Sie können diese
@@ -55340,8 +55648,8 @@ den Preis. Unsere Lizenzen sollen Ihnen die Freiheit garantieren,
Kopien freier Software zu verbreiten (und etwas für diesen Service zu
berechnen, wenn Sie möchten), die Möglichkeit, die Software im Quelltext
zu erhalten oder den Quelltext auf Wunsch zu bekommen. Die Lizenzen
-sollen garantieren, daß Sie die Software ändern oder Teile davon in
-neuen freien Programmen verwenden dürfen - und daß Sie wissen, daß
+sollen garantieren, dass Sie die Software ändern oder Teile davon in
+neuen freien Programmen verwenden dürfen - und dass Sie wissen, dass
Sie dies alles tun dürfen.
Um Ihre Rechte zu schützen, müssen wir Einschränkungen machen, die es
@@ -55352,7 +55660,7 @@ verbreiten oder sie verändern.
Beispielsweise müssen Sie den Empfängern alle Rechte gewähren, die
Sie selbst haben, wenn Sie - kostenlos oder gegen Bezahlung - Kopien
-eines solchen Programms verbreiten. Sie müssen sicherstellen, daß auch
+eines solchen Programms verbreiten. Sie müssen sicherstellen, dass auch
sie den Quelltext erhalten bzw. erhalten können. Und Sie müssen ihnen
diese Bedingungen zeigen, damit sie Ihre Rechte kennen.
@@ -55362,18 +55670,18 @@ an, die Ihnen das Recht gibt, die Software zu vervielfältigen, zu
verbreiten und/oder zu verändern.
Um die Autoren und uns zu schützen, wollen wir darüberhinaus sicherstellen,
-daß jeder erfährt, daß für diese freie Software keinerlei Garantie besteht.
+dass jeder erfährt, dass für diese freie Software keinerlei Garantie besteht.
Wenn die Software von jemand anderem modifiziert und weitergegeben wird,
-möchten wir, daß die Empfänger wissen, daß sie nicht das Original erhalten
-haben, damit von anderen verursachte Probleme nicht den Ruf des ursprüng-
-lichen Autors schädigen.
+möchten wir, dass die Empfänger wissen, dass sie nicht das Original erhalten
+haben, damit von anderen verursachte Probleme nicht den Ruf des
+ursprünglichen Autors schädigen.
Schließlich und endlich ist jedes freie Programm permanent durch
-Software-Patente bedroht. Wir möchten die Gefahr ausschließen, daß
-Distributoren eines freien Programms individuell Patente lizensie-
-ren - mit dem Ergebnis, daß das Programm proprietär würde. Um dies zu ver-
-hindern, haben wir klargestellt, daß jedes Patent entweder für freie Be-
-nutzung durch jedermann lizenziert werden muß oder überhaupt nicht
+Software-Patente bedroht. Wir möchten die Gefahr ausschließen, dass
+Distributoren eines freien Programms individuell Patente lizensieren
+ - mit dem Ergebnis, dass das Programm proprietär würde. Um dies zu
+ verhindern, haben wir klargestellt, dass jedes Patent entweder für freie
+Benutzung durch jedermann lizenziert werden muss oder überhaupt nicht
lizenziert werden darf.
Es folgen die genauen Bedingungen für die Vervielfältigung,
@@ -55393,7 +55701,7 @@ und Bearbeitung
@item
Diese Lizenz gilt für jedes Programm und jedes andere Werk, in dem
ein entsprechender Vermerk des Copyright-Inhabers darauf hinweist,
-daß das Werk unter den Bestimmungen dieser General Public License
+dass das Werk unter den Bestimmungen dieser General Public License
verbreitet werden darf. Im folgenden wird jedes derartige Programm
oder Werk als "das Programm" bezeichnet; die Formulierung "auf dem
Programm basierendes Werk" bezeichnet das Programm sowie jegliche
@@ -55409,15 +55717,15 @@ werden von dieser Lizenz nicht berührt; sie fallen nicht in Ihren
Anwendungsbereich. Der Vorgang der Ausführung des Programms wird
nicht eingeschränkt, und die Ausgaben des Programms unterliegen
dieser Lizenz nur, wenn der Inhalt ein auf dem Programm basierendes
-Werk darstellt (unabhängig davon, daß die Ausgabe durch die Aus-
-führung des Programmes erfolgte). Ob dies zutrifft, hängt von den
+Werk darstellt (unabhängig davon, dass die Ausgabe durch die
+Ausführung des Programmes erfolgte). Ob dies zutrifft, hängt von den
Funktionen des Programms ab.
@item
Sie dürfen auf beliebigen Medien unveränderte Kopien des Quelltextes
des Programms, wie sie ihn erhalten haben, anfertigen und verbreiten.
-Voraussetzung hierfür ist, daß Sie mit jeder Kopie einen entsprechenden
-Copyright-Vermerk sowie einen Haftungsausschluß veröffentlichen, alle
+Voraussetzung hierfür ist, dass Sie mit jeder Kopie einen entsprechenden
+Copyright-Vermerk sowie einen Haftungsausschluss veröffentlichen, alle
Vermerke, die sich auf diese Lizenz und das Fehlen einer Garantie
beziehen, unverändert lassen und desweiteren allen anderen Empfängern
des Programms zusammen mit dem Programm eine Kopie dieser Lizenz
@@ -55431,7 +55739,7 @@ für das Programm anbieten.
Sie dürfen Ihre Kopie(n) des Programms oder eines Teils davon
verändern, wodurch ein auf dem Programm basierendes Werk entsteht;
Sie dürfen derartige Bearbeitungen unter den Bestimmungen von
-Paragraph 1 vervielfältigen und verbreiten, vorausgesetzt, daß
+Paragraph 1 vervielfältigen und verbreiten, vorausgesetzt, dass
zusätzlich alle folgenden Bedingungen erfüllt werden:
@enumerate a
@@ -55441,7 +55749,7 @@ versehen, der auf die von Ihnen vorgenommene Modifizierung und
das Datum jeder Änderung hinweist.
@item
-Sie müssen dafür sorgen, daß jede von Ihnen verbreitete oder
+Sie müssen dafür sorgen, dass jede von Ihnen verbreitete oder
veröffentlichte Arbeit, die ganz oder teilweise von dem Programm
oder Teilen davon abgeleitet ist, Dritten gegenüber als Ganzes
unter den Bedingungen dieser Lizenz ohne Lizenzgebühren zur
@@ -55449,59 +55757,58 @@ Verfügung gestellt wird.
@item
Wenn das veränderte Programm normalerweise bei der Ausführung
-interaktiv Kommandos einliest, müssen Sie dafür sorgen, daß es,
+interaktiv Kommandos einliest, müssen Sie dafür sorgen, dass es,
wenn es auf dem üblichsten Wege für solche interaktive Nutzung
gestartet wird, eine Meldung ausgibt oder ausdruckt, die einen
-geeigneten Copyright-Vermerk enthält sowie einen Hinweis, daß es
-keine Gewährleistung gibt (oder anderenfalls, daß Sie Garantie
-leisten), und daß die Benutzer das Programm unter diesen Be-
-dingungen weiter verbreiten dürfen. Auch muß der Benutzer darauf
+geeigneten Copyright-Vermerk enthält sowie einen Hinweis, dass es
+keine Gewährleistung gibt (oder anderenfalls, dass Sie Garantie
+leisten), und dass die Benutzer das Programm unter diesen
+Bedingungen weiter verbreiten dürfen. Auch muss der Benutzer darauf
hingewiesen werden, wie er eine Kopie dieser Lizenz ansehen kann.
(Ausnahme: Wenn das Programm selbst interaktiv arbeitet, aber
-normalerweise keine derartige Meldung ausgibt, muß Ihr auf dem
+normalerweise keine derartige Meldung ausgibt, muss Ihr auf dem
Programm basierendes Werk auch keine solche Meldung ausgeben).
@end enumerate
Diese Anforderungen betreffen das veränderte Werk als Ganzes.
-Wenn identifizierbare Abschnitte des Werkes nicht von dem Pro-
-gramm abgeleitet sind und vernünftigerweise selbst als unab-
-hängige und eigenständige Werke betrachtet werden können, dann
+Wenn identifizierbare Abschnitte des Werkes nicht von dem
+Programm abgeleitet sind und vernünftigerweise selbst als
+unabhängige und eigenständige Werke betrachtet werden können, dann
erstrecken sich diese Lizenz und Ihre Bedingungen nicht auf
diese Abschnitte, wenn sie als eigenständige Werke verbreitet
werden. Wenn Sie jedoch dieselben Abschnitte als Teil eines
Ganzen verbreiten, dass ein auf dem Programm basierendes Werk
-darstellt, dann muß die Verbreitung des Ganzen nach den Be-
-dingungen dieser Lizenz erfolgen, deren Bedingungen für wei-
-tere Lizenznehmer somit auf die Gesamtheit ausgedehnt werden
-- und damit auf jeden einzelnen Teil, unabhängig vom je-
-weiligen Autor.
+darstellt, dann muss die Verbreitung des Ganzen nach den
+Bedingungen dieser Lizenz erfolgen, deren Bedingungen für
+weitere Lizenznehmer somit auf die Gesamtheit ausgedehnt werden
+- und damit auf jeden einzelnen Teil, unabhängig vom jeweiligen Autor.
Somit ist es nicht die Absicht dieses Abschnittes, Rechte für
Werke in Anspruch zu nehmen oder zu beschneiden, die komplett
von Ihnen geschrieben wurden; vielmehr ist es die Absicht,
die Rechte zur Kontrolle der Verbreitung von Werken, die auf
-dem Programm basieren oder unter seiner auszugsweisen Ver-
-wendung zusammengestellt worden sind, auszuüben.
+dem Programm basieren oder unter seiner auszugsweisen
+Verwendung zusammengestellt worden sind, auszuüben.
Ferner bringt ein einfaches Zusammenstellen eines anderen Werkes,
das nicht auf dem Programm basiert, zusammen mit dem Programm
-oder einem auf dem Programm basierenden Werk auf ein- und dem-
-selben Speicher- oder Vertriebsmedium das andere Werk nicht in
+oder einem auf dem Programm basierenden Werk auf ein- und
+demselben Speicher- oder Vertriebsmedium das andere Werk nicht in
den Anwendungsbereich dieser Lizenz.
@item
Sie dürfen das Programm (oder ein darauf basierendes Werk gemäß
Paragraph 2) als Objectcode oder in ausführbarer Form unter den
Bedingungen von Paragraph 1 und 2 vervielfältigen und verbreiten
-- vorausgesetzt, daß Sie außerdem eine der folgenden Leistungen
+- vorausgesetzt, dass Sie außerdem eine der folgenden Leistungen
erbringen:
@enumerate a
@item
-Liefern Sie das Programm zusammen mit dem vollständigen zuge-
-hörigen maschinenlesbaren Quelltext auf einem für den Datenaus-
-tausch üblichen Medium aus, wobei die Verteilung unter den Be-
-dingungen der Paragraphen 1 und 2 erfolgen muß. Oder:
+Liefern Sie das Programm zusammen mit dem vollständigen
+zugehörigen maschinenlesbaren Quelltext auf einem für den
+Datenaustausch üblichen Medium aus, wobei die Verteilung unter den
+Bedingungen der Paragraphen 1 und 2 erfolgen muß. Oder:
@item
Liefern Sie das Programm zusammen mit einem mindestens drei
@@ -55529,14 +55836,14 @@ text": Der Quelltext aller im Programm enthaltenen Module ein-
schließlich aller zugehörigen Modulschnittstellen-Definitions-
dateien sowie der zur Compilation und Installation verwendeten
Skripte. Als besondere Ausnahme jedoch braucht der verteilte
-Quelltext nichts von dem zu enthalten, was üblicherweise (ent-
-weder als Quelltext oder in binärer Form) zusammen mit den
+Quelltext nichts von dem zu enthalten, was üblicherweise
+(entweder als Quelltext oder in binärer Form) zusammen mit den
Hauptkomponenten des Betriebssystems (Kernel, Compiler usw.)
geliefert wird, unter dem das Programm läuft - es sei denn,
diese Komponente selbst gehört zum ausführbaren Programm.
Wenn die Verbreitung eines ausführbaren Programms oder des
-Objectcodes dadurch erfolgt, daß der Kopierzugriff auf eine
+Objectcodes dadurch erfolgt, dass der Kopierzugriff auf eine
dafür vorgesehene Stelle gewährt wird, so gilt die Gewährung
eines gleichwertigen Zugriffs auf den Quelltext als Verbreitung
des Quelltextes, auch wenn Dritte nicht dazu gezwungen sind,
@@ -55545,8 +55852,8 @@ den Quelltext zusammen mit dem Objectcode zu kopieren.
@item
Sie dürfen das Programm nicht vervielfältigen, verändern, weiter
lizenzieren oder verbreiten, sofern es nicht durch diese Lizenz
-ausdrücklich gestattet ist. Jeder anderweitige Versuch der Ver-
-vielfältigung, Modifizierung, Weiterlizenzierung und Verbreitung
+ausdrücklich gestattet ist. Jeder anderweitige Versuch der
+Vervielfältigung, Modifizierung, Weiterlizenzierung und Verbreitung
ist nichtig und beendet automatisch Ihre Rechte unter dieser
Lizenz. Jedoch werden die Lizenzen Dritter, die von Ihnen Kopien
oder Rechte unter dieser Lizenz erhalten haben, nicht beendet,
@@ -55555,11 +55862,11 @@ solange diese die Lizenz voll anerkennen und befolgen.
@item
Sie sind nicht verpflichtet, diese Lizenz anzunehmen, da Sie sie
nicht unterzeichnet haben. Jedoch gibt Ihnen nichts anderes die
-Erlaubnis, das Programm oder von ihm abgeleitete Werke zu ver-
-ändern oder zu verbreiten. Diese Handlungen sind gesetzlich
+Erlaubnis, das Programm oder von ihm abgeleitete Werke zu
+verändern oder zu verbreiten. Diese Handlungen sind gesetzlich
verboten, wenn Sie diese Lizenz nicht anerkennen. Indem Sie das
-Programm (oder ein darauf basierendes Werk) verändern oder ver-
-breiten, erklären Sie Ihr Einverständnis mit dieser Lizenz und
+Programm (oder ein darauf basierendes Werk) verändern oder
+verbreiten, erklären Sie Ihr Einverständnis mit dieser Lizenz und
mit allen Ihren Bedingungen bezüglich der Vervielfältigung,
Verbreitung und Veränderung des Programms oder eines darauf
basierenden Werkes.
@@ -55567,16 +55874,16 @@ basierenden Werkes.
@item
Jedesmal, wenn Sie das Programm (oder ein auf dem Programm
basierendes Werk) weitergeben, erhält der Empfänger automatisch
-vom ursprünglichen Lizenzgeber die Lizenz, das Programm ent-
-sprechend den hier festgelegten Bestimmungen zu vervielfältigen,
-zu verbreiten und zu verändern. Sie dürfen keine weiteren Ein-
-schränkungen der Durchsetzung der hierin zugestandenen Rechte
+vom ursprünglichen Lizenzgeber die Lizenz, das Programm
+entsprechend den hier festgelegten Bestimmungen zu vervielfältigen,
+zu verbreiten und zu verändern. Sie dürfen keine weiteren
+Einschränkungen der Durchsetzung der hierin zugestandenen Rechte
des Empfängers vornehmen. Sie sind nicht dafür verantwortlich,
die Einhaltung dieser Lizenz durch Dritte durchzusetzen.
@item
Sollten Ihnen infolge eines Gerichtsurteils, des Vorwurfs einer
-Patentverletzung oder aus einem anderen Grunde (nicht auf Patent-
+Patentverletzung oder aus einem anderen Grunde (nicht auf Patent
fragen begrenzt) Bedingungen (durch Gerichtsbeschluß, Vergleich
oder anderweitig) auferlegt werden, die den Bedingungen dieser
Lizenz widersprechen, so befreien Sie diese Umstände nicht von
@@ -55596,17 +55903,17 @@ bestimmten Umständen nicht durchsetzbar erweisen, so soll dieser
Paragraph seinem Sinne nach angewandt werden; im übrigen soll
dieser Paragraph als Ganzes gelten.
-Zweck dieses Paragraphen ist nicht, Sie dazu zu bringen, irgend-
-welche Patente oder andere Eigentumsansprüche zu verletzen oder
+Zweck dieses Paragraphen ist nicht, Sie dazu zu bringen,
+irgendwelche Patente oder andere Eigentumsansprüche zu verletzen oder
die Gültigkeit solcher Ansprüche zu bestreiten; dieser Paragraph
hat einzig den Zweck, die Integrität des Verbreitungssystems der
freien Software zu schützen, das durch die Praxis öffentlicher
Lizenzen verwirklicht wird. Viele Leute haben großzügige Beiträge
zu dem großen Angebot der mit diesem System verbreiteten Software
-im Vertrauen auf die konsistente Anwendung dieses Systems ge-
-leistet; es liegt am Autor/Geber, zu entscheiden, ob er die Soft-
-ware mittels irgendeines anderen Systems verbreiten will; ein
-Lizenznehmer hat auf diese Entscheidung keinen Einfluß.
+im Vertrauen auf die konsistente Anwendung dieses Systems
+geleistet; es liegt am Autor/Geber, zu entscheiden, ob er die
+Software mittels irgendeines anderen Systems verbreiten will; ein
+Lizenznehmer hat auf diese Entscheidung keinen Einfluss.
Dieser Paragraph ist dazu gedacht, deutlich klarzustellen, was als
Konsequenz aus dem Rest dieser Lizenz betrachtet wird.
@@ -55617,7 +55924,7 @@ stimmten Staaten entweder durch Patente oder durch urheberrechtlich
geschützte Schnittstellen eingeschränkt ist, kann der Urheberrechts-
inhaber, der das Programm unter diese Lizenz gestellt hat, eine
explizite geographische Beschränkung der Verbreitung angeben, in der
-diese Staaten ausgeschlossen werden, so daß die Verbreitung nur
+diese Staaten ausgeschlossen werden, so dass die Verbreitung nur
innerhalb und zwischen den Staaten erlaubt ist, die nicht ausge-
schlossen sind. In einem solchen Fall beinhaltet diese Lizenz die
Beschränkung, als wäre sie in diesem Text niedergeschrieben.
@@ -55630,7 +55937,7 @@ entsprechen, können aber im Detail abweichen, um neuen Problemen und
Anforderungen gerecht zu werden.
Jede Version dieser Lizenz hat eine eindeutige Versionsnummer.
-Wenn in einem Programm angegeben wird, daß es dieser Lizenz in einer
+Wenn in einem Programm angegeben wird, dass es dieser Lizenz in einer
bestimmten Versionsnummer oder "jeder späteren Version" ("any later
version") unterliegt, so haben Sie die Wahl, entweder den Bestimmungen
der genannten Version zu folgen oder denen jeder beliebigen späteren
@@ -55673,8 +55980,8 @@ In keinem Fall, außer wenn durch geltendes Recht gefordert oder schriftlich
zugesichert, ist irgendein Copyright-Inhaber oder irgendein Dritter, der das
Programm wie oben erlaubt modifiziert oder verbreitet hat, Ihnen gegenüber
für irgendwelche Schäden haftbar, einschließlich jeglicher allgemeiner oder
-spezieller Schäden, Schäden durch Seiteneffekte (Nebenwirkungen) oder Folge-
-schäden, die aus der Benutzung des Programms oder der Unbenutzbarkeit des
+spezieller Schäden, Schäden durch Seiteneffekte (Nebenwirkungen) oder
+Folgeschäden, die aus der Benutzung des Programms oder der Unbenutzbarkeit des
Programms folgen (einschließlich - aber nicht beschränkt auf - Datenverluste,
fehlerhafte Verarbeitung von Daten, Verluste, die von Ihnen oder anderen
getragen werden müssen oder dem Unvermögen des Programms, mit irgendeinem
@@ -55692,7 +55999,7 @@ oder Dritter über die Möglichkeit solcher Schäden unterrichtet worden war.
@page
@appendixsec Anhang: Wie Sie diese Bedingungen auf Ihre neuen Programme anwendbar machen
-Wenn Sie ein neues Programm entwickeln und wollen, daß es von größtmöglichem
+Wenn Sie ein neues Programm entwickeln und wollen, dass es von größtmöglichem
Nutzen für die Allgemeinheit ist, dann erreichen Sie das am besten, indem
Sie es zu freier Software machen, die jeder unter diesen Bestimmungen
weiterverbreiten und verändern kann.
@@ -55713,7 +56020,7 @@ the Free Software Foundation; either version 2 of the License oder
(at your option) any later version.
This Programm ist distributed in the hope that it will be useful,
-but mitOUT ANY WARRANTY; ohne even the implied warranty of
+but WITHOUT ANY WARRANTY; ohne even the implied warranty of
MERCHANTABILITY oder FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License für mehr details.
@@ -55735,7 +56042,7 @@ Copyright (C) @var{yyyy} @var{Name des Autors}
Sie es wünschen) jeder späteren Version.
Die Veröffentlichung dieses Programms erfolgt in der
- Hoffnung, daß es Ihnen von Nutzen sein wird, aber OHNE JEDE
+ Hoffnung, dass es Ihnen von Nutzen sein wird, aber OHNE JEDE
GEWÄHRLEISTUNG - sogar ohne die implizite Gewährleistung
der MARKTREIFE oder der EIGNUNG FÜR EINEN BESTIMMTEN ZWECK.
Details finden Sie in der GNU General Public License.
@@ -55747,7 +56054,7 @@ Copyright (C) @var{yyyy} @var{Name des Autors}
@end smallexample
-Wenn Ihr Programm interaktiv ist, sorgen Sie dafür, daß es nach dem
+Wenn Ihr Programm interaktiv ist, sorgen Sie dafür, dass es nach dem
Start einen kurzen Vermerk ausgibt:
@smallexample
@@ -55769,7 +56076,7 @@ Die hypothetischen Kommandos `show w' und `show c' sollten die
entsprechenden Teile der GNU-GPL anzeigen. Natürlich können die von
Ihnen verwendeten Kommandos anders heißen als `show w' und `show c';
es könnten auch Mausklicks oder Menüpunkte sein - was immer am besten
-in Ihr Programm paßt.
+in Ihr Programm passt.
Soweit vorhanden, sollten Sie auch Ihren Arbeitgeber (wenn Sie als
Programmierer arbeiten) oder Ihre Schule einen Copyright-Verzicht
@@ -55777,7 +56084,7 @@ für das Programm unterschreiben lassen. Hier ein Beispiel;
ändern Sie bitte die Namen:
@example
-Yoyodyne, Inc., herevon disclaims all copyright interest in the program
+Yoyodyne, Inc., herefrom disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
@var{signature of Ty Coon}, 1 April 1989
@@ -55811,9 +56118,9 @@ nicht um eine offizielle oder im rechtlichen Sinne anerkannte Übersetzung.
Die Free Software Foundation (FSF) ist nicht der Herausgeber dieser Übersetzung,
und sie hat diese Übersetzung auch nicht als rechtskräftigen Ersatz für die
Original-GNU-GPL anerkannt. Da die Übersetzung nicht sorgfältig von Anwälten
-überprüft wurde, können die Übersetzer nicht garantieren, daß die Übersetzung
+überprüft wurde, können die Übersetzer nicht garantieren, dass die Übersetzung
die rechtlichen Aussagen der GNU-GPL exakt wiedergibt. Wenn Sie sichergehen
-wollen, daß von Ihnen geplante Aktivitäten im Sinne der GNU-GPL gestattet sind,
+wollen, dass von Ihnen geplante Aktivitäten im Sinne der GNU-GPL gestattet sind,
halten Sie sich bitte an die englischsprachige Originalversion.
Die Free Software Foundation möchte Sie darum bitten, diese Übersetzung
@@ -55827,7 +56134,8 @@ Free Software Foundation herausgegebene englischsprachige Originalversion.
-@node LGPL-Lizenz, Platzhalter, GPL-Lizenz, Top
+@node LGPL license, Function Index, GPL license, Top
+@c German node LGPL-Lizenz
@appendix GNU LESSER GENERAL PUBLIC LICENSE
@cindex LGPL, Lesser General Public License
@@ -55855,8 +56163,8 @@ englischsprachige Originalversion!
Die meisten Softwarelizenzen sind daraufhin entworfen worden, Ihnen die
Freiheit zu nehmen, die Software weiterzugeben und zu verändern.
Im Gegensatz dazu sollen Ihnen die GNU General Public Licenses,
-die Allgemeinen Öffentlichen GNU-Lizenzen, ebendiese Freiheit des Weiter-
-gebens und Veränderns garantieren und somit sicherstellen, daß diese
+die Allgemeinen Öffentlichen GNU-Lizenzen, ebendiese Freiheit des
+Weitergebens und Veränderns garantieren und somit sicherstellen, dass diese
Software für alle Benutzer frei ist.
Diese Lizenz, die Kleine Allgemeine Öffentliche Lizenz
@@ -55872,25 +56180,25 @@ für Ihre Entscheidung.
Die Bezeichnung ,,freie`` Software bezieht sich auf Freiheit der Nutzung,
nicht auf den Preis. Unsere Allgemeinen Öffentlichen Lizenzen sollen
-sicherstellen, daß Sie die Freiheit haben, Kopien freier Software zu
+sicherstellen, dass Sie die Freiheit haben, Kopien freier Software zu
verbreiten (und etwas für diesen Service zu berechnen, wenn Sie möchten),
-daß Sie die Software im Quelltext erhalten oder den Quelltext auf Wunsch
-bekommen können, daß Sie die Software ändern oder Teile davon in neuen
-freien Programmen verwenden dürfen, und daß Sie darüber informiert sind,
-daß Sie dies alles tun dürfen.
+dass Sie die Software im Quelltext erhalten oder den Quelltext auf Wunsch
+bekommen können, dass Sie die Software ändern oder Teile davon in neuen
+freien Programmen verwenden dürfen, und dass Sie darüber informiert sind,
+dass Sie dies alles tun dürfen.
Um Ihre Rechte zu schützen, müssen wir Einschränkungen machen, die es jedem,
der die Software weitergibt, verbieten, Ihnen diese Rechte zu verweigern
-oder Sie zum Verzicht auf diese Rechte aufzufordern. Aus diesen Ein-
-schränkungen ergeben sich bestimmte Verantwortlichkeiten für Sie, wenn Sie
+oder Sie zum Verzicht auf diese Rechte aufzufordern. Aus diesen
+Einschränkungen ergeben sich bestimmte Verantwortlichkeiten für Sie, wenn Sie
Kopien der Bibliothek verbreiten oder sie verändern.
Beispielsweise müssen Sie den Empfängern alle Rechte gewähren, die wir Ihnen
eingeräumt haben, wenn Sie - kostenlos oder gegen Bezahlung - Kopien der
-Bibliothek verbreiten. Sie müssen sicherstellen, daß auch die Empfänger
+Bibliothek verbreiten. Sie müssen sicherstellen, dass auch die Empfänger
den Quelltext erhalten bzw. erhalten können. Wenn Sie einen anderen Code
mit der Bibliothek linken, müssen Sie den Empfängern die vollständigen
-Objekt-Dateien zukommen lassen, so daß sie selbst diesen Code mit der
+Objekt-Dateien zukommen lassen, so dass sie selbst diesen Code mit der
Bibliothek neu linken können, auch nachdem sie Veränderungen an der
Bibliothek vorgenommen und sie neu compiliert haben. Und Sie müssen ihnen
diese Bedingungen zeigen, damit sie Ihre Rechte kennen.
@@ -55901,17 +56209,17 @@ an, die Ihnen das Recht gibt, die Bibliothek zu vervielfältigen, zu
verbreiten und/oder zu verändern.
Um jeden, der die Software weitergibt, zu schützen, wollen wir darüber
-hinaus vollkommen klarstellen, daß für diese freie Bibliothek keinerlei
+hinaus vollkommen klarstellen, dass für diese freie Bibliothek keinerlei
Garantie besteht. Auch sollten, falls die Software von jemand anderem
-modifiziert und weitergegeben wird, die Empfänger wissen, daß sie nicht
+modifiziert und weitergegeben wird, die Empfänger wissen, dass sie nicht
das Original erhalten haben, damit irgendwelche von anderen verursachte
Probleme nicht den Ruf des ursprünglichen Autors schädigen.
Schließlich und endlich stellen Software-Patente für die Existenz jedes
freien Programms eine ständige Bedrohung dar. Wir möchten sicherstellen,
-daß keine Firma den Benutzern eines freien Programms Einschränkungen
+dass keine Firma den Benutzern eines freien Programms Einschränkungen
auferlegen kann, indem sie von einem Patentinhaber eine die freie Nutzung
-einschränkende Lizenz erwirbt. Deshalb bestehen wir darauf, daß jegliche
+einschränkende Lizenz erwirbt. Deshalb bestehen wir darauf, dass jegliche
für eine Version der Bibliothek erworbene Patentlizenz mit der in dieser
Lizenz (also der LGPL) im einzelnen angegebenen Nutzungsfreiheit voll
vereinbar sein muß.
@@ -55939,15 +56247,15 @@ Wir nennen diese Lizenz die "Kleine" Allgemeine Öffentliche Lizenz
die Freiheit des Benutzers zu schützen, als die gewöhnliche Allgemeine
Öffentliche Lizenz (GPL). Sie verschafft auch anderen Entwicklern freier
Software ein "Weniger" an Vorteil gegenüber konkurrierenden nichtfreien Programmen.
-Diese Nachteile sind ein Grund dafür, daß wir die gewöhnliche GPL für viele
+Diese Nachteile sind ein Grund dafür, dass wir die gewöhnliche GPL für viele
Bibliotheken benutzen. Die "kleine" Lizenz (LGPL) bietet aber unter bestimmten
besonderen Umständen doch Vorteile.
So kann, wenn auch nur bei seltenen Gelegenheiten, eine besondere Notwendigkeit
bestehen, einen Anreiz zur möglichst weitgehenden Benutzung einer bestimmten
-Bibliothek zu schaffen, so daß diese dann ein De-facto-Standard wird. Um dies
+Bibliothek zu schaffen, so dass diese dann ein De-facto-Standard wird. Um dies
zu erreichen, müssen nichtfreie Programme die Bibliothek benutzen dürfen.
-Ein häufigerer Fall ist der, daß eine freie Bibliothek dasselbe leistet wie
+Ein häufigerer Fall ist der, dass eine freie Bibliothek dasselbe leistet wie
weithin benutzte nichtfreie Bibliotheken. In diesem Falle bringt es wenig
Nutzen, die freie Bibliothek allein auf freie Software zu beschränken, und
dann benutzen wir eben die LGPL.
@@ -55960,7 +56268,7 @@ Zahl von Leuten, das ganze GNU-Betriebssystem ebenso wie seine Variante, das
Betriebssystem GNU/Linux, zu benutzen.
Obwohl die LGPL die Freiheit des Benutzers weniger schützt, stellt sie doch
-sicher, daß der Benutzer eines Programms, das mit der Bibliothek gelinkt wurde,
+sicher, dass der Benutzer eines Programms, das mit der Bibliothek gelinkt wurde,
die Freiheit und die erforderlichen Mittel hat, das Programm unter Benutzung
einer abgeänderten Version der Bibliothek zu betreiben.
@@ -55984,17 +56292,17 @@ lediglich mit der Bibliothek kombiniert werden muß, um betriebsfähig zu sein.
@item
Diese Lizenz gilt für jedes Programm und jedes andere Datenwerk, in dem
ein entsprechender Vermerk des Copyright-Inhabers oder eines anderen dazu
-Befugten darauf hinweist, daß das Datenwerk unter den Bestimmungen dieser
+Befugten darauf hinweist, dass das Datenwerk unter den Bestimmungen dieser
Lesser General Public License (im weiteren auch als "diese Lizenz"
bezeichnet) verbreitet werden darf. Jeder Lizenznehmer wird hierin
einfach als "Sie" angesprochen.
Eine "Bibliothek" bedeutet eine Zusammenstellung von Software-Funktionen
-und/oder Daten, die so vorbereitet ist, daß sie sich bequem mit Anwendungs-
-programmen (welche einige dieser Funktionen und Daten benutzen) zum Bilden
+und/oder Daten, die so vorbereitet ist, dass sie sich bequem mit
+Anwendungsprogrammen (welche einige dieser Funktionen und Daten benutzen) zum Bilden
von ausführbaren Programmen linken (d.h. verbinden, kombinieren) läßt.
-Der Begrif "Bibliothek" bezieht sich im weiteren immer nur auf solche
+Der Begriff "Bibliothek" bezieht sich im weiteren immer nur auf solche
Software-Bibliotheken und solche Datenwerke, die unter diesen Bedingungen
der Lesser-GPL-Lizenz verbreitet worden sind. Ein "auf der Bibliothek
basierendes Datenwerk" bezeichnet die betreffende Bibliothek selbst
@@ -56017,7 +56325,7 @@ werden von dieser Lizenz nicht berührt; sie fallen nicht in Ihren
Anwendungsbereich. Das Ausführen eines Programms unter Benutzung der
Bibliothek wird nicht eingeschränkt, und die Ausgaben des Programms
unterliegen dieser Lizenz nur dann, wenn der Inhalt ein auf der
-Bibliothek basierendes Datenwerk darstellt (unabhängig davon, daß die
+Bibliothek basierendes Datenwerk darstellt (unabhängig davon, dass die
Bibliothek in einem Werkzeug zum Schreiben dieses Programms benutzt
wurde). Ob dies zutrifft, hängt davon ab, was die Bibliothek bewirkt
und was das Programm, das die Bibliothek nutzt, bewirkt.
@@ -56025,9 +56333,9 @@ und was das Programm, das die Bibliothek nutzt, bewirkt.
@item
Sie dürfen auf beliebigen Medien unveränderte Kopien des vollständigen
Quelltextes des Programms so, wie sie ihn erhalten haben, anfertigen
-und verbreiten. Voraussetzung hierfür ist, daß Sie mit jeder Kopie
+und verbreiten. Voraussetzung hierfür ist, dass Sie mit jeder Kopie
deutlich erkennbar und in angemessener Form einen entsprechenden
-Copyright-Vermerk sowie einen Haftungsausschluß veröffentlichen, alle
+Copyright-Vermerk sowie einen Haftungsausschluss veröffentlichen, alle
Vermerke, die sich auf diese Lizenz und das Fehlen einer Garantie
beziehen, unverändert lassen und zusammen mit der Bibliothek jeweils
eine Kopie dieser Lizenz weitergeben.
@@ -56040,12 +56348,12 @@ Garantie anbieten.
Sie dürfen Ihre Kopie(n) der Bibliothek oder irgendeines Teils davon
verändern, wodurch ein auf der Bibliothek basierendes Datenwerk
entsteht, und Sie dürfen derartige Bearbeitungen unter den Bestimmungen
-von Paragraph 1 vervielfältigen und verbreiten, vorausgesetzt, daß
+von Paragraph 1 vervielfältigen und verbreiten, vorausgesetzt, dass
zusätzlich alle im folgenden genannten Bedingungen erfüllt werden:
@enumerate a
@item
-Das Bearbeitungsergebnis muß selbst wieder eine Software-Bibliothek sein.
+Das Bearbeitungsergebnis muss selbst wieder eine Software-Bibliothek sein.
@item
Sie müssen die veränderten Dateien mit einem auffälligen Vermerk
@@ -56053,26 +56361,26 @@ versehen, der auf die von Ihnen vorgenommene Modifizierung der
Dateien hinweist und das Datum jeder Änderung angibt.
@item
-Sie müssen dafür sorgen, daß das Datenwerk als Ganzes Dritten unter
+Sie müssen dafür sorgen, dass das Datenwerk als Ganzes Dritten unter
den Bedingungen dieser Lizenz ohne Lizenzgebühren zur Verfügung
gestellt wird.
@item
Wenn sich eine Funktionseinheit der bearbeiteten Bibliothek auf eine
Funktion oder Datentabelle stützt, die von einem die Funktionseinheit
-nutzenden Anwendungsprogramm bereitgestellt werden muß, ohne daß sie
+nutzenden Anwendungsprogramm bereitgestellt werden muß, ohne dass sie
als Argument übergeben werden muß, wenn die Funktionseinheit angesprochen
wird, dann müssen Sie sich nach bestem Wissen und Gewissen bemühen,
-sicherzustellen, daß die betreffende Funktionseinheit auch dann noch
+sicherzustellen, dass die betreffende Funktionseinheit auch dann noch
funktioniert, wenn die Anwendung eine solche Funktion oder Datentabelle
-nicht bietet, und daß sie den sinnvoll bleibenden Teil Ihres Bestimmungs-
-zwecks noch ausführt.
+nicht bietet, und dass sie den sinnvoll bleibenden Teil Ihres
+Bestimmungszwecks noch ausführt.
(So hat z.B. eine Funktion zum Berechnen von Quadratwurzeln einen von
der Anwendung unabhängigen genau definierten Zweck. Deshalb verlangt
-§2 Absatz d, daß jede von der Anwendung bereitgestellte Funktion oder
+§2 Absatz d, dass jede von der Anwendung bereitgestellte Funktion oder
von dieser Funktion benutzte Tabelle optional sein muß: Auch wenn die
-Anwendung sie nicht bereitstellt, muß die Quadratwurzelfunktion trotzdem
+Anwendung sie nicht bereitstellt, muss die Quadratwurzelfunktion trotzdem
noch Quadratwurzeln berechnen).
@end enumerate
@@ -56083,7 +56391,7 @@ zu betrachten sind, dann gelten diese Lizenz und Ihre Bedingungen nicht
für die betreffenden Teile, wenn Sie diese als gesonderte Datenwerke
weitergeben. Wenn Sie jedoch dieselben Teile als Teil eines Ganzen
weitergeben, dass ein auf der Bibliothek basierendes Datenwerk darstellt,
-dann muß die Weitergabe dieses Ganzen nach den Bedingungen dieser Lizenz
+dann muss die Weitergabe dieses Ganzen nach den Bedingungen dieser Lizenz
erfolgen, deren Bedingungen für weitere Lizenznehmer somit auf das
gesamte Ganze ausgedehnt werden - und somit auf jeden einzelnen Teil,
unabhängig vom jeweiligen Autor.
@@ -56106,7 +56414,7 @@ Sie können sich für die Anwendung der Bedingungen der gewöhnlichen
Allgemeinen Öffentlichen GNU-Lizenz (GNU-GPL) statt dieser Lizenz
auf eine gegebene Kopie der Bibliothek entscheiden. Um dies zu tun,
müssen Sie alle Eintragungen, die sich auf diese Lizenz beziehen,
-ändern, so daß sie nun für die gewöhnliche GNU-GPL, Version 2,
+ändern, so dass sie nun für die gewöhnliche GNU-GPL, Version 2,
statt für diese Lizenz (LGPL) gelten. (Wenn eine neuere Version
als Version 2 der gewöhnlichen GNU-GPL erschienen ist, können Sie
diese angeben, wenn Sie das wünschen.) Nehmen Sie keine anderen
@@ -56140,8 +56448,8 @@ kopieren.
Ein Programm, das nichts von irgendeinem Teil der Bibliothek
Abgeleitetes enthält, aber darauf ausgelegt ist, mit der Bibliothek
zusammenzuarbeiten, indem es mit ihr compiliert oder gelinkt wird,
-nennt man ein "Datenwerk, das die Bibliothek nutzt". Solch ein Daten-
-werk, für sich allein genommen, ist kein von der Bibiliothek abgelei-
+nennt man ein "Datenwerk, das die Bibliothek nutzt". Solch ein
+Datenwerk, für sich allein genommen, ist kein von der Bibliothek abgelei
tetes Datenwerk und fällt daher nicht unter diese Lizenz.
Wird jedoch ein "Datenwerk, das die Bibliothek nutzt", mit der
@@ -56163,15 +56471,15 @@ ist rechtlich nicht genau definiert.
Wenn solch eine Objektdatei nur numerische Parameter, Daten-
struktur-Layouts und Zugriffsfunktionen sowie kleine Makros und kleine
-Inlinefunktionen (zehn Zeilen lang oder kürzer) benutzt, dann unter-
-liegt die Benutzung der Objektdatei keinen Beschränkungen, ohne Rück-
-sicht darauf, ob es rechtlich gesehen ein abgeleitetes Datenwerk ist.
+Inlinefunktionen (zehn Zeilen lang oder kürzer) benutzt, dann
+unterliegt die Benutzung der Objektdatei keinen Beschränkungen, ohne
+Rücksicht darauf, ob es rechtlich gesehen ein abgeleitetes Datenwerk ist.
(Ausführbare Programme, welche diesen Objektcode plus Teile der
Bibliothek enthalten, fallen jedoch weiterhin unter die Bestimmungen
von Paragraph 6).
-Ansonsten können Sie, wenn das Datenwerk ein von der Bibliothek ab-
-geleitetes ist, den Objektcode für das Datenwerk unter den Bedingungen
+Ansonsten können Sie, wenn das Datenwerk ein von der Bibliothek
+abgeleitetes ist, den Objektcode für das Datenwerk unter den Bedingungen
von Paragraph 6 weitergeben. Alle ausführbaren Programme, welche
dieses Datenwerk enthalten, fallen ebenfalls unter Paragraph 6,
gleichgültig, ob sie direkt mit der Bibliothek selbst gelinkt sind
@@ -56188,7 +56496,7 @@ für den eigenen Gebrauch des Empfängers und ein Rückbilden
gestatten.
Sie müssen bei jeder Kopie des Datenwerks deutlich erkennbar angeben,
-daß die Bibliothek darin genutzt wird und daß die Bibliothek und Ihre
+dass die Bibliothek darin genutzt wird und dass die Bibliothek und Ihre
Benutzung durch die Lizenz abgedeckt sind. Sie müssen eine Kopie
dieser Lizenz mitgeben. Wenn das Datenwerk bei seiner Ausführung
Copyright-Vermerke anzeigt, müssen Sie den Copyright-Vermerk für
@@ -56199,16 +56507,16 @@ eines der nachfolgend genannten fünf Dinge tun:
@enumerate a
@item
Liefern Sie das Datenwerk zusammen mit dem vollständigen zugehörigen
-maschinenlesbaren Quelltext der Bibliothek aus, und zwar ein-
-schließlich jeglicher in dem Datenwerk angewandter Änderungen (wobei
+maschinenlesbaren Quelltext der Bibliothek aus, und zwar
+einschließlich jeglicher in dem Datenwerk angewandter Änderungen (wobei
dessen Weitergabe gemäß den Bedingungen der Paragraphen 1 und 2
erfolgen muß); und wenn das Datenwerk ein ausführbares, mit der
Bibliothek gelinktes Programm ist, dann liefern Sie es zusammen
mit dem vollständigen maschinenlesbaren "Datenwerk, das die
-Bibliothek nutzt, in Form von Objektcode und/oder Quelltext, so daß
+Bibliothek nutzt, in Form von Objektcode und/oder Quelltext, so dass
der Benutzer die Bibliothek verändern und dann erneut linken kann,
um ein verändertes ausführbares Programm zu erzeugen, das die
-veränderte Bibliothek enthält. (Es versteht sich, daß der Benutzer,
+veränderte Bibliothek enthält. (Es versteht sich, dass der Benutzer,
der die Inhalte von Definitionsdateien in der veränderten Bibliothek
verändert, nicht notwendigerweise in der Lage sein wird, die Anwendung
neu zu compilieren, um die veränderten Definitionen zu benutzen.)
@@ -56217,8 +56525,8 @@ neu zu compilieren, um die veränderten Definitionen zu benutzen.)
Benutzen Sie einen geeigneten ,,shared-library-Mechanismus`` zum
Linken mit der Bibliothek. Geeignet ist ein solcher Mechanismus,
der erstens während der Laufzeit eine im Computersystem des Benutzers
-bereits vorhandene Kopie der Bibliothek benutzt, anstatt Bibliotheks-
-funktionen in das ausführbare Programm zu kopieren, und der zweitens
+bereits vorhandene Kopie der Bibliothek benutzt, anstatt
+Bibliotheksfunktionen in das ausführbare Programm zu kopieren, und der zweitens
auch mit einer veränderten Version der Bibliothek, wenn der Benutzer
eine solche installiert, richtig funktioniert, solange die veränderte
Version schnittstellenkompatibel mit der Version ist, mit der das
@@ -56231,32 +56539,32 @@ Paragraph 6, Absatz (a) genannten Materialien zu Kosten, welche die
reinen Weitergabekosten nicht übersteigen, zur Verfügung zu stellen.
@item
-Wenn die Weitergabe des Datenwerks dadurch erfolgt, daß die
+Wenn die Weitergabe des Datenwerks dadurch erfolgt, dass die
Möglichkeit des Abrufens einer Kopie von einem bestimmten Ort
angeboten wird, bieten Sie gleichwertigen Zugang zum Kopieren der
oben angegebenen Materialien von dem gleichen Ort an.
@item
-Sie vergewissern sich, daß der Benutzer bereits eine Kopie dieser
-Materialien erhalten hat oder daß Sie diesem Benutzer bereits eine
+Sie vergewissern sich, dass der Benutzer bereits eine Kopie dieser
+Materialien erhalten hat oder dass Sie diesem Benutzer bereits eine
Kopie geschickt haben.
@end enumerate
-Für ein ausführbares Programm muß die verlangte Form des
+Für ein ausführbares Programm muss die verlangte Form des
"Datenwerks, das die Bibliothek nutzt" alle Daten und Hilfsprogramme
mit einschließen, die man braucht, um daraus das ausführbare Programm
-zu reproduzieren. Doch gilt eine spezielle Ausnahme: Die weiter-
-zugebenden Materialien brauchen nicht alles das zu enthalten, was
+zu reproduzieren. Doch gilt eine spezielle Ausnahme: Die
+weiterzugebenden Materialien brauchen nicht alles das zu enthalten, was
normalerweise (in Quelltext-Form oder in binärer Form) mit den
Hauptbestandteilen (Compiler, Kern usw.) des Betriebssystems,
auf denen das ausführbare Programm läuft, weitergegeben wird, es
sei denn, das ausführbare Programm gehört selbst zu diesem
Hauptbestandteil.
-Es kann vorkommen, daß diese Anforderung im Widerspruch zu Lizenz-
-beschränkungen anderer, proprietärer Bibliotheken steht, die
+Es kann vorkommen, dass diese Anforderung im Widerspruch zu
+Lizenzbeschränkungen anderer, proprietärer Bibliotheken steht, die
normalerweise nicht zum Betriebssystem gehören. Ein solcher
-Widerspruch bedeutet, daß Sie nicht gleichzeitig jene proprietären
+Widerspruch bedeutet, dass Sie nicht gleichzeitig jene proprietären
Bibliotheken und die vorliegende Bibliothek zusammen in einem
ausführbaren Programm, das Sie weitergeben, verwenden dürfen.
@@ -56265,9 +56573,9 @@ Sie dürfen Bibliotheks-Funktionseinheiten, die ein auf der Bibliothek
basierendes Datenwerk darstellen, zusammen mit anderen, nicht unter
diese Lizenz fallenden Funktionseinheiten in eine einzelne Bibliothek
einbauen und eine solche kombinierte Bibliothek weitergeben,
-vorausgesetzt, daß die gesonderte Weitergabe des auf der Bibliothek
+vorausgesetzt, dass die gesonderte Weitergabe des auf der Bibliothek
basierenden Datenwerks einerseits und der anderen Funktionseinheiten
-andererseits ansonsten gestattet ist, und vorausgesetzt, daß Sie
+andererseits ansonsten gestattet ist, und vorausgesetzt, dass Sie
folgende zwei Dinge tun:
@enumerate a
@@ -56275,12 +56583,12 @@ folgende zwei Dinge tun:
Geben Sie zusammen mit der kombinierten Bibliothek auch eine Kopie
desselben auf der Bibliothek basierenden Datenwerks mit, die nicht
mit irgendwelchen anderen Funktionseinheiten kombiniert ist.
-Dieses Datenwerk muß unter den Bedingungen der obigen Paragraphen
+Dieses Datenwerk muss unter den Bedingungen der obigen Paragraphen
weitergegeben werden.
@item
Weisen Sie bei der kombinierten Bibliothek an prominenter Stelle
-auf die Tatsache hin, daß ein Teil davon ein auf der Bibliothek
+auf die Tatsache hin, dass ein Teil davon ein auf der Bibliothek
basierendes Datenwerk ist, und erklären Sie, wo man die mitgegebene
unkombinierte Form desselben Datenwerks finden kann.
@end enumerate
@@ -56289,8 +56597,8 @@ unkombinierte Form desselben Datenwerks finden kann.
Sie dürfen die Bibliothek nicht vervielfältigen, verändern, weiter
lizenzieren oder verbreiten oder mit ihr linken, sofern es nicht durch
diese Lizenz ausdrücklich gestattet ist. Jeder anderweitige Versuch
-der Vervielfältigung, Modifizierung, Weiterlizenzierung und Ver-
-breitung sowie des Linkens mit der Bibliothek ist unzulässig und
+der Vervielfältigung, Modifizierung, Weiterlizenzierung und
+Verbreitung sowie des Linkens mit der Bibliothek ist unzulässig und
beendet automatisch Ihre Rechte unter dieser Lizenz. Doch werden
die Lizenzen Dritter, die von Ihnen Kopien oder Rechte unter dieser
Lizenz erhalten haben, nicht beendet, solange diese Dritten die Lizenz
@@ -56320,7 +56628,7 @@ Einhaltung dieser Lizenz durch Dritte durchzusetzen.
@item
Sollten Ihnen infolge eines Gerichtsurteils, des Vorwurfs einer
Patentverletzung oder aus einem anderen Grunde (nicht auf
-Patentfragen begrenzt) Bedingungen (durch Gerichtsbeschluß,
+Patentfragen begrenzt) Bedingungen (durch Gerichtsbeschluss,
Vergleich oder anderweitig) auferlegt werden, die den Bedingungen
dieser Lizenz widersprechen, so befreien diese Umstände Sie nicht
von den Bestimmungen dieser Lizenz. Wenn es Ihnen nicht möglich ist,
@@ -56358,10 +56666,10 @@ ist.
@item
Wenn die Verbreitung und/oder die Benutzung der Bibliothek in
bestimmten Staaten entweder durch Patente oder durch urheberrechtlich
-geschützte Schnittstellen eingeschränkt ist, kann der Urheberrechts-
-inhaber, der die Bibliothek unter diese Lizenz gestellt hat, eine
-explizite geographische Beschränkung der Verbreitung angeben, in der
-diese Staaten ausgeschlossen werden, so daß die Verbreitung nur
+geschützte Schnittstellen eingeschränkt ist, kann der
+Urheberrechtsinhaber, der die Bibliothek unter diese Lizenz gestellt
+hat, eine explizite geographische Beschränkung der Verbreitung angeben,
+in der diese Staaten ausgeschlossen werden, so dass die Verbreitung nur
innerhalb und zwischen den Staaten erlaubt ist, die nicht demgemäß
ausgeschlossen sind. In einem solchen Fall beinhaltet diese Lizenz
die Beschränkung, als wäre sie in diesem Text niedergeschrieben.
@@ -56374,7 +56682,7 @@ der gegenwärtigen entsprechen, können aber im Detail abweichen, um
neuen Problemen und Anforderungen gerecht zu werden.
Jede Version dieser Lizenz hat eine eindeutige Versionsnummer.
-Wenn in einem Programm angegeben wird, daß es dieser Lizenz in einer
+Wenn in einem Programm angegeben wird, dass es dieser Lizenz in einer
bestimmten Versionsnummer oder "jeder späteren Version" ("any later
version") unterliegt, so haben Sie die Wahl, entweder den Bestimmungen
der genannten Version zu folgen oder denen jeder beliebigen späteren
@@ -56409,7 +56717,7 @@ keinerlei Gewährleistung für die Bibliothek, soweit dies gesetzlich
zulässig ist. Sofern nicht anderweitig schriftlich bestätigt, stellen
die Copyright-Inhaber und/oder Dritte die Bibliothek "so, wie sie ist"
zur Verfügung, ohne Gewährleistung irgendeiner Art, weder ausdrücklich
-noch implizit. Dieser Garantieausschluß gilt auch - ohne darauf
+noch implizit. Dieser Garantieausschluss gilt auch - ohne darauf
beschränkt zu sein - für Marktreife oder Verwendbarkeit für einen
bestimmten Zweck. Das volle Risiko bezüglich Qualität und Leistungs-
fähigkeit der Bibliothek liegt bei Ihnen. Sollte sich die Bibliothek
@@ -56443,7 +56751,7 @@ Möglichkeit solcher Schäden informiert worden ist.
@appendixsec Anhang: Wie Sie diese Bedingungen auf Ihre eigenen, neuen Bibliotheken anwenden können
-Wenn Sie eine neue Bibliothek entwickeln und wünschen, daß sie
+Wenn Sie eine neue Bibliothek entwickeln und wünschen, dass sie
von größtmöglichem Nutzen für die Allgemeinheit ist, dann empfehlen
wir Ihnen, sie zu einer freien Software zu machen, die jedermann
weiterverteilen und verändern kann. Dies können sie tun, indem Sie
@@ -56489,7 +56797,7 @@ Foundation veröffentlicht, weiterverteilen und/oder modifizieren;
entweder gemäß Version 2.1 der Lizenz oder (nach Ihrer Option)
jeder späteren Version.
-Diese Bibliothek wird in der Hoffnung weiterverbreitet, daß sie
+Diese Bibliothek wird in der Hoffnung weiterverbreitet, dass sie
nützlich sein wird, jedoch OHNE IRGENDEINE GARANTIE, auch ohne
die implizierte Garantie der MARKTREIFE oder der VERWENDBARKEIT
FÜR EINEN BESTIMMTEN ZWECK. Mehr Details finden Sie in der
@@ -56533,12 +56841,20 @@ Ty Coon, Vizepräsident
Das war schon alles!
+
+@c German FIX this node entry and section header were missing!
+@c I made a guess as to what the German section title should be like ;-)
+@node Function Index, Concept Index, LGPL license, Top
+@c German node Function Index
+@unnumbered SQL Command, Typ und Funktion Index
+
@printindex fn
@page
@node Concept Index, , Function Index, Top
+@c German node Concept Index
@unnumbered Concept Index
@printindex cp