12
MySQL Das offizielle Handbuch IT-Studienausgabe Übersetzung von Stefan Hinz t-y;

MySQL - tocs.ub.uni-mainz.detocs.ub.uni-mainz.de/pdfs/110914465.pdf · MySQL Java Connectivity (JDBC) 598 MySQL-Python-APIs 598 MySQL-Tcl-APIs 598 MySQL-Eiffel-Wrapper 598 Kapitel

  • Upload
    vuthien

  • View
    224

  • Download
    0

Embed Size (px)

Citation preview

Page 1: MySQL - tocs.ub.uni-mainz.detocs.ub.uni-mainz.de/pdfs/110914465.pdf · MySQL Java Connectivity (JDBC) 598 MySQL-Python-APIs 598 MySQL-Tcl-APIs 598 MySQL-Eiffel-Wrapper 598 Kapitel

MySQLDas offizielle Handbuch

IT-Studienausgabe

Übersetzung von Stefan Hinz

t-y;

Page 2: MySQL - tocs.ub.uni-mainz.detocs.ub.uni-mainz.de/pdfs/110914465.pdf · MySQL Java Connectivity (JDBC) 598 MySQL-Python-APIs 598 MySQL-Tcl-APIs 598 MySQL-Eiffel-Wrapper 598 Kapitel

Inhaltsverzeichnis

Vorwort 17Vorbemerkungen zum deutschen Handbuch 19Konventionen in diesem Handbuch 20

Kapitel 1: Was ist MySQL? 23Die wichtigsten Features von MySQL 24Wie stabil ist MySQL? 26Wie groß können MySQL-Tabellen sein? 29Jahr-2000-Konformität 29

Was ist MySQL AB? 31Geschäftsmodell und Dienstleistungen von MySQL AB 32

MySQL-Support und Lizensierung 34Support, den MySQL AB anbietet 35Copyrights und Lizenzen, die von MySQLverwendet werden 35MySQL-AB-Logos und -Schutzmarken 36MySQL-Lizenzpolitik 37

MySQL 4.0 kurz und bündig 38Schritt für Schritt 39Für den sofortigen Entwicklungseinsatz 39Eingebettetes MySQL 39Weitere ab MySQL 4.0.0 verfügbare Features 39Zukünftige Features in MySQL 4.0 40MySQL 4.1, das folgende Entwicklungs-Release 40

MySQL-Informationsquellen 41MySQL-Portale 41MySQL-Mailing-Listen 41

Wie Standard-kompatibel ist MySQL? 48An welche Standards hält sich MySQL? 48MySQL im ANSI-Modus laufen lassen 48MySQL-Erweiterungen zu ANSI SQL92 49MySQL-Unterschiede im Vergleich zu ANSI SQL92 51Bekannte Fehler und Design-Unzulänglichkeiten in MySQL 57

Page 3: MySQL - tocs.ub.uni-mainz.detocs.ub.uni-mainz.de/pdfs/110914465.pdf · MySQL Java Connectivity (JDBC) 598 MySQL-Python-APIs 598 MySQL-Tcl-APIs 598 MySQL-Eiffel-Wrapper 598 Kapitel

Inhaltsverzeichnis

MySQL und die Zukunft 60Dinge, die in Version 4.0 enthalten sein sollten 60Dinge, die in naher Zukunft erledigt werden müssen 61Dinge, die irgendwann gemacht werden müssen 64Ein paar Dinge, für deren Umsetzung wir keine Pläne haben 66

MySQL im Vergleich mit anderen Datenbanken 66MySQL im Vergleich mit mSQL 66MySQL im Vergleich mit PostgreSQL 72

Kapitel 2: Installation von MySQL 81Schnelle Standard-Installation von MySQL 81

MySQL auf Linux installieren 81Installation von MySQL unter Windows 82Betriebssysteme, die von MySQL unterstützt werden 84Welche MySQL-Version Sie benutzen sollten 85Installationslayouts 88Wann und wie Updates veröffentlicht werden 89MySQL-Binärdistributionen, die von MySQL AB kompiliert wurden 89

Installation der Quelldistribution 91Schnellinstallation: Überblick 91Wie man Patches anwendet 94Typische configure-Optionen 94Installation vom Entwicklungs-Source-Tree 97Probleme beim Kompilieren? 98Anmerkungen zu MIT-pThreads 101Windows-Quelldistribution 102MySQL bauen 102

Einstellungen und Tests nach der Installation 103Probleme mit mysql_install_db 106Probleme mit dem Start des MySQL-Servers 108MySQL automatisch starten und anhalten 110

MySQL aktualisieren (Upgrade / Downgrade) 111Upgrade von 3.23 auf Version 4.0 111Upgrade von einer Version 3.22 auf 3.23 112Upgrade von Version 3.21 auf Version 3.22 113Upgrade von Version 3.20 auf Version 3.21 113Upgrade auf eine andere Architektur 114

Betriebssystem-spezifische Anmerkungen 115Linux (alle Linux-Versionen) 115Anmerkungen zu Windows 122Anmerkungen zu Solaris 129Anmerkungen zu BSD 133Anmerkungen zu Mac OS X 135Anmerkungen zu anderen Unixen 136Anmerkungen zu OS/2 146Anmerkungen zu BeOS 147Anmerkungen zu Novell Netware 147

Page 4: MySQL - tocs.ub.uni-mainz.detocs.ub.uni-mainz.de/pdfs/110914465.pdf · MySQL Java Connectivity (JDBC) 598 MySQL-Python-APIs 598 MySQL-Tcl-APIs 598 MySQL-Eiffel-Wrapper 598 Kapitel

Inhaltsverzeichnis

Anmerkungen zur Perl-Installation 147Installation von Perl unter Unix 147Installation von ActiveState-Perl unter Windows 148Installation der MySQL-Perl-Distribution unter Windows 149Probleme bei der Benutzung von Perl DBI/DBD-Schnittstelle 149

Kapitel 3: Einführung in MySQL: Ein MySQL-Tutorial 151Verbindung zum Server herstellen und trennen 151Anfragen eingeben 152

Eine Datenbank erzeugen und benutzen 156Eine Datenbank erzeugen und auswählen 157Eine Tabelle erzeugen 158Daten in Tabellen einladen 159Informationen aus einer Tabelle abfragen 160

Informationen über Datenbanken und Tabellen 178

Beispiele gebräuchlicher Anfragen (Queries) 179Der höchste Wert einer Spalte 180Die Zeile, die den höchsten Wert einer bestimmten Spalte enthält 180Höchster Wert einer Spalte pro Gruppe 181Die Zeilen, die das gruppenweise Maximum eines bestimmtenFelds enthalten 181Wie Benutzer-Variablen verwendet werden 182Wie Fremdschlüssel (Foreign Keys) verwendet werden 183Über zwei Schlüssel suchen 185Besuche pro Tag berechnen 185

mysql im Stapelbetrieb (Batch Mode) 186

Anfragen aus dem Zwillings-Projekt 187Alle nicht verteilten Zwillinge finden 188Eine Tabelle über den Zustand von Zwillingspaaren zeigen 191

MySQL mit Apache benutzen 191

Kapitel 4: MySQL-Datenbankadministration 193MySQL konfigurieren 193

mysqld-Kommandozeilenoptionen 193my.cnf-Optionsdateien 198Viele Server auf derselben Maschine installieren 201Viele MySQL-Server auf derselben Maschine laufen lassen 202

Allgemeine Sicherheitsthemen und dasMySQL-Zugriffsberechtigungssystem 203

Allgemeine Sicherheitsrichtlinien 203Wie Sie MySQL gegen Cracker sicher machen 206Startoptionen für mysqld in Bezug auf Sicherheit 207Was das Berechtigungssystem macht 208Wie das Berechtigungssystem funktioniert 208Von MySQL zur Verfügung gestellte Berechtigungen 211Verbinden mit dem MySQL-Server 213

Page 5: MySQL - tocs.ub.uni-mainz.detocs.ub.uni-mainz.de/pdfs/110914465.pdf · MySQL Java Connectivity (JDBC) 598 MySQL-Python-APIs 598 MySQL-Tcl-APIs 598 MySQL-Eiffel-Wrapper 598 Kapitel

Inhaltsverzeichnis

Zugriffskontrolle, Phase 1: Verbindungsüberprüfung 214Zugriffskontrolle, Phase 2: Anfrageüberprüfung 217Gründe für Access denied-Fehler 219

MySQL-Benutzerkonten-Verwaltung 223GRANT- und REVOKE-Syntax 223MySQL-Benutzernamen und -Passwörter 228Wann Berechtigungsänderungen wirksam werden 229Einrichtung der anfänglichen MySQL-Berechtigungen 229Neue MySQL-Benutzer hinzufügen 230Passwörter einrichten 233Wie Sie Ihre Passwörter sicher halten 234

Disaster-Management und Wiederherstellung 235Datenbank-Datensicherungen 235BACKUP TABLE-Syntax 236RESTORE TABLE-Syntax 237CHECK TABLE-Syntax 237REPAIR TABLE-Syntax 239Benutzung von myisamchk für Tabellenwartung und Absturzreparatur 239Wartungsplan für Tabellen erstellen 250Informationen über eine Tabelle erhalten 250

Datenbankverwaltung: Sprachreferenz 257OPTIMIZE TABLE-Syntax 257ANALYZE TABLE-Syntax 258FLUSH-Syntax 258KILL-Syntax 259SHOW-Syntax 259

MySQL-Lokalisierung und internationaler Gebrauch 276Der für Daten und Sortieren benutzte Zeichensatz 276Nicht-englische Fehlermeldungen 278Einen neuen Zeichensatz hinzufügen 278Die Zeichen-Definitions-Arrays 279Unterstützung für Zeichenketten-Vergleich 280Unterstützung für Multi-Byte-Zeichen 280Probleme mit Zeichensätzen 280

Serverseitige Skripte und Dienstprogramme für MySQL 281Überblick über serverseitige Programme und Dienstprogramme 281safe_mysqld, der Wrapper um mysqld 283mysqld_multi, Programm zur Verwaltung mehrerer MySQL-Server 285myisampack, MySQL-Programm zum Erzeugen komprimierterNur-Lese-Tabellen 288mysqld-max, ein erweiterter mysqld-Server 295

Clientseitige Skripte und Hilfsprogramme von MySQL 297Überblick über die clientseitigen Skripte und Dienstprogramme 297Das Kommandozeilen-Werkzeug 299mysqladmin, Verwaltung eines MySQL-Servers 305Benutzung von mysqlcheck für Tabellenwartung und Wiederherstellungnach Abstürzen 307

Page 6: MySQL - tocs.ub.uni-mainz.detocs.ub.uni-mainz.de/pdfs/110914465.pdf · MySQL Java Connectivity (JDBC) 598 MySQL-Python-APIs 598 MySQL-Tcl-APIs 598 MySQL-Eiffel-Wrapper 598 Kapitel

Inhaltsverzeichnis

mysqldump, Tabellenstrukturen und -daten dumpen 309mysqlhotcopy, MySQL-Datenbanken und Tabellen kopieren 313mysqlimport, Daten aus Textdateien importieren 315Datenbanken, Tabellen und Spalten anzeigen 317perror, Erklärung der Fehler-Codes 318Wie SQL-Befehle aus einer Textdatei laufen gelassen werden 318

Die MySQL-Log-Dateien 318Die Fehler-Log-Datei 319Die allgemeine Anfragen-Log-Datei 319Die Update-Log-Datei 319Die binäre Update-Log-Datei 320Die Anfragen-Log-Datei für langsame Anfragen 321Wartung und Pflege der Log-Dateien 322

Replikation bei MySQL 322Einführung in die Replikation 322Replikationsimplementation 323Wie man Replikation aufsetzt 323Replikationsfeatures und bekannte Probleme 325Replikationsoptionen in my.cnf 326SQL-Befehle in Bezug auf Replikation 329Replikation - Häufig gestellte Fragen 330Problemlösung bei Replikation 333

Kapitel 5: MySQL-Optimierung 335Überblick über Optimierung 335

MySQL-Design-Einschränkungen 336Portabilität 336Wofür benutzen wir MySQL? 337Die MySQL-Benchmark-Suite 338Wie Sie Ihre eigenen Benchmarks benutzen 339

SELECTs und andere Anfragen optimieren 339EXPLAIN-Syntax (Informationen über ein SELECT erhalten) 340Anfragen-Performance abschätzen 346Geschwindigkeit von SELECT-Anfragen 346Wie MySQL WHERE-Klauseln optimiert 346Wie MySQL DISTINCT optimiert 348Wie MySQL LEFT JOIN optimiert 349Wie MySQL LIMIT optimiert 349Geschwindigkeit von INSERT-Anfragen 350Geschwindigkeit von UPDATE-Anfragen 351Geschwindigkeit von DELETE-Anfragen 352Weitere Optimierungstipps 352

Sperren (Locking) 354Wie MySQL Tabellen sperrt 354Themen, die Tabellensperren betreffen 355

Optimierung der Datenbank-Struktur 356MySQL-Datenbank-Design-Überlegungen 356

Page 7: MySQL - tocs.ub.uni-mainz.detocs.ub.uni-mainz.de/pdfs/110914465.pdf · MySQL Java Connectivity (JDBC) 598 MySQL-Python-APIs 598 MySQL-Tcl-APIs 598 MySQL-Eiffel-Wrapper 598 Kapitel

Inhaltsverzeichnis

Wie Sie Ihre Daten so klein wie möglich bekommen 357Wie MySQL Indexe benutzt 358Spalten-Indexe 360Mehrspaltige Indexe 360Wie MySQL Tabellen öffnet und schließt 361Nachteile der Erzeugung großer Mengen von Tabellen in derselben Datenbank 362Warum gibt es so viele offene Tabellen? 362

Optimierung des MySQL-Servers 363System / Kompilierzeitpunkt und Tuning der Startparameter 363Server-Parameter runen 363Wie Kompilieren und Linken die Geschwindigkeit von MySQL beeinflusst . .. 365Wie MySQL Speicher benutzt 366Wie MySQL DNS benutzt 368SET-Syntax 368Festplatte, Anmerkungen 371Symbolische Links benutzen 372

Kapitel 6: MySQL-Sprachreferenz 375Sprachstruktur 375

Literale: Wie Zeichenketten und Zahlen geschrieben werden 375Datenbank-, Tabellen-, Index-, Spalten- und Alias-Namen 378Groß-/Kleinschreibung in Namen 380Benutzer-Variablen 380Kommentar-Syntax 381Ist MySQL pingelig hinsichtlich reservierter Wörter? 382

Spaltentypen 384Numerische Typen 388Datums- und Zeit-Typen 389Zeichenketten-Typen 395Den richtigen Typ für eine Spalte auswählen 399Spaltentypen anderer Datenbanken benutzen ; 399Speicherbedarf von Spaltentypen 400

Funktionen für die Benutzung in SELECT-und WHERE-Klauseln . . . 401Nicht typenspezifische Operatoren und Funktionen 402Ablaufsteuerungsfunktionen 406Zeichenketten-Funktionen 408Numerische Funktionen 419Datums- und Zeit-Funktionen 427Weitere Funktionen 435Funktionen zur Benutzung bei GROUP BY-Klauseln 440

Datenmanipulation:SELECT, INSERT, UPDATE, DELETE 442

SELECT-Syntax 442UPDATE-Syntax 452DELETE-Syntax 452

Page 8: MySQL - tocs.ub.uni-mainz.detocs.ub.uni-mainz.de/pdfs/110914465.pdf · MySQL Java Connectivity (JDBC) 598 MySQL-Python-APIs 598 MySQL-Tcl-APIs 598 MySQL-Eiffel-Wrapper 598 Kapitel

Inhaltsverzeichnis

Datendefinition: CREATE, DROP, ALTER 460CREATE DATABASE-Syntax 460DROP DATABASE-Syntax 461CREATE TABLE-Syntax 461ALTER TABLE-Syntax 468RENAME TABLE-Syntax 472DROP TABLE-Syntax 472CREATE INDEX-Syntax 473DROP INDEX-Syntax 473

Grundlegende Befehle des MySQL-Dienstprogramms für Benutzer . . . 473USE-Syntax 473DESCRIBE-Syntax (Informationen über Spalten erhalten) 474

Transaktionale und Sperrbefehle von MySQL 474BEGIN/COMMIT/ROLLBACK-Syntax 474LOCK TABLES/UNLOCK TABLES-Syntax 475SET TRANSACTION-Syntax 477

MySQL-Volltextsuche 477Volltext-Einschränkungen 479MySQL-Volltextsuche fein einstellen 480Neue Features der Volltextsuche in MySQL 4.0 480Volltextsuche TODO-Liste 481

MySQL-Anfragen-Cache 481Wie der Anfragen-Cache funktioniert 481Anfragen-Cache-Konfiguration 482Anfragen-Cache-Optionen in SELECT 483Anfragen-Cache-Status und -Wartung 483

Kapitel 7: MySQL-Tabellentypen 485MylSAM-Tabellen 486

Für Schlüssel benötigter Speicherplatz 488MylSAM-Tabellenformate 489MylSAM-Tabellenprobleme 491

MERGE-Tabellen 492MERGE-Tabellenprobleme 494

ISAM-Tabellen 495HEAP-Tabellen 496InnoDB-Tabellen 497

Überblick über InnoDB-Tabellen 497Mit InnoDB anfangen - Optionen 498InnoDB-Tabellenplatz (Tablespace) erzeugen 501InnoDB-Tabellen erzeugen 502Hinzufügen und Entfernen von InnoDB-Daten- und -Log-Dateien 504Datensicherung und Wiederherstellung einer InnoDB-Datenbank 505Eine InnoDB-Datenbank auf eine andere Maschine verschieben 506InnoDB-Transaktionsmodell 507

11

Page 9: MySQL - tocs.ub.uni-mainz.detocs.ub.uni-mainz.de/pdfs/110914465.pdf · MySQL Java Connectivity (JDBC) 598 MySQL-Python-APIs 598 MySQL-Tcl-APIs 598 MySQL-Eiffel-Wrapper 598 Kapitel

Inhaltsverzeichnis

Tipps zur Performance-Steigerung 510Implementation des Multiversionings 514Tabellen- und Index-Strukturen 515Verwaltung von Datei-Speicherplatz und Festplatten-Eingaben / -Ausgaben . . 517Fehlerbehandlung 518Beschränkungen von InnoDB-Tabellen 519

BDB- oder Berkeley_db-Tabellen 520Überblick über BDB-Tabellen 520BDB installieren 520BDB-Startoptionen 521Kennzeichen von BDB-Tabellen 521Was in naher Zukunft bei BDB in Ordnung gebracht werden muss 523Betriebssysteme, die von BDB unterstützt werden 523Fehler, die bei der Benutzung von BDB-Tabellen auftreten können 523

Kapitel 8: MySQL-APIs 525MySQL-PHP-API 525

Allgemeine Probleme mit MySQL und PHP 525

MySQL-Perl-API 526DBI mit DBD::mysql 526Die DBI-Schnittstelle 526Portable DBI-Methoden 527MySQL-spezifische Methoden 532Weitere DBI/DBD-Informationen 533

MySQL-ODBC-Unterstützung 533Wie Sie MyODBC installieren 534Wie Sie die verschiedenen Felder im ODBC-AdministratorProgramm ausfüllen 535Verbindungsparameter für MyODBC 535Wie Sie Probleme mit MyODBC berichten 537Programme, die bekanntermaßen mit MyODBC zusammenarbeiten 537Wie man den Wert einer AUTOJNCREMENT-Spalte in ODBC erhält 542Probleme mit MyODBC berichten 542

MySQL-C-API 543C-API-Datentypen 544C-API-Funktionsüberblick 547C-API-Funktionsbeschreibungen 550C-Threaded-Funktionsbeschreibungen 585C-Embedded-Server-Funktionsbeschreibungen 585Häufige Fragen und Probleme bei der Benutzung der C-API 587Client-Programme bauen 589Wie man einen threaded Client herstellt 589libmysqld, die eingebettete MySQL-Server-Bibliothek 590

MySQL-C++-APIs 598Borland C++ 598

12

Page 10: MySQL - tocs.ub.uni-mainz.detocs.ub.uni-mainz.de/pdfs/110914465.pdf · MySQL Java Connectivity (JDBC) 598 MySQL-Python-APIs 598 MySQL-Tcl-APIs 598 MySQL-Eiffel-Wrapper 598 Kapitel

Inhaltsverzeichnis

MySQL Java Connectivity (JDBC) 598MySQL-Python-APIs 598MySQL-Tcl-APIs 598MySQL-Eiffel-Wrapper 598

Kapitel 9: MySQL erweitern 599Hinzufügen neuer Funktionen zu MySQL 599

CREATE FUNCTION / DROP FUNCTION-Syntax 599Hinzufügen einer neuen benutzerdefinierten Funktion 600Hinzufügen einer neuen nativen Funktion 606

Hinzufügen neuer Prozeduren zu MySQL 607Prozeduranalyse 608Eine Prozedur schreiben 608

MySQL-Interna 608MySQL-Thread 608MySQL-Test-Suite 609

Anhang A: Wie man feststellt, was Probleme verursacht 613Einige gebräuchliche Fehler bei der Benutzung von MySQL 614

Access denied-Fehler 614MySQL server has gone away-Fehler 614Can't connect to [local] MySQL server-Fehler 615Host'...' is blocked-Fehler 617Too many connections-Fehler 617Some non-transactional changed tables couldn't be rolled back-Fehler 617No free memory-Fehler 618Packet too large-Fehler 618Kommunikationsfehler / Abgebrochene Verbindung 618The table is full-Fehler 619Can't create/write to file-Fehler 619Command out of sync-Fehler in Client 620

User ignored-Fehler 620Table 'xxx' doesn't exist-Fehler 620Can&tacute; initialize charset xxx-Fehler 620File Not Found 621

Installationsbezogene Themen 622Probleme beim Linken mit der MySQL-Client-Bibliothek 622Wie man MySQL als normaler Benutzer laufen läßt 622Probleme mit Dateirechten 623

Administrationsbezogene Themen 624Was zu tun ist, wenn MySQL andauernd abstürzt 624Wie ein vergessenes Passwort zurückgesetzt wird 626Wie MySQL mit vollen Festplatten umgeht 627Wohin MySQL temporäre Dateien speichert 627Wie Sie die MySQL-Socket-Datei Vtmp/mysql.sock' schützen oder ändern . . . 628Zeitzonen-Probleme 628

13

Page 11: MySQL - tocs.ub.uni-mainz.detocs.ub.uni-mainz.de/pdfs/110914465.pdf · MySQL Java Connectivity (JDBC) 598 MySQL-Python-APIs 598 MySQL-Tcl-APIs 598 MySQL-Eiffel-Wrapper 598 Kapitel

Inhaltsverzeichnis

Anfragenbezogene Themen 629Groß-/Kleinschreibung beim Suchen 629Probleme bei der Benutzung von DATE-Spalten 629Probleme mit NULL-Werten 630Probleme mit alias 631Zeilen aus verwandten Tabellen löschen 631Probleme bei keinen übereinstimmenden Zeilen lösen 631

Tabellendefinitionsbezogene Themen 632Probleme mit ALTER TABLE 632Wie man die Reihenfolge der Spalten in einer Tabelle ändert 633TEMPORARY TABLE-Probleme 633

Anhang B: Firmen, die MySQL einsetzen 635Allgemeine News-Sites 635Einige Web-Suchmaschinen 635Einige Informations-Suchmaschinen mit Konzentration auf bestimmte Felder636

Online-Magazine 636Websites, die MySQL als Backend benutzen 636Einige Domain- / Internet- / Web- und verwandte Services 637Websites, die PHP und MySQL benutzen 637Einige MySQL-Berater 638Programmierung 638Nicht kategorisierte Seiten 638

Anhang C: MySQL-Benutzung durch Kunden 641

Anhang D: Beigesteuerte Programme 643

Anhang E: sec-APIs 645Clients 647Web-Werkzeuge 650Performance-Benchmark-Werkzeuge 651Authentifizierungswerkzeuge 651Konverter 652MySQL mit anderen Produkten benutzen 653Nützliche Werkzeuge 653RPMs für gebräuchliche Werkzeuge (die meisten sind für RedHat 6.1) 654Nützliche Funktionen 654Windows-Programme 654Nicht kategorisiert 654

14

Page 12: MySQL - tocs.ub.uni-mainz.detocs.ub.uni-mainz.de/pdfs/110914465.pdf · MySQL Java Connectivity (JDBC) 598 MySQL-Python-APIs 598 MySQL-Tcl-APIs 598 MySQL-Eiffel-Wrapper 598 Kapitel

Inhaltsverzeichnis

Anhang F: Danksagungen 655Entwickler bei MySQL AB 655Kontributoren zu MySQL 657Unterstützer von MySQL 664

Anhang G: MySQL-Änderungsverlauf (Change History) 665Änderungen in Release 4.0.x (Entwicklung; Alpha) 665

Änderungen in Release 4.0.2 665Änderungen in Release 4.0.1 665Änderungen in Release 4.0.0 666

Änderungen in Release 3.23.x (Stabil) 667

Anhang H: Anmerkungen zur Portierung auf andere Systeme 697Einen MySQL-Server debuggen 698

MySQL zum Debuggen kompilieren 698Trace-Dateien erzeugen 699mysqld unter gdb debuggen 699Einen Stack-Trace benutzen 700Log-Dateien benutzen, um Gründe für Fehler in mysqld zu finden 701Einen Testfall herstellen, wenn Sie Tabellenbeschädigung feststellen 702

Einen MySQL-Client debuggen 703Das DBUG-Paket 703Sperrmethoden 705Anmerkungen zu RTS-Thread 706Unterschiede zwischen verschiedenen Thread-Paketen 707

Anhang I: Umgebungsvariablen 709

Anhang J: Beschreibung der MySQL-Syntax für reguläre Ausdrücke 711

Anhang K: GNU GENERAL PUBLIC LICENSE 715Vorwort 715Anhang: Wie Sie diese Bedingungen auf Ihre neuen Programme anwendbarmachen 719

Anhang L: GNU LESSER GENERAL PUBLIC LICENSE 723Vorwort 723Anhang: Wie Sie diese Bedingungen auf Ihre eigenen, neuen Bibliothekenanwenden können 730

Stichwortverzeichnis 733

t15