742
MySQL Das offizielle Handbuch

MYSQL - Das offizielle Handbuch

  • Upload
    leduong

  • View
    260

  • Download
    14

Embed Size (px)

Citation preview

  • MySQLDas offizielle Handbuch

  • MySQLDas offizielle Handbuch

    bersetzung von Stefan Hinz

  • Die Deutsche Bibliothek CIP-Einheitsaufnahme

    Ein Titeldatensatz fr diese Publikation ist bei Der Deutschen Bibliothek erhltlich.

    ISBN 3-8266-0888-71. Auflage 2002

    Alle Rechte, auch die der bersetzung, vorbehalten. Kein Teil des Werkes darf in irgendeiner Form(Druck, Fotokopie, Mikrofilm oder einem anderen Verfahren) ohne schriftliche Genehmigung desVerlages reproduziert oder unter Verwendung elektronischer Systeme verarbeitet, vervielfltigtoder verbreitet werden. Der Verlag bernimmt keine Gewhr fr die Funktion einzelnerProgramme oder von Teilen derselben. Insbesondere bernimmt er keinerlei Haftung fr eventu-elle, aus dem Gebrauch resultierende Folgeschden.

    Die Wiedergabe von Gebrauchsnamen, Handelsnamen, Warenbezeichnungen usw. in diesem Werkberechtigt auch ohne besondere Kennzeichnung nicht zu der Annahme, dass solche Namen imSinne der Warenzeichen- und Markenschutz-Gesetzgebung als frei zu betrachten wren und dahervon jedermann benutzt werden drften.

    Original English language edition text and art copyright Copyright 1997-2002 MySQL AB

    Printed in Germany

    Lektorat: Volker BombienHerstellung: Michle Albers

    Satz und Layout: G&U e.Publishing Services GmbH, Flensburg Druck: Media-Print, Paderborn

  • Inhaltsverzeichnis

    Vorwort 17

    Kapitel5Vorbemerkungen zum deutschen Handbuch 19Konventionen in diesem Handbuch 20

    1: Was ist MySQL? 23Die wichtigsten Features von MySQL 24Wie stabil ist MySQL? 26Wie gro knnen MySQL-Tabellen sein? 29Jahr-2000-Konformitt 29

    Was ist MySQL AB? 31Geschftsmodell und Dienstleistungen von MySQL AB 32

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

    MySQL 4.0 kurz und bndig 38Schritt fr Schritt 39Fr den sofortigen Entwicklungseinsatz 39Eingebettetes MySQL 39Weitere ab MySQL 4.0.0 verfgbare Features 39Zuknftige 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 hlt sich MySQL? 48MySQL im ANSI-Modus laufen lassen 48MySQL-Erweiterungen zu ANSI SQL92 49MySQL-Unterschiede im Vergleich zu ANSI SQL92 51Bekannte Fehler und Design-Unzulnglichkeiten in MySQL 57

  • Inhaltsverzeichnis

    6

    MySQL und die Zukunft 60Dinge, die in Version 4.0 enthalten sein sollten 60Dinge, die in naher Zukunft erledigt werden mssen 61Dinge, die irgendwann gemacht werden mssen 64Ein paar Dinge, fr deren Umsetzung wir keine Plne 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 untersttzt werden 84Welche MySQL-Version Sie benutzen sollten 85Installationslayouts 88Wann und wie Updates verffentlicht werden 89MySQL-Binrdistributionen, 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

  • 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: Einfhrung in MySQL: Ein MySQL-Tutorial 151

    Kapitel7

    Verbindung zum Server herstellen und trennen 151Anfragen eingeben 152Eine Datenbank erzeugen und benutzen 156

    Eine Datenbank erzeugen und auswhlen 157Eine Tabelle erzeugen 158Daten in Tabellen einladen 159Informationen aus einer Tabelle abfragen 160

    Informationen ber Datenbanken und Tabellen 178Beispiele gebruchlicher Anfragen (Queries) 179

    Der hchste Wert einer Spalte 180Die Zeile, die den hchsten Wert einer bestimmten Spalte enthlt 180Hchster Wert einer Spalte pro Gruppe 181Die Zeilen, die das gruppenweise Maximum eines bestimmten Felds enthalten 181Wie Benutzer-Variablen verwendet werden 182Wie Fremdschlssel (Foreign Keys) verwendet werden 183ber zwei Schlssel suchen 185Besuche pro Tag berechnen 185

    mysql im Stapelbetrieb (Batch Mode) 186Anfragen aus dem Zwillings-Projekt 187

    Alle nicht verteilten Zwillinge finden 188Eine Tabelle ber den Zustand von Zwillingspaaren zeigen 191

    MySQL mit Apache benutzen 191

    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 das MySQL-Zugriffsberechtigungssystem 203

    Allgemeine Sicherheitsrichtlinien 203Wie Sie MySQL gegen Cracker sicher machen 206Startoptionen fr mysqld in Bezug auf Sicherheit 207Was das Berechtigungssystem macht 208Wie das Berechtigungssystem funktioniert 208Von MySQL zur Verfgung gestellte Berechtigungen 211Verbinden mit dem MySQL-Server 213Zugriffskontrolle, Phase 1: Verbindungsberprfung 214

  • Inhaltsverzeichnis

    8

    Zugriffskontrolle, Phase 2: Anfrageberprfung 217Grnde fr Access denied-Fehler 219

    MySQL-Benutzerkonten-Verwaltung 223GRANT- und REVOKE-Syntax 223MySQL-Benutzernamen und -Passwrter 228Wann Berechtigungsnderungen wirksam werden 229Einrichtung der anfnglichen MySQL-Berechtigungen 229Neue MySQL-Benutzer hinzufgen 230

    Passwrter einrichten 233Wie Sie Ihre Passwrter sicher halten 234

    Disaster-Management und Wiederherstellung 235Datenbank-Datensicherungen 235BACKUP TABLE-Syntax 236RESTORE TABLE-Syntax 237CHECK TABLE-Syntax 237REPAIR TABLE-Syntax 239Benutzung von myisamchk fr Tabellenwartung und Absturzreparatur 239Wartungsplan fr 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 fr Daten und Sortieren benutzte Zeichensatz 276Nicht-englische Fehlermeldungen 278Einen neuen Zeichensatz hinzufgen 278Die Zeichen-Definitions-Arrays 279Untersttzung fr Zeichenketten-Vergleich 280Untersttzung fr Multi-Byte-Zeichen 280Probleme mit Zeichenstzen 280

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

    Clientseitige Skripte und Hilfsprogramme von MySQL 297berblick ber die clientseitigen Skripte und Dienstprogramme 297Das Kommandozeilen-Werkzeug 299mysqladmin, Verwaltung eines MySQL-Servers 305Benutzung von mysqlcheck fr Tabellenwartung und Wiederherstellung nach Abstrzen 307mysqldump, Tabellenstrukturen und -daten dumpen 309

  • Inhaltsverzeichnis

    mysqlhotcopy, MySQL-Datenbanken und Tabellen kopieren 313mysqlimport, Daten aus Textdateien importieren 315Datenbanken, Tabellen und Spalten anzeigen 317perror, Erklrung 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 319

    Kapitel9

    Die Update-Log-Datei 319Die binre Update-Log-Datei 320Die Anfragen-Log-Datei fr langsame Anfragen 321Wartung und Pflege der Log-Dateien 322

    Replikation bei MySQL 322Einfhrung in die Replikation 322Replikationsimplementation 323Wie man Replikation aufsetzt 323Replikationsfeatures und bekannte Probleme 325Replikationsoptionen in my.cnf 326SQL-Befehle in Bezug auf Replikation 329Replikation Hufig gestellte Fragen 330Problemlsung bei Replikation 333

    5: MySQL-Optimierung 335berblick ber Optimierung 335

    MySQL-Design-Einschrnkungen 336Portabilitt 336Wofr 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 abschtzen 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

  • Inhaltsverzeichnis

    10

    Wie Sie Ihre Daten so klein wie mglich bekommen 357Wie MySQL Indexe benutzt 358Spalten-Indexe 360Mehrspaltige Indexe 360Wie MySQL Tabellen ffnet und schliet 361Nachteile der Erzeugung groer Mengen von Tabellen in der selben Datenbank 362Warum gibt es so viele offene Tabellen? 362

    Optimierung des MySQL-Servers 363

    KapitelSystem / Kompilierzeitpunkt und Tuning der Startparameter 363Server-Parameter tunen 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

    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 Wrter? 382

    Spaltentypen 384Numerische Typen 388Datums- und Zeit-Typen 389Zeichenketten-Typen 395Den richtigen Typ fr eine Spalte auswhlen 399Spaltentypen anderer Datenbanken benutzen 399Speicherbedarf von Spaltentypen 400

    Funktionen fr 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 442SELECT-Syntax 442UPDATE-Syntax 452DELETE-Syntax 452

  • 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 fr Benutzer 473

    Kapitel11

    USE-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-Einschrnkungen 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

    7: MySQL-Tabellentypen 485MyISAM-Tabellen 486

    Fr Schlssel bentigter Speicherplatz 488MyISAM-Tabellenformate 489MyISAM-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 502Hinzufgen und Entfernen von InnoDB-Daten- und -Log-Dateien 504Datensicherung und Wiederherstellung einer InnoDB-Datenbank 505Eine InnoDB-Datenbank auf eine andere Maschine verschieben 506

  • Inhaltsverzeichnis

    12

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

    KapitelBDB- oder Berkeley_db-Tabellen 520berblick 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 untersttzt werden 523Fehler, die bei der Benutzung von BDB-Tabellen auftreten knnen 523

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

    Allgemeine Probleme mit MySQL und PHP 525MySQL-Perl-API 526

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

    MySQL-ODBC-Untersttzung 533Wie Sie MyODBC installieren 534Wie Sie die verschiedenen Felder im ODBC-Administrator Programm ausfllen 535Verbindungsparameter fr MyODBC 535Wie Sie Probleme mit MyODBC berichten 537Programme, die bekanntermaen mit MyODBC zusammenarbeiten 537Wie man den Wert einer AUTO_INCREMENT-Spalte in ODBC erhlt 542Probleme mit MyODBC berichten 542

    MySQL-C-API 543C-API-Datentypen 544C-API-Funktionsberblick 547C-API-Funktionsbeschreibungen 550C-Threaded-Funktionsbeschreibungen 585C-Embedded-Server-Funktionsbeschreibungen 585Hufige 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

  • Inhaltsverzeichnis

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

    Kapitel 9: MySQL erweitern 599

    Anhang13

    Hinzufgen neuer Funktionen zu MySQL 599CREATE FUNCTION / DROP FUNCTION-Syntax 599Hinzufgen einer neuen benutzerdefinierten Funktion 600Hinzufgen einer neuen nativen Funktion 606

    Hinzufgen neuer Prozeduren zu MySQL 607Prozeduranalyse 608Eine Prozedur schreiben 608

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

    A: Wie man feststellt, was Probleme verursacht 613Einige gebruchliche Fehler bei der Benutzung von MySQL 614

    Access denied-Fehler 614MySQL server has gone away-Fehler 615Cant connect to [local] MySQL server-Fehler 615Host ... is blocked-Fehler 617Too many connections-Fehler 617Some non-transactional changed tables couldnt be rolled back-Fehler 618No free memory-Fehler 618Packet too large-Fehler 618Kommunikationsfehler / Abgebrochene Verbindung 619The table is full-Fehler 619Cant create/write to file-Fehler 620 Command out of sync-Fehler in Client 620User ignored-Fehler 620Table xxx doesnt exist-Fehler 621Can&tacute; initialize charset xxx-Fehler. 621File Not Found 621

    Installationsbezogene Themen 622Probleme beim Linken mit der MySQL-Client-Bibliothek 622Wie man MySQL als normaler Benutzer laufen lt 623Probleme mit Dateirechten 624

    Administrationsbezogene Themen 625Was zu tun ist, wenn MySQL andauernd abstrzt 625Wie ein vergessenes Passwort zurckgesetzt wird 627Wie MySQL mit vollen Festplatten umgeht 628Wohin MySQL temporre Dateien speichert 628Wie Sie die MySQL-Socket-Datei `/tmp/mysql.sock' schtzen oder ndern 629Zeitzonen-Probleme 629

  • Inhaltsverzeichnis

    14

    Anfragenbezogene Themen 630Gro-/Kleinschreibung beim Suchen 630Probleme bei der Benutzung von DATE-Spalten 630Probleme mit NULL-Werten 631Probleme mit alias 632Zeilen aus verwandten Tabellen lschen 632Probleme bei keinen bereinstimmenden Zeilen lsen 633

    Tabellendefinitionsbezogene Themen 634Probleme mit ALTER TABLE. 634Wie man die Reihenfolge der Spalten in einer Tabelle ndert 634

    Anhang

    Anhang

    Anhang

    AnhangTEMPORARY TABLE-Probleme 635

    B: Firmen, die MySQL einsetzen 637Allgemeine News-Sites 637Einige Web-Suchmaschinen 637Einige Informations-Suchmaschinen mit Konzentration auf bestimmte Felder 638Online-Magazine 638Websites, die MySQL als Backend benutzen 638Einige Domain- / Internet- / Web- und verwandte Services 639Websites, die PHP und MySQL benutzen 639Einige MySQL-Berater 640Programmierung 640Nicht kategorisierte Seiten 640

    C: MySQL-Benutzung durch Kunden 643

    D: Beigesteuerte Programme 645

    E: sec-APIs 647Clients 649Web-Werkzeuge 652Performance-Benchmark-Werkzeuge 653Authentifizierungswerkzeuge 653Konverter 654MySQL mit anderen Produkten benutzen 655Ntzliche Werkzeuge 655RPMs fr gebruchliche Werkzeuge (die meisten sind fr RedHat 6.1) 656Ntzliche Funktionen 656Windows-Programme 656Nicht kategorisiert 656

  • Inhaltsverzeichnis

    Anhang F: Danksagungen 657Entwickler bei MySQL AB 657Kontributoren zu MySQL 659Untersttzer von MySQL 666

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

    nderungen in Release 4.0.2 667

    Anhang

    Anhang

    Anhang

    Anhang

    Anhang15

    nderungen in Release 4.0.1 667nderungen in Release 4.0.0 668

    nderungen in Release 3.23.x (Stabil) 669

    H: Anmerkungen zur Portierung auf andere Systeme 701Einen MySQL-Server debuggen 702

    MySQL zum Debuggen kompilieren 702Trace-Dateien erzeugen 703mysqld unter gdb debuggen 703Einen Stack-Trace benutzen 704Log-Dateien benutzen, um Grnde fr Fehler in mysqld zu finden 706Einen Testfall herstellen, wenn Sie Tabellenbeschdigung feststellen 706

    Einen MySQL-Client debuggen 707Das DBUG-Paket 707Sperrmethoden 709Anmerkungen zu RTS-Thread 710Unterschiede zwischen verschiedenen Thread-Paketen 712

    I: Umgebungsvariablen 713

    J: Beschreibung der MySQL-Syntax fr regulre Ausdrcke 715

    K: GNU GENERAL PUBLIC LICENSE 719Vorwort 719Anhang: Wie Sie diese Bedingungen auf Ihre neuen Programme anwendbar machen 723

    L: GNU LESSER GENERAL PUBLIC LICENSE 727Vorwort 727Anhang: Wie Sie diese Bedingungen auf Ihre eigenen, neuen Bibliotheken anwenden knnen 734

    Stichwortverzeichnis 737

  • VAKATVAKAT

  • 17

    Sehr gee

    Sie habgabe isbetreutMITP,onen Anwen

    Ich binund etaverschiApple der vieund fr

    Viele Aten aucttskonBereichtete Mi

    Zunchkommeschwedmen haApril 2Erde. DSprache betreuen, stellen wir sicher, dass nicht nur Funktionen, wie eine korrekte deutsche Sortier-funktion, implementiert werden, sondeder sorgfltig bercksichtigt werden.

    Des weiteren mchte ich herausstellen,APIs und der Entwicklung verschiedeam Quellcode des Servers weiterhin alLage, unser Produkt in zwei getrenntern auch all die anderen Bedrfnisse der deutschen Anwen-

    dass, auch wenn viele Anwender zu den diversen MySQL-ner MySQL-Clients beigetragen haben, die Urheberrechtelein unserem Unternehmen gehren. Daher sind wir in dern Lizenzmodellen anzubieten. Mit dem Lizenzmodell derVorwort

    hrter Leser und Anwender von MySQL,

    en die deutsche Ausgabe des offiziellen MySQL Reference Manual vor sich. Diese Aus-t auch die erste bersetzung, die von den Entwicklern von MySQL selbst koordiniert und wurde. Ich bin sehr froh, dass wir Ihnen nun, zusammen mit unserem deutschen Verleger auf diesem Weg einen angenehmen und schnellen Zugang zu allen wesentlichen Informati-ber MySQL verschaffen knnen. Dieses Buch richtet sich an Sie, ganz gleich, ob Sieder, Entwickler oder IT-Verantwortlicher in einem Unternehmen sind.

    all jenen sehr dankbar, die dazu beigetragen haben, dass MySQL sich so weit verbreitenblieren konnte. Es sind nun schtzungsweise drei Millionen Installationen von MySQL aufedenen Servern in der ganzen Welt. Dazu zhlen UNIX-Systeme, Windows-Server undMacIntosh-Systeme. MySQL wre aber nicht so erfolgreich, wie es heute ist, ohne die Hilfelen Anwender, die Programmierschnittstellen zu MySQL in vielen verschiedenen Sprachen viele verschiedene Anwendungen entwickelt haben.

    nwender halfen uns auch mit hilfreichen Vorschlgen und konstruktiver Kritik. Wir erhiel-h viele hervorragende Rckmeldungen zu den wenigen Fehlern, die sich an unserer Quali-trolle vorbei in die jeweiligen Versionen eingeschlichen hatten. Da MySQL in immer neuenen eingesetzt wird, mchte ich an dieser Stelle die Gelegenheit nutzen und einige verbrei-ssverstndnisse bezglich MySQL aufklren.

    st: das MySQL RDBMS (Relationales Datenbankmanagementsystem) wird von einemrziell orientierten Unternehmen, der MySQL AB, entwickelt. Die MySQL AB ist einisches Unternehmen, das mein Kollege David Axmark und ich gegrndet haben. Zusam-ben wir seit 1995 diese Datenbank entworfen, inplementiert und weiter entwickelt. Jetzt, im002, hat unser Unternehmen gut 40 Angestellte und wir arbeiten auf allen Kontinenten derurch einige unserer Mitarbeiter, die speziell die Anwender in Deutschland in deutscher

  • Vorwort

    18

    GPL sind wir an der Spitze der Open Source- / Free Software-Bewegung und in der kommerziel-len Fassung sind wir einer der fhrenden Anbieter kommerzieller Datenbanken zur Integration ineigene Applikationen.

    Sie sollten auerdem wissen, dass MySQL AB auch eine vollstndige Palette an Service- und Sup-port-Angeboten fr seine Kunden bereitstellt. Oft wird an Open Source-Software bemngelt, dassdiese nicht von kommerziellen Anbietern untersttzt wird. Unser Unternehmen hat das eigeneProdukt schon immer kommerziell betreut. Wir sind aber auch extrem stolz darauf, dass unsereSoftware so stabil luft, dass es kaum Bedarf fr Hilfe bei unseren Kunden gibt. Auf der anderenSeite haben wir viele Kunden technisch und fachlich untersttzt, die MySQL in ihren zentralenApplik

    Das brServerwir undurch likationStoredDetailsrer Ho

    Zu gutsetzungMySQvom M

    Helsin

    Michae

    CTO uationen einsetzen.

    ingt mich auch schon zu dem letzten Punkt, den ich noch erwhnen wollte: unser MySQL- ist besonders fr unternehmenskritische Applikationen mit hoher Auslastung konzipiert. Ja,tersttzen ACID-Transaktionen und ja, wir untersttzen auch das Locking auf Zeilenebeneden InnoDB Tabellen-Handler. Wir untersttzen auch das Clustering in der Form von Rep- des MySQL-Servers. In diesem Jahr werden wir uns darauf konzentrieren, Sub-Queries,

    Procedures, Trigger und referentielle Integritt in unser System aufzunehmen. Weitere, Ankndigungen und neue Versionen zum Herunterladen finden Sie regelmig auf unse-mepage unter http://www.mysql.de.

    er Letzt mchte ich an dieser Stelle meinen Dank an Stefan Hinz aussprechen, der die ber- des Manuals ins Deutsche vorgenommen hat. Auerdem danke ich allen Kollegen bei

    L AB und meiner wundervollen Familie, die mich in den frhen Jahren der EntwicklungySQL bei meiner besessenen Arbeit untersttzt haben. Danke an Carola und Max!

    gfors, Finnland, April 2002

    l Monty Widenius

    nd Grnder, MySQL AB

  • Vorbemerkungen zumdeutschen Handbuch

    Die bhandbusprach

    In d Ein UnWomitnen auDieses Gegenhaben,

    Einbe

    Absch

    EinDie Fa

    Jed Gib

    tun Ma

    ung

    Richtigenglisc

    Imschfig

    Da Spe

    nh

    Alle diden zw

    All Ak Au19

    ersetzung einer so umfangreichen technischen Dokumentation wie des MySQL-Referenz-chs ist schon eine besondere Herausforderung. Zumindest fr jemanden, der seine Ziel-

    e ernst nimmt:

    iesem Handbuch wird nicht geupdated, sondern aktualisiert. e MySQL-Distribution wird nicht gedownloaded, sondern herunter geladen. d Transaktionen werden nicht gerollbackt, sondern zurckgerollt.

    wir auch schon bei der besonderen Herausforderung wren: Jeder, der sich mit Transaktio-skennt, wei, dass beim Fehlschlagen einer solchen ein Rollback-Befehl ausgefhrt wird.Hauptwort ins Deutsche zu bersetzen, wrde zum Verstndnis wenig beitragen im

    teil. Damit bleiben alle technischen Fachbegriffe, die sich so und nicht anders etabliert englisch:

    SQL-Statement wird nicht als Erklrung in der Strukturierten AbfrageSprache (SAS)rsetzt.

    krzungen wie TCP/IP werden nicht zu SP/ZP (bertragungsSteuerungsProtokoll/Zwi-ennetzProtokoll). Client bleibt ein Client, und ein Server ein Server.

    llstricke einer bersetzung stecken allerdings in den Details:

    er SQL-Kenner wei, was eine query ist. In diesem Handbuch ist das eine Anfrage. t es Probleme bei der bermittlung einer Anfrage, kann es sein, dass eine Zeitberschrei-g eintritt. Der Profi htte wahrscheinlich nach Timeout gesucht. nche Dinge sind einfacher: Ein string ist eine Zeichenkette (obwohl fr Profis vielleichtewohnt), ein hex value ein hexadezimaler Wert.

    spannend wird die bersetzung bei Wrtern, die in der deutschen Fachsprache zumeisth verwendet werden, obwohl es passende deutsche Entsprechungen gibt:

    Hauptspeicher (RAM) zwischengespeicherte Daten werden auf die Festplatte zurckge-rieben. Im Englischen heit das flushed to disk, und im Deutschen werden die Daten hu-geflushed. ten werden zwischengespeichert (gecached). icher wird zugewiesen. Man kann auch alloziert sagen, was dem englischen allocateder kommt.

    ese Entsprechungen, bei denen die deutsche Sprache eher in Vergessenheit geraten ist, wur-eisprachig aufgenommen. Beispiele:

    e Daten werden zwischen Anfragen auf die Festplatte zurck geschrieben (flush). tualisieren Sie (Update), wenn alles in Ordnung ist. f eine hhere Version von MySQL aktualisieren (Upgrade) ...

  • Vorwort

    20

    Gelegentlich wird auch in diesem Handbuch die Performance getuned, neue Features einesMySQL-Release werden beschrieben usw. Anregungen fr eine weiter gehende Eindeutschungnimmt der bersetzer gern entgegen. Insbesondere gilt das auch fr Hinweise zur Verkrzungdeutscher Ausdrcke. Beispielsweise heit case sensitive (14 Buchstaben) im Handbuch abhn-gig von der verwendeten Gro-/Kleinschreibung (44 Buchstaben). Letzter Punkt: Die berset-zung erfolgte in uerst enger Anlehnung an das englischsprachige Original. Nichts wurde hinzu-gefgt (auer diesem Vorwort), gendert oder weggelassen (Ausnahme: die Geschichte dernderungen (ChangeLog) vor Version 3.23). Es liegt in der Natur der Dinge, dass weder Originalnoch bersetzung frei von Fehlern sind (obwohl wir das anstreben). Berichten Sie bitte berset-zungsfehler, stilistische Bugs, die das Verstndnis beeintrchtigen und sonstige Anmerkungenzur b

    Berlin,

    Stefan

    KonveDieses

    const

    Schfrfrden

    'filen

    Schme

    'c' SchcheZei

    italic Ku

    boldfa

    Fetprobu

    Wenn dieses shelllen. my

    shemysersetzung direkt an: Stefan Hinz, [email protected]

    im April 2002

    Hinz, iConnect GmbH Berlin.

    ntionen in diesem Handbuch Handbuch benutzt bestimmte typographische Konventionen:

    ant riftart gleicher Breite (nicht-proportionale Schrift) wird fr Befehle und Optionen benutzt,

    SQL-Statements, Datenbank-, Tabellen- und Spaltennamen, fr C- und PERL-Code und Umgebungsvariablen. Beispiel: Um festzustellen, wie mysqladmin funktioniert, rufen Sie Befehl mit der --help Option auf.'

    ame' riftart gleicher Breite, die von Anfhrungszeichen umgeben ist, wird fr Datei- und Pfadna-n benutzt. Beispiel: Die Distribution wird im Verzeichnis '/usr/local/' installiert.

    riftart gleicher Breite, die von Anfhrungszeichen umgeben ist, wird auch benutzt, um Zei-nfolgen anzuzeigen. Beispiel: Um ein Platzhalterzeichen einzugeben, benutzen Sie das %'chen.

    rsivschrift wird fr Hervorhebungen verwendet, wie in diesem Beispiel.

    ce tschrift wird fr Namen von Zugriffsrechten verwendet (zum Beispiel: Gewhren Sie dascess-Zugriffsrecht nicht leichtfertig) und gelegentlich, um besonders starke Hervorhe-

    ngen zu kennzeichnen.

    Befehle gezeigt werden, die durch ein bestimmtes Programm ausgefhrt werden sollen, wirdProgramm durch einen Prompt (Eingabeaufforderung) vor dem Befehl angezeigt. Der>-Prompt zum Beispiel zeigt an, dass Sie den Befehl von Ihrer Login-Shell aus ausfhren sol-sql> zeigt an, dass Sie den Befehl vom mysql Client-Programm aus ausfhren sollen:

    ll> geben sie hier ein shell-kommando einql> geben sie hier ein mysql-kommando ein

  • Vorbemerkungen zum deutschen Handbuch

    Shell-Befehle werden mit der Bourne-Shell-Syntax dargestellt. Wenn Sie eine csh-Shell benutzen,mssen die Befehle evtl. etwas anders eingegeben werden. Das folgende Beispiel zeigt, wie mit derBourne-Shell eine Umgebungsvariable gesetzt wird und anschlieend ein Befehl abgesetzt wird:

    Um csh auszufhren, wrden Sie folgende Sequenz ausfhren:

    Oft manzuzetbl_n

    Wenn len- un

    SQL-Sbuch Sdiesemgendes

    Im Konden:

    Wenn schreibum wa

    Wenn durch Mgliclistet ('[

    Wenn die Alt

    shell> VARNAME=wert irgendein_befehl

    shell> setenv VARNAME wertshell> irgendein_befehl

    mys

    mys

    mys

    mys

    DRO

    TRI

    {DE21

    ssen Datenbank-, Tabellen- und Spaltennamen in konkreten Befehlen ersetzt werden. Umigen, dass eine solche Ersetzung notwendig ist, benutzt dieses Handbuch db_name,ame und col_name. Sie knnten zum Beispiel folgendes Statement sehen:

    Sie ein hnliches Statement eingeben wollen, mssen Sie Ihre eigenen Datenbank-, Tabel-d Spaltennamen eingeben, zum Beispiel wie folgt:

    tatements knnen in Gro- und Kleinschreibung geschrieben werden. Wenn dieses Hand-QL-Statements darstellt, wird Groschreibung verwendet, um spezielle Schlsselworte in Kontext hervorzuheben. Kleinschreibung wird fr den Rest des Statements verwendet. Fol- knnten Sie im Kontext des SELECT-Statements sehen:

    text der COUNT()-Funktion hingegen knnte dasselbe Statement wie folgt geschrieben wer-

    keine besondere Hervorhebung beabsichtigt wird, werden alle Schlsselworte in Gro-ung dargestellt. In Syntax-Beschreibungen werden eckige Klammern ('[' und ']') benutzt,hlfrei (optionale) Wrter oder Klauseln anzuzeigen:

    ein Syntaxelement aus einer Anzahl von Alternativen besteht, werden die Alternativengerade Striche ('|') voneinander getrennt. Wenn genau ein Element aus einer Anzahl vonhkeiten ausgewhlt werden (kann), werden die Alternativen mit eckigen Klammern aufge-' und ']'):

    genau ein Element aus einer Anzahl von Mglichkeiten ausgewhlt werden muss, werdenernativen innerhalb geschweifter Klammern aufgelistet ('{' und '}'):

    ql> SELECT spalten_name FROM datenbank_name.tabellen_name;

    ql> SELECT autor_name FROM bibliothek.autorenliste;

    ql> SELECT count(*) FROM tabellen_name;

    ql> select COUNT(*) from tabellen_name;

    P TABLE [IF EXISTS] tabellen_name

    M([[BOTH | LEADING | TRAILING] [remstr] FROM] str)

    SCRIBE | DESC} tbl_name {col_name | wild}

  • VAKATVAKAT

  • 23

    12.

    MySQMySQrund u

    MySQEineinUngreWeMalau

    MySQEinzigexibwasSQdie

    MySQOpndzu bezahlen. Jeder, der daran interessiert ist, kann den Quelltext studieren und den eigenenBedrfnissen entspreLicense) http://wwwSie nicht tun drfen, bleme bereitet oder wknnen Sie eine kommchend verndern. MySQL benutzt die GPL (GNU General Public.gnu.org, um festzulegen, was Sie mit der Software tun drfen und wasabhngig von unterschiedlichen Situationen. Wenn Ihnen die GPL Pro-enn Sie MySQL in eine kommerzielle Anwendung einbetten mssen,erziell lizensierte Version von uns erwerben. Was ist MySQL?

    L, die populrste Open Source SQL-Datenbank, wird von MySQL AB zur Verfgung gestellt.L AB ist ein kommerzielles Unternehmen, dessen Geschft darin besteht, Serviceleistungenm die MySQL-Datenbank zur Verfgung zu stellen. Siehe Seite 31, Was ist MySQL AB?

    L ist ein Datenbank-Managementsystem. e Datenbank ist eine strukturierte Sammlung von Daten. Das kann alles sein von einerfachen Einkaufsliste ber eine Bildergalerie bis zu riesigen Informationsmengen in einemternehmensnetzwerk. Um Daten zu einer Computer-Datenbank hinzuzufgen, auf sie zuzu-ifen und sie zu verarbeiten, bentigen Sie ein Datenbank-Managementsystem wie MySQL.il Computer sehr gut darin sind, groe Datenmengen zu handhaben, spielt Datenbank-nagement im Computer-Bereich eine zentrale Rolle, sowohl bei Anwendungen, die alleinfen (Stand-Alone-Utilities) als auch als Teil anderer Anwendungen.

    L ist ein relationales Datenbank-Managementsystem. e relationale Datenbank speichert Daten in separaten Tabellen, anstatt sie alle in einem ein-n groen Speicherraum unterzubringen. Hierdurch werden hohe Geschwindigkeit und Fle-

    ilitt erreicht. Die Tabellen werden durch definierte Beziehungen verbunden (Relationen), es mglich macht, Daten aus verschiedenen Tabellen auf Nachfrage zu kombinieren. DerL-Teil von MySQL steht fr Structured Query Language (strukturierte Abfragesprache) verbreitetste standardisierte Sprache fr Datenbankzugriffe.

    L ist Open-Source-Software. en Source bedeutet, dass es fr jeden mglich ist, solche Software zu benutzen und zu ver-ern. Jeder kann MySQL aus dem Internet herunter laden und benutzen, ohne irgend etwas

  • Kapitel 1

    24

    Warum sollten Sie MySQL benutzen? MySQL ist sehr schnell, zuverlssig und leicht zu benutzen. Wenn Sie nach diesen Eigenschaf-ten suchen, sollten Sie MySQL ausprobieren. MySQL besitzt eine ganze Reihe praktischer Fea-tures, die in enger Kooperation mit unseren Benutzern entwickelt wurden. Einen Performance-Vergleich zwischen MySQL und einigen anderen Datenbank-Managementsystemen finden Sieauf unserer Benchmark-Seite (siehe Seite 338). Die MySQL-Benchmark-Suite wurde ursprng-lichler onsntgee

    Die teWeMyuntwethrkle

    Mywa

    Offiziedings, den mSnen scdings zrungenallerdinweil siMySQken unimmerMySQ

    Die wiDie fol

    Vome

    C-, Lu

    sttdieDA

    Sehswe

    Vospi

    mys entwickelt, um sehr groe Datenbanken handhaben zu knnen, und zwar sehr viel schnel-als existierende Lsungen. Es wurde mehrere Jahre in hchst anspruchsvollen Produkti-umgebungen eingesetzt. Heutzutage bietet MySQL eine umfangreiche Reihe sehrzlicher Funktionen. Connectivity, Geschwindigkeit und Sicherheit machen MySQL uerstignet, um auf Datenbanken ber das Internet zuzugreifen.

    chnischen Features von MySQL iter fhrende technische Informationen finden Sie auf Seite 375, MySQL-Sprachreferenz..SQL ist ein Client-Server-System, das aus einem multi-thread SQL-Server besteht, dererschiedliche Backends, verschiedene Client-Programme und -Bibliotheken, Verwaltungs-rkzeuge und etliche Programmschnittstellen untersttzt. Wir stellen MySQL auch als multi-ead Bibliothek zur Verfgung, die Sie mit Ihren Anwendungen verknpfen knnen, um einineres, schnelleres und leichter zu bedienendes Produkt zu erhalten.

    SQL stellt beigesteuerte (contributed) Software in groer Menge zur Verfgung. Es ist sehrhrscheinlich, dass Ihre Lieblingsanwendung oder -sprache bereits MySQL untersttzt.

    ll wird MySQL 'Mai Ess Ku Ell' ausgesprochen (nicht 'Mai Siekwel'). Wir vermeiden aller-Leute zu korrigieren, die Mai-Siekwel sagen. Wir fingen ursprnglich mit der Intention an,QL-Code zu benutzen, um unsere eigenen Tabellen anzusprechen, wobei wir unsere eige-

    hnellen Low-Level-Routinen (ISAM) benutzten. Nach einigem Testen gelangten wir aller-ur berzeugung, dass mSQL weder schnell noch flexibel genug wre, um unsere Anforde- abzudecken. Dies resultierte in einer neuen SQL-Schnittstelle zu unserer Datenbank,gs mit fast derselben API-Schnittstelle, wie sie mSQL benutzt. Diese API wurde gewhlt,

    e es erlaubte, Code von Drittanbietern einfach zu portieren. Die Entstehung des NamensL ist nicht vllig geklrt. Unser Basis-Verzeichnis und eine groe Anzahl unserer Bibliothe-d Werkzeuge hatten immer schon das Prfix my whrend mehr als 10 Jahren. Wie auch, auch Montys Tochter (einige Jahre jnger) heit My. Welcher der beiden UmstndeL den Namen gab, ist immer noch ein Rtsel, sogar fr uns.

    chtigsten Features von MySQL gende Liste beschreibt einige wichtige Charakteristika von MySQL:

    ll multi-thread unter Benutzung von Kernel-Threads. Das bedeutet, dass Sie sehr einfachhrere Prozessoren benutzen knnen, falls verfgbar. C++-, Eiffel-, Java-, Perl-, PHP-, Python- und Tcl-APIs. Siehe Seite 525, MySQL-APIs.ft auf vielen verschiedenen Plattformen (siehe Seite 84, Betriebssysteme, die von MySQL unter-zt werden). Viele Spaltentypen: vorzeichenbehaftete / vorzeichenlose Ganzzahlen (Integer), 1, 2, 3, 4 und 8 Byte lang sind, FLOAT, DOUBLE, CHAR, VARCHAR, TEXT, BLOB, DATE, TIME,TETIME, TIMESTAMP, YEAR, SET, und ENUM Typen (siehe Seite 384, Spaltentypen). r schnelle Joins durch Benutzung eines optimierten Multi-Joins in einem Durchgang (one-ep multi-join).

    lle Operator- und Funktionsuntersttzung in SELECT- und WHERE-Teilen von Anfragen. Bei-el:

    ql> SELECT CONCAT(vorname, " ", nachname) FROM tabellen_name WHERE einkommen/dependents > 10000 AND age > 30;

  • Was ist MySQL?

    SQL-Funktionen sind durch eine hoch optimierte Klassenbibliothek implementiert und sollten soschnell sein, wie es geht! blicherweise gibt es berhaupt keine Speicherzuordnung (memory allo-cation) nach der Initialisierung von Anfragen.

    Volle Untersttzung fr SQL-GROUP BY und ORDER BY- Klauseln. Untersttzung fr Gruppie-rungsfunktionen (COUNT(), COUNT(DISTINCT ...), AVG(), STD(), SUM(), MAX() undMIN()).

    Untersttzung fr LEFT OUTER JOIN und RIGHT OUTER JOIN mit ANSI-SQL und ODBC-Syn

    Sieben

    Eindasver

    OD2.5Ihr

    Seh Bis

    SpaMyzen

    Da Im Ka

    dieetw

    AllUnzit

    Ben Ge Ein

    sys Kei

    We Bei

    undSQsttweiSpa

    AllZei

    DiebeiSorvielegfolg

    Ali25

    tax knnen Tabellen aus unterschiedlichen Datenbanken in ein und derselben SQL-Anfrageutzen (ab Version 3.22). System von Zugriffsberechtigungen und Passwrtern, das sehr flexibel und sicher ist, und Host-basierende Verifizierung erlaubt. Passwrter sind sicher, weil jeder Passwort-Verkehrschlsselt wird, wenn Sie sich mit einem Server verbinden. BC-(Open-DataBase-Connectivity) Untersttzung fr Win32 (mit Quelltext). Alle ODBC

    Funktionen und viele weitere. Sie knnen zum Beispiel MS Access benutzen, um sich mitem MySQL-Server zu verbinden (siehe Seite 533, MySQL-ODBC-Untersttzung). r schnelle B-tree disk Tabellen mit Index-Kompression

    zu 32 Indexe pro Tabelle erlaubt. Jeder Index kann aus 1 bis 16 Spalten oder Teilen vonlten bestehen. Die maximale Indexlnge betrgt 500 Bytes (das ndert sich evtl., wennSQL kompiliert wird). Ein Index kann das Prfix eines CHAR- oder VARCHAR-Felds benut-. tenstze fester und variabler Lnge Arbeitsspeicher gehaltene Hash-Tabellen, die als temporre Tabellen benutzt werdennn groe Datenbanken handhaben. Wir selbst benutzen MySQL bei einigen Datenbanken, 50 Mio. Datenstze haben und wir kennen Benutzer, die MySQL mit 60.000 Tabellen unda 5 Milliarden Zeilen benutzen. e Spalten knnen Vorgabewerte (Defaults) haben. Sie knnen INSERT benutzen, um einetermenge der Tabellenspalten mit Werten zu bestcken. Diejenigen Spalten, die nicht expli-angesprochen werden, werden auf ihre Vorgabewerte gesetzt. utzt GNU Automake, Autoconf und Libtool aus Portabilittsgrnden

    schrieben in C und C++. Getestet mit groen Anzahl verschiedener Compiler. sehr schnelles Thread-basierendes Speicherzuordnungs-System (memory allocationtem)ne Speicherlecks (memory leaks). MySQL wurde mit Purify getestet, einem kommerziellenrkzeug zur Entdeckung von Speicherlecks. nhaltet myisamchk, ein sehr schnelles Dienstprogramm zur berprfung, Optimierung Reparatur von Tabellen. Die gesamte Funktionalitt von myisamchk steht auch ber dieL-Schnittstelle zur Verfgung (siehe Seite 193, MySQL-Datenbankadministration). Volle Unter-zung fr mehrere unterschiedliche Zeichenstze, incl. ISO- 8859-1 (Latin1), big5, ujis undtere. So sind zum Beispiel die skandinavischen Zeichen 'a*', '' und '' in Tabellen- undltennamen erlaubt.

    e Daten werden mit dem ausgewhlten Zeichensatz gespeichert. Alle Vergleiche fr normalechenkettenvergleiche sind unabhngig von Gro- und Kleinschreibung. Sortierung ist abhngig vom gewhlten Zeichensatz (schwedisch als Vorgabe). Das kannm Start des MySQL-Servers gendert werden. Um beispielsweise eine sehr fortgeschrittenetierung zu sehen, sehen Sie sich den tschechischen Sortier-Code an. MySQL untersttztle unterschiedliche Zeichenstze, die bei der Kompilierung und whrend der Laufzeit festge-t werden knnen. Der Zeichensatz 'latin_de' sorgt fr eine korrekte deutsche Sortierreihen-e.

    ase auf Tabellen und Spalten sind erlaubt, wie im SQL92-Standard festgelegt.

  • Kapitel 1

    26

    DELETE, INSERT, REPLACE und UPDATE geben die Anzahl der Zeilen zurck, die gendertwurden (bzw. betroffen sind). Es ist statt dessen auch mglich, die Anzahl der bereinstimmen-den Zeilen zurckzugeben, indem beim Verbindungsstart zum Server ein entsprechendes Flaggesetzt wird.

    Funktionsnamen kollidieren nicht mit Tabellen- oder Spaltennamen. ABS zum Beispiel ist eingltiger Spaltenname. Die einzige Einschrnkung besteht drin, dass in einem Funktionsaufrufkeine Leerzeichen zwischen Funktionsname und der ffnenden runden Klammer, die diesemfolgt '(', erlaubt ist. Siehe Seite 382, Ist MySQL pingelig hinsichtlich reservierter Wrter?

    Allline

    DeSie

    CliNa

    Dekenlen

    Wie stDieserMySQeinige Abschnden (dbleme gemacneuen Seitdemjedes vwenn Bauerhbekannbekanndie im(siehe EbeneFolgen

    Der ISDiealleeinverunwplaver

    Der M

    DieTabe MySQL-Programme knnen mit der --help oder -? Option aufgerufen werden, um On--Hilfe zu erhalten.

    r Server kann Clients Fehlermeldungen in verschiedenen Sprachen zur Verfgung stellenhe Seite 278, Nicht-englische Fehlermeldungen. ents knnen sich mit dem MySQL-Server ber TCP/IP Sockets, Unix Sockets (Unix) odermed Pipes (NT) verbinden. r MySQL-spezifische SHOW-Befehl kann benutzt werden, um Informationen ber Datenban-, Tabellen und Indexe zu erhalten. Der EXPLAIN-Code kann benutzt werden um festzustel-, wie der Optimierer eine Anfrage auflst.

    abil ist MySQL? Abschnitt beschftigt sich mit den Fragen Wie stabil ist MySQL? und Kann ich mich aufL bei diesem Projekt verlassen? Wir werden versuchen, einige Dinge klar zu stellen undder wichtigeren Fragen zu beantworten, die offensichtlich viele Leute beschftigen. Dieseritt wurde aus Informationen zusammen gestellt, die aus der Mailing-Liste gesammelt wur-

    ie sehr aktiv beim Berichten von Bugs ist). Bei TcX funktioniert MySQL ohne jegliche Pro-in unseren Projekten seit Mitte 1996. Als MySQL einer breiteren ffentlichkeit zugnglichht wurde, fiel uns auf, dass es einige Teile von ungetestetem Code gab, die schnell vonBenutzern gefunden wurden, die Anfragen machten, die von unseren eigenen abwichen. hat jedes neue Release weniger Portabilittsprobleme als das vorhergehende (obwohl

    iele neue Features hat). Jedes Release von MySQL war benutzbar. Probleme gab es nur,enutzer anfingen, Code aus den Grauzonen zu benutzen. Natrlich wissen Benutzer vonalb nicht, was diese Grauzonen sind, daher versucht dieser Abschnitt, die momentanten aufzuzeigen. Die Beschreibungen hier beziehen sich auf Version 3.23 von MySQL. Alleten und berichteten Bugs werden in der letzten Version behoben, mit Ausnahme der Bugs,

    Bugs-Abschnitt aufgelistet sind, was Dinge sind, die auf das Design zurckzufhren sindSeite 57, Bekannte Fehler und Design-Unzulnglichkeiten in MySQL). MySQL ist in mehrfachenn (Layers) und verschiedenen unabhngigen Modulen geschrieben. Diese Module sind imden aufgefhrt, wobei angezeigt wird, wie gut getestet jedes von ihnen ist:

    AM Tabellen-Handler stabil ser verwaltet Speicherung und Abfrage aller Daten in MySQL Version 3.22 und frher. Inn Releases von MySQL gab es nicht einen einzigen (berichteten) Bug in diesem Code. Diezige Mglichkeit, eine zerstrte (korrumpierte) Tabelle zu erhalten, besteht darin, den Ser- mitten whrend eines Updates zu killen. Selbst dadurch ist es unwahrscheinlich, dass Dateniederbringlich zerstrt werden, denn alle Daten werden zwischen Anfragen auf die Fest-

    tte zurck geschrieben (flush). Es hat nicht einen einzigen Bug-Bericht gegeben, in dem vonlorenen Daten aufgrund von MySQL-Bugs berichtet wurde.

    yISAM Tabellen-Handler stabil ser wurde in MySQL Version 3.23 hinzu gefgt. Er basiert zum groen Teil auf dem ISAMellen-Code, hat aber eine Menge neuer und sehr ntzlicher Features.

  • Was ist MySQL?

    Der Parser und lexikalische Analysator stabil

    Es hat seit sehr langer Zeit keinen einzigen berichteten Bug in diesem System gegeben.

    Der C Client-Code stabil Keine bekannten Probleme. Im frhen 3.20 Release gab es einige Einschrnkungen hinsicht-lich der Gre des Sende- / Empfangs-Puffers (buffer size). Ab Version 3.21 ist die Puffergrejetzt dynamisch, bis zu einem Vorgabewert von 16 M.

    Standard-Client-Programme stabil Die

    Basis-S

    DieHa

    Anfrag

    Bereic

    Join-O

    Sperre

    DiesystmitLindet

    Linux-

    Dalocmitglemitwirkonnec

    Solaris

    Wi

    MIT-p

    SeisionrecThblgeb27

    s beinhaltet mysql, mysqladmin, mysqlshow, mysqldump und mysqlimport.

    QL stabil grundlegenden SQL-Funktionen, Zeichenketten-Klassen und dynamisches Speicher-ndling. Nicht ein einziger berichteter Bug in diesem System.

    en-Optimierer (Query optimizer) stabil

    hs-Optimierer (Range optimizer) stabil

    ptimierer (Join optimizer) stabil

    n (Locking) Gamma s ist sehr system-abhngig. Auf einigen Systemen gibt es groe Probleme, wenn Standard-Betriebs-em-Sperren verwendet wird (fcntl()). In solchen Fllen sollten Sie den MySQL-Daemon dem Flag --skip-locking laufen lassen. Bekannt ist, dass solche Probleme auf manchenux-Systemen vorkommen sowie auf SunOS, wenn NFS- gemountete Dateisysteme verwen- werden.

    Threads stabil s hauptschliche Problem fand sich im fcntl()-Aufruf, der durch Benutzung der --skip-king-Option bei mysqld behoben werden kann. Einige Leute haben Lockup-Probleme

    Version 0.5 berichtet. Linux-Threads mssen rekompiliert werden, wenn Sie mehr als 1000ichzeitige Verbindungen benutzen wollen. Obwohl es mglich ist, so viele Verbindungen den vorgabemigen Linux-Threads laufen zu lassen (obwohl man nie ber 1021 kommend), macht das vorgabemige Stack-Spacing von 2 MB die Applikation unstabil, und wirnten einen Coredump reproduzieren, nachdem 1021 Verbindungen im Leerlauf (idle con-tions) hergestellt wurden. Siehe Seite 115, Linux (alle Linux-Versionen).

    2.5+ pthreads stabil r benutzen dies fr unsere gesamte Produktionsarbeit.

    threads (andere Systeme) stabil t Version 3.20.15 gab es keine berichteten Bugs mehr, und keine bekannten Bugs seit Ver- 3.20.16. Auf einigen Systemen gibt es ein Misfeature, das heit einige Operationen sind

    ht langsam (1/20 Sekunde Schlafzyklus zwischen jeder Anfrage). Natrlich knnen MIT-reads alles ein bisschen verlangsamen, aber Index-basierende SELECT-Statements werdenicherweise in einem Zeit-Frame ausgefhrt, also sollte es kein mutex locking/thread jugglingen.

  • Kapitel 1

    28

    Andere Thread-Implementierungen -- Beta Gamma Die Ports zu anderen Systemen sind noch sehr neu und knnen Bugs haben, mglicherweiseauch in MySQL, aber in den meisten Fllen in der Thread- Implementierung selbst.

    LOAD DATA ..., INSERT ... SELECT stabil Einige Leute dachten, hier Bugs gefunden zu haben, aber blicherweise haben sich diese alsMiber

    ALTER

    Ein

    DBD

    Wi

    mysql

    Ge

    GRANT

    gro

    MyOD

    Sch

    Replik

    WiAu

    BDB-T

    Dezwand

    InnoD

    Dienac

    Autom

    Diegesdas

    MERG

    DieTei

    FULLT

    Texssverstndnisse heraus gestellt. Bitte sehen Sie zuerst im Handbuch nach, bevor Sie Bugsichten!

    TABLE stabil ige nderungen in Version 3.22.12.

    stabil rd jetzt von JochenWiedmann gewartet ([email protected]). Danke!

    access stabil schrieben und gewartet von Yves Carlier ([email protected]). Danke!

    stabil e nderungen in MySQL Version 3.22.12.

    BC (benutzt ODBC SDK 2.5) Gamma eint mit einigen Programmen gut zu laufen.

    ation Beta / Gamma r arbeiten noch an der Replikation, also erwarten Sie nicht, dass diese schon felsenfest steht.f der anderen Seite benutzen MySQL- Benutzer diese bereits mit guten Resultaten.

    abellen Beta r Berkeley-Datenbank-Code ist sehr stabil, aber wir verbessern immer noch die Schnittstelleischen MySQL und BDB-Tabellen, also wird es einige Zeit dauern, bevor dies so gut wieere Tabellentypen getestet ist.

    B-Tabellen Beta se wurden MySQL krzlich hinzu gefgt. Sie scheinen gut zu funktionieren und knnenh einigen anfnglichen Tests benutzt werden.

    atische Wiederherstellung von MyISAM-Tabellen Beta s betrifft nur den neuen Code, der beim ffnen einer Tabelle nachsieht, ob diese korrektchlossen wurde und ein automatisches berprfen / Reparieren der Tabelle ausfhrt, falls nicht der Fall war.

    E-Tabellen Beta / Gamma Benutzung von Schlsseln bei MERGE-Tabellen ist noch nicht sehr ausgetestet. Der restlichele des MERGE-Codes ist recht gut getestet.

    EXT Beta tsuche scheint zu funktionieren, wird aber noch nicht viel eingesetzt.

  • Was ist MySQL?

    MySQL AB stellt E-Mail-Support fr zahlende Kunden bereit, aber die MySQL-Mailingliste bietetblicherweise Antworten fr die meisten Fragen. Bugs werden meist direkt mit einem Patch beho-ben; fr schwerwiegende Bugs gibt es fast immer ein neues Release.

    Wie gro knnen MySQL-Tabellen sein? MySQMyISA(2 ^ 63ren-

    Auf Liext2 Dsttzunweise dGre TABLESHOWsttzt), TabelleALTERzugriff len zu blicheSeite 2die DaRAID-OMERGbenutz

    Jahr-2MySQ

    MyAllwas

    Allflt

    In 215

    Betrie

    Linux-

    Linux-

    Solaris

    Solaris

    Solaris

    Solaris29

    L Version 3.22 hat eine Begrenzung auf 4GB bei der Tabellengre. Mit dem neuenM in MySQL Version 3.23 wurde die maximale Tabellengre auf 8 Millionen Terabytes bytes) hochgeschraubt. Beachten Sie allerdings, dass Betriebssysteme ihre eigenen Dateig-

    Beschrnkungen haben. Hier sind einige Beispiele:

    nux 2.2 kann man grere Tabellen als 2GB benutzen, wenn man den LFS-Patch fr dasateisystem benutzt. Auf Linux 2.4 existiert zustzlich ein Patch fr das ReiserFS, um Unter-g fr groe Dateien zu erhalten. Letztlich wird die Tabellengre fr MySQL normaler-urch das Betriebssystem begrenzt. Vorgabemig haben MySQL-Tabellen eine maximalevon etwa 4GB. Sie knnen die maximale Tabellengre fr eine Tabelle mit dem SHOW STATUS-Befehl berprfen oder mit myisamchk -dv tabellen_name (siehe Seite 259,-Syntax). Wenn Sie grere Tabellen als 4GB bentigen (und Ihr Betriebssystem dies unter-sollten Sie die AVG_ROW_LENGTH- und MAX_ROWS-Parameter benutzen, wenn Sie Ihre anlegen (siehe Seite 461, CREATE TABLE-Syntax). Sie knnen diese auch spter setzen, mit TABLE (siehe Seite 468, ALTER TABLE-Syntax). Falls auf Ihre groe Tabelle nur mit Lese-zugegriffen wird (read-only), knnen Sie auch myisampack benutzen, um mehrere Tabel-vereinen (merge) und sie zu einer zu komprimieren. myisampack komprimiert eine Tabellerweise mindestens um 50%, also knnen Sie effektiv viel grere Tabellen benutzen (siehe88, myisampack, MySQL-Programm zum Erzeugen komprimierter Nur-Lese-Tabellen). Sie knnenteibegrenzung des Betriebssystems fr MyISAM Daten-Dateien umgehen, indem Sie dieption benutzen (siehe Seite 461, CREATE TABLE-Syntax). Eine weitere Lsung kann dieE-Bibliothek darstellen, die Ihnen erlaubt, eine Sammlung identischer Tabellen zugleich zu

    en (siehe Seite 492, MERGE-Tabellen).

    000-Konformitt L selbst hat keine Probleme mit der Jahr-2000-Konformitt:

    SQL benutzt Unix-Zeitfunktionen und hat keine Probleme mit Datumsangaben bis 2069.e zweistelligen Jahresangaben werden als Angaben zwischen 1970 und 2069, betrachtet, bedeutet, dass, wenn Sie 01 in einer Spalte speichern, MySQL dies als 2001 behandelt.

    e MySQL Datumsfunktionen sind in einer Datei 'sql/time.cc' gespeichert und sehr sorg-ig kodiert, um Jahr-2000-sicher zu sein. MySQL Version 3.22 und spter kann der neue Spaltentyp YEAR Jahre 0 und von 1901 bis5 in 1 Byte speichern und sie mit 2 oder 4 Ziffern anzeigen.

    bssystem Dateigren-Beschrnkung

    Intel 32 bit 2GB, 4GB oder mehr, abhngig von der Linux-Version

    Alpha 8TB(?)

    2.5.1 2GB (mglich sind 4G mit Patch)

    2.6 4GB

    2.7 Intel 4GB

    2.7 ULTRA-SPARC 8TB (?)

  • Kapitel 1

    30

    Probleme knnen Sie bekommen, wenn Sie MySQL mit Applikationen benutzen, die MySQL aufeine Art benutzen, die nicht Jahr-2000-sicher ist. Zum Beispiel speichern oder ndern viele alteApplikationen Jahresangaben, indem sie zweistellige Werte benutzen (was mehrdeutig ist), anstattvierstellige Werte zu nehmen. Dieses Problem kann durch Applikationen verschlimmert werden,die Werte wie 00 oder 99 als Anzeiger fehlender Werte benutzen. Leider sind diese Problememglicherweise schwer zu beheben, weil verschiedene Applikationen von unterschiedlichen Pro-grammierern geschrieben sein knnen, von denen jeder einen anderen Satz von Konventionenund Funktionen benutzt haben kann, was die Handhabung von Datumsangaben betrifft. Hier isteine einfache Demonstration, die zeigt, dass MySQL keine Probleme mit Datumsangaben bis zumJahr 2030 hat:

    mysQuemystimQue

    mys QueRec

    mys+--| d+--| 1| 1| 1| 2| 2| 2| 2| 2| 2ql> DROP TABLE IF EXISTS y2k;ry OK, 0 rows affected (0.01 sec)ql> CREATE TABLE y2k (date date, date_time datetime, time_stamp estamp);ry OK, 0 rows affected (0.00 sec)

    ql> INSERT INTO y2k VALUES -> ("1998-12-31","1998-12-31 23:59:59",19981231235959), -> ("1999-01-01","1999-01-01 00:00:00",19990101000000), -> ("1999-09-09","1999-09-09 23:59:59",19990909235959), -> ("2000-01-01","2000-01-01 00:00:00",20000101000000), -> ("2000-02-28","2000-02-28 00:00:00",20000228000000), -> ("2000-02-29","2000-02-29 00:00:00",20000229000000), -> ("2000-03-01","2000-03-01 00:00:00",20000301000000), -> ("2000-12-31","2000-12-31 23:59:59",20001231235959), -> ("2001-01-01","2001-01-01 00:00:00",20010101000000), -> ("2004-12-31","2004-12-31 23:59:59",20041231235959), -> ("2005-01-01","2005-01-01 00:00:00",20050101000000), -> ("2030-01-01","2030-01-01 00:00:00",20300101000000), -> ("2050-01-01","2050-01-01 00:00:00",20500101000000);ry OK, 13 rows affected (0.01 sec)ords: 13 Duplicates: 0 Warnings: 0

    ql> SELECT * FROM y2k;----------+---------------------+----------------+ate | date_time | time_stamp |----------+---------------------+----------------+998-12-31 | 1998-12-31 23:59:59 | 19981231235959 |999-01-01 | 1999-01-01 00:00:00 | 19990101000000 |999-09-09 | 1999-09-09 23:59:59 | 19990909235959 |000-01-01 | 2000-01-01 00:00:00 | 20000101000000 |000-02-28 | 2000-02-28 00:00:00 | 20000228000000 |000-02-29 | 2000-02-29 00:00:00 | 20000229000000 |000-03-01 | 2000-03-01 00:00:00 | 20000301000000 |000-12-31 | 2000-12-31 23:59:59 | 20001231235959 |001-01-01 | 2001-01-01 00:00:00 | 20010101000000 |

  • Was ist MySQL?

    Das zeigt, dass die DATE- und DATETIME-Typen fr zuknftige Datumsangaben keine Problemebereiten werden (sie handhaben Datumsangaben bis zum Jahr 9999). Der TIMESTAMP-Typ, der zurSpeichTIMESWert). Obwohzu vermwenn werte v

    Was i

    MySQLursprngegrneine vizen. Dzern unbreitunQuellte

    Die Mwollen

    Die Ver Lei Ko Es FreMySQ

    Ver Bem Bev Bea Sin

    kin Arb

    | 2004-12-31 | 2004-12-31 23:59:59 | 20041231235959 || 2005-01-01 | 2005-01-01 00:00:00 | 20050101000000 || 2030-01-01 | 2030-01-01 00:00:00 | 20300101000000 || 2050-01-01 | 2050-01-01 00:00:00 | 00000000000000 |+------------+---------------------+----------------+13 rows in set (0.00 sec)31

    erung der aktuellen Zeit benutzt wird, hat nur einen Bereich bis zu 2030-01-01.TAMP hat einen Bereich von 1970 bis 2030 auf 32-Bit-Maschinen (vorzeichenbehafteterAuf 64-Bit-Maschinen handhabt dieser Spaltentyp bis zu 2106 (vorzeichenloser Wert).l MySQL Jahr-2000-kompatibel ist, sind Sie dafr verantwortlich, mehrdeutige Eingabeneiden. Siehe Seite 29, Jahr-2000-Konformitt, wegen der Regeln, die MySQL anwendet,

    mehrdeutige Datumsangaben gemacht werden (Datumsangaben, die zweistellige Jahres-erwenden).

    st MySQL AB?

    AB ist das Unternehmen der MySQL-Grnder und Hauptentwickler. MySQL AB wurdeglich in Schweden von David Axmark, Allan Larsson und Michael Monty Widenius

    det. Alle Entwickler des MySQL-Servers sind Angestellte dieses Unternehmens. Wir sindrtuelle Firma mit Mitarbeitern, die ber die ganze Welt verstreut in aller Herren Lnder sit-er Hauptteil unserer Kommunikation untereinander, mit unseren Anwendern, Unterstt-d Partnern wird ber das Internet abgewickelt Wir haben uns der Entwicklung und Ver-g des MySQL-Datenbankservers verschrieben. MySQL hlt das Copyright der MySQL-xte, des MySQL-Logos und dieses Handbuchs. Siehe Seite 23, Was ist MySQL?

    ySQL-Kernwerte zeigen unsere Verpflichtung gegenber MySQL und Open Source. Wir, dass MySQL folgendes ist:

    beste und meist benutzte Datenbank der Weltfgbar fr alle. Alle sollen sich MySQL leisten knnencht zu benutzenntinuierlich verbessert, trotzdem immer schnell und sicher bleibend. soll Spa machen, MySQL zu benutzen und zu verbesserni von Bugs

    L AB und die Leute von MySQL AB:

    breiten die Open-Source-Philosophie und untersttzen die Open-Source-Community. hen sich, gute Brger zu sein.

    orzugen Partner, die unsere Werte und unsere Geisteshaltung teilen. ntworten Mail und geben Support. d ein virtuelles Unternehmen, das mit anderen im Netzwerk zusammenarbeitet (networ-g). eiten gegen Software-Patente.

  • Kapitel 1

    32

    Geschftsmodell und Dienstleistungen von MySQL AB Eine der uns hufig gestellten Fragen ist: Wie kann man von etwas leben, das man kostenlosabgibt? Hier ist die Antwort: MySQL AB verdient Geld mit Support, Dienstleistungen, kommerzi-ellen Lizenzen und Lizenzgebhren, das wir dazu verwenden, die Produktentwicklung zu finanzie-ren und die MySQL-Geschftsfelder auszubauen.

    Unser RisikokAngelsund ein

    Support

    MySQihnen zu bietport wMontyport, dedie Benet hab

    Training

    MySQsowohnehmefhrt, dBeispiestndigUnserenuierliwhrenteilnehApplik

    Sie Sie Sie Sie Sie SieWenn besuchbeschrunter tprogracertirungsp

    Beratung

    MySQihn in helfen,Unternehmen luft seit der Grndung profitabel. Im Oktober 2001 akzeptierten wir eineapitalfinanzierung durch fhrende skandinavische Investoren und eine Handvoll Business-

    . Die Investitionen werden genutzt, um unser Geschftsmodell auf solide Fe zu stellene Grundlage fr nachhaltiges Wachstum zu schaffen.

    L AB gehrt den Grndern und Haupt-Entwicklern der MySQL-Datenbank und wird vonbetrieben. Die Entwickler fhlen sich verpflichtet, Kunden und anderen Benutzern Supporten, um mit deren Bedrfnissen und Problemen in Kontakt zu bleiben. Unser gesamter Sup-ird durch qualifizierte Entwickler geleistet. Wirklich schwierige Fragen werden von Michael Widenius beantwortet, der der erste Entwickler des MySQL-Servers ist (siehe Seite 35, Sup-n MySQL AB anbietet). Um Support unterschiedlicher Grade zu bestellen, besuchen Sie bittestellseite unter https://order.mysql.com/. Wenn Sie nur beschrnkten Zugriff auf das Inter-en, setzen Sie sich bitte mit unserem Vertrieb unter [email protected] in Verbindung.

    und Zertifizierung

    L AB fhrt Schulungen zu MySQL und verwandten Themen weltweit durch. Wir bietenl offene Kurse als auch In-house-Trainings an, die auf die speziellen Bedrfnisse Ihres Unter-ns zugeschnitten sind. MySQL-Schulungen werden auch durch unsere Partner durchge-ie Authorised MySQL Training Center. Unsere Schulungsmaterialien benutzen dieselbenl-Datenbanken wie unsere Dokumentation und unsere Beispiel-Applikationen und werden aktualisiert, um den Entwicklungsstand der neusten MySQL-Version widerzuspiegeln. Trainer erhalten Rckhalt vom Entwicklungsteam, um die Trainingsqualitt und die konti-

    che Entwicklung des Schulungsmaterials sicherzustellen. Das stellt auch sicher, dass keined der Kurse aufgetretenen Fragen unbeantwortet bleiben. Wenn Sie an unseren Schulungen

    men, knnen Sie sicher sein, die Ziele zu erreichen, die Sie mit Ihren MySQL-bezogenenationen anstreben. Auerdem haben Sie folgende Vorteile:

    sparen Zeit. verbessern die Performance Ihrer Applikation(en). verringern die Notwendigkeit zustzlicher Hardware, was Kosten spart. verbessern Ihre Sicherheit. erhhen die Zufriedenheit Ihrer Kunden und Mitarbeiter. bereiten sich auf die MySQL-Zertifizierung vor.

    Sie an unseren Schulungen Interesse als mglicher Teilnehmer oder Trainingspartner haben,en Sie bitte die Seite unter http://www.mysql.com/training/. Wenn Sie nurnkten Zugriff auf das Internet haben, setzen Sie sich bitte mit unserem [email protected] in Verbindung. Die Verffentlichung des MySQL-Zertifizierungs-

    mms ist fr 2002 geplant. Details finden Sie unter http://www.mysql.com/training/fication.html. Wenn Sie stets die neusten Informationen ber das MySQL-Zertifizie-rogramm haben wollen, schicken Sie bitte eine E-Mail an [email protected].

    L AB und seine authorisierten Partner bieten Benutzern des MySQL-Servers und denen, dieihre Software einbetten wollen, Beratungsleistungen, weltweit. Unsere Berater knnen Ihnen Ihre Datenbanken zu entwerfen und zu optimieren, effiziente Anfragen zu konstruieren,

  • Was ist MySQL?

    Ihre Plattform auf optimale Performance zu tunen, Migrationsprobleme zu lsen, Replikation auf-zusetzen, robuste transaktionale Applikationen zu bauen und vieles mehr. Wir helfen auch Kundendabei, den MySQL-Server fr den Groflchigen Einsatz in ihre Produkte und Applikationen ein-zubauen. Unsere Berater arbeiten in enger Kooperation mit unserem Entwicklungsteam, was dietechnische Qualitt unserer Dienstleistungen sicherstellt. Beratungsaufgaben erstrecken sich vonzweitgigen Power-Start-Sessions bis zu Projekten, die Wochen und Monate dauern. Unsere Kom-petenz deckt nicht nur den MySQL-Server ab, sondern auch Programmier- und Skripting-Spra-chen wie PHP, Perl und andere. Wenn Sie an unseren Beratungsleistungen interessiert sind oderein Cwww.msich bit

    Kommer

    Die MDas benicht aeigenenunter hver bessowohlner Wekommeverkauhierfrderherbietet.

    Partnerp

    MySQgen, Puhaltet. Recht, zieren werdenMySQSchutzm

    Werbung

    Die MOktobetieren eHardwhaupt Jahres haben,bitte m

    Kontakti

    Die MMySQchungepress33

    onsulting-Partner werden wollen, besuchen Sie bitte unsere Seite unter http://ysql.com/consulting/. Wenn Sie nur beschrnkten Zugriff auf das Internet haben, setzen Siete mit unserem Beratungspersonal unter [email protected] in Verbindung.

    zielle Lizenzen

    ySQL-Datenbank wird unter der GNU General Public License verffentlicht (GPL).deutet, dass die MySQL-Software kostenlos unter der GPL benutzt werden darf. Wenn Sien die GPL-Bedingungen gebunden sein wollen (was in der Folge bedeutet, dass auch Ihre Applikationen GPL werden), knnen Sie eine kommerzielle Lizenz fr dasselbe Produktttps://order.mysql.com/ erwerben. Weil MySQL AB das Copyright am MySQL-Ser-itzt, knnen wir eine duale Lizensierung einsetzen, was heit, dass dasselbe Produkt unter der GPL als auch unter einer kommerziellen Lizenz erhltlich ist. Das berhrt in kei-ise die Verpflichtung von MySQL AB gegenber Open Source. Wegen Details, wann einerzielle Lizenz erforderlich ist, sehen Sie bitte auf Seite 37, MySQL-Lizenzpolitik, nach. Wir

    fen auch kommerzielle Lizenzen von Open-Source-GPL-Software Dritter. Ein gutes Beispiel ist der InnoDB-Tabellen-Handler, der ACID-Untersttzung, Sperren auf Zeilenebene, Wie-stellung nach Abstrzen, Multiversionierung, Fremdschlsseluntersttzung und vieles mehr

    rogramme

    L AB hat ein weltweites Partnerprogramm, dass Schulungskurse, Support, Beratung, Lsun-blikationen plus Weiterverkauf und Vertrieb von MySQL und verwandten Produkten bein-Partner erscheinen unter http://www.mysql.com/ auf der Website und erhalten dasspezielle Versionen der MySQL-Schutzmarken zu benutzen, um ihre Produkte zu identifi-und ihr Geschft voranzutreiben. Wenn Sie interessiert sind, ein MySQL-AB-Partner zu, schicken Sie bitte eine E-Mail an [email protected]. Das Wort MySQL und das

    L-Delphin-Logo sind Schutzmarken von MySQL AB (siehe Seite 36, MySQL-AB-Logos und -arken).

    ySQL-Website (http://www.mysql.com/) ist bei Entwicklern und Benutzern beliebt. Imr 2001 bedienten wir 10 Millionen Seitenanfragen (PageViews). Unsere Besucher reprsen-ine Gruppe, die Kaufentscheidungen und Empfehlungen sowohl fr Software als auch fr

    are trifft. 12% unserer Besucher genehmigen Kaufentscheidungen, lediglich 9% sind ber-nicht an Kaufentscheidungen beteiligt. Mehr als 65% haben innerhalb des letzten halbenonline eingekauft, 70% planen, in den nchsten Monaten einzukaufen. Wenn Sie Interesse Werbebanner auf unserer Website http://www.mysql.com/ zu schalten, setzen Sie sichit [email protected] in Kontakt.

    nformationen

    ySQL-Website (http://www.mysql.com/) enthlt die neusten Informationen berL und MySQL AB. Fr Presseservice und Anfragen aller Art, die in unseren Verffentli-n (http://www.mysql.com/news/) nicht behandelt werden, wenden Sie sich bitte [email protected]. Zeitnahe, przise Antworten auf technische Fragen erhalten Sie, wenn Sie

  • Kapitel 1

    34

    unter order einen unserer Support-Vertrge abschlieen. MySQL-Support wird von denMySQL-Entwicklern geleistet, weshalb der Standard extrem hoch ist. Informationen ber MySQLTrainig erhalten Sie unter http://www.mysql.com/training/. Wenn Sie einen eingeschrnk-ten Internetzugang haben, kontaktieren Sie bitte unser Trainingspersonal unter [email protected] (siehe Seite 32, Training und Zertifizierung).

    Fr Informationen ber das MySQL Zertifizierungsprogramm erhalten Sie unter http://www.mysql.com/training/certification.html. Wenn Sie weiterhin ber das MySQL Zer-tifizierungsprogramm informiert werden wollen, schreiben Sie eine E-Mail an [email protected].

    KommDort finen. WLizenz/www.fragen)tik. Wwww.m(siehe

    Wenn cken SSchutzmark.

    Wenn bitte eimit, sokussionren. FeMailin

    Wenn E-MailWenn bench

    Wenn sie bittunsereber dgeschicwww.msich binfo@m

    MySQ

    Diesererzielle Lizenzen knnen online unter https://order.mysql.com/ abgewickelt werden.nden Sie auerdem Informationen darber, wie Sie ihre Bestellung per Fax erledigen kn-enn Sie Fragen bezglich der Lizensierung haben, oder Sie ein Angebot ber eine grereerteilung erhalten wollen, fllen Sie bitte Das Kontaktformular auf unserer Website (http:/mysql.com/) aus, oder schicken Sie eine E-Mail an [email protected] (fr Lizenz- oder an [email protected] (fr Verkaufsinformationen). Siehe Seite 37, MySQL-Lizenzpoli-enn Sie daran interessiert sind, ein Werbebanner auf unserer Website (http://ysql.com/) zu schalten, schicken Sie bitte eine E-Mail an [email protected] 33, Werbung).

    Sie ein Unternehmen vertreten, dass an einer Partnerschaft mit MySQL interessiert ist, schi-ie bitte eine E-Mail an [email protected]. Fr weitere Informationen ber die MySQLmarkenbestimmungen, beachten Sie bitte http://www.mysql.com/company/trade-html oder kontaktieren Sie [email protected].

    Sie an einem der Jobs interessiert sind, die im jobs-Abschnitt aufgefhrt sind, schicken Siene E-Mail an [email protected]. Bitte senden Sie ihre CV nicht als Anhang an dieser mailndern fgen Sie sie lieber am Ende ihrer mail als Klartext (plain text) ein. Allgemeine Dis-en mit vielen unserer Benutzer knnen Sie auf den entsprechenden Mailing-Listen fh-hlerberichte (Auch Bugreporte genannt), sowie Fragen und Kommentare, sollten an die

    gliste [email protected] gehen.

    Sie ein empfindliches Sicherheitsloch im MySQL Server gefunden haben, sollten Sie eine an [email protected] schreiben (siehe Seite 44, Wie man Bugs oder Probleme berichtet).Sie Benchmarkergebnis haben, die wir verffentlichen knnen, kontaktieren Sie uns [email protected].

    Sie Vorschlge fr Hinzufgungen oder Korrekturen dieses Handbuchs haben, schicken Siee an das Handbuch-Team: [email protected]. Fragen zur Arbeitsweise oder zu Inhaltenr Website(http://www.mysql.com/) stellen Sie bitte an [email protected]. Fragenas MySQL Portal (http://www.mysql.com/portal/) knnen an [email protected] werden. Die Datenschutzbestimmungen von MySQL AB knnen Sie unter http://ysql.com/company/privacy.html einsehen. Fr irgendwelche Fragen darber, wenden Sieitte an [email protected]. Allgemeine Informationsanfragen schicken Sie bitte anysql.com.

    L-Support und Lizensierung

    Abschnitt beschreibt die MySQL-Support- und Lizensierungsvereinbarungen

  • Was ist MySQL?

    Support, den MySQL AB anbietet Wir versuchen, technischen Support in einem breiten und umfassenden Blickwinkel zu sehen. Fastjedes Problem im Zusammenhang mit MySQL-Software ist fr uns wichtig, wenn es fr Sie wichtigist. Typischerweise suchen Kunden Hilfe dabei, wie man unterschiedliche Befehle und Dienstpro-gramme zum Funktionieren bringt, wie Performance-Flaschenhlse beseitigt werden knnen, wieman beschdigte Systeme repariert, wie sich Betriebssysteme oder Netzwerkkonfigurationen aufMySQman Aprograhierbei

    DetaillhttpsSie nursalesnen jahdiese(nProbleden. Esbentig

    Copyrverwe

    MySQLund didie fr

    1. DekomDa

    2. DieGEBL

    3. DeGLIC

    4. Einley

    5. ltwwwtati

    6. Dabuclau

    Sie knwie debuchs lich.

    Bitte seinteres35

    L auswirken, wie man Datensicherung und Wiederherstellung optimal konfiguriert, wiePIs benutzt usw. Unser Support deckt nur den MySQL-Server und unsere eigenen Dienst-mme ab, nicht Produkte Dritter, die auf den MySQL-Server zugreifen, obwohl wir auch versuchen, zu helfen wo wir knnen.

    ierte Informationen ber unsere unterschiedlichen Support-Optionen finden Sie auf://order.mysql.com/, wo auch Support-Vertrge online bestellt werden knnen. Wenn beschrnkten Zugriff auf das Internet haben, setzen Sie sich mit unserem Vertrieb [email protected] in Verbindung. Technischer Support ist wie eine Lebensversicherung. Sie kn-relang ohne solches glcklich sein, doch wenn die Stunde schlgt, kann es zu spt sein,) zu kaufen! Wenn Sie den MySQL-Server fr wichtige Applikationen nutzen und pltzlichmen begegnen, kann es mglicherweise zu lange dauern, alle Antworten selbst herauszufin- kann daher sein, dass Sie unmittelbaren Zugriff auf die erfahrensten MySQL-Problemlseren, und da

    ights und Lizenzen, die von MySQL ndet werden AB besitzt das Copyright des MySQL Quellcodes, der MySQL Logos and Schutzmarkeneses Handbuch. (Siehe Seite 31, Was ist MySQL AB?) Es gibt einige verschiedene Lizenzen, die MySQL Distribution relevant sind:

    r MySQL-spezifische Quelltext, der bentigt wird, um die mysqlclient-Bibliothek zupilieren, ist unter der LGPL lizensiert. Programme im 'client'-Verzeichnis sind GPL. Jede

    tei hat einen Header, aus dem ersichtlich ist, welches Copyright fr diese Datei gilt. Client-Bibliothek und die (GNU getopt)-Bibliothek werden von der GNU LIBRARYNERAL PUBLIC LICENSE abgedeckt (siehe Seite 727, GNU LESSER GENERAL PU-IC LICENSE).r gesamte Quelltext des Servers und der (GNU readline)-Bibliothek werden von derNU GENERAL PUBLIC LICENSE abgedeckt (siehe Seite 719, GNU GENERAL PUBLICENSE). Diese findet sich unter anderem als Datei 'COPYING' in den Distributionen. ige Teile des Quelltextes (die regexp-Bibliothek) werden von einem Copyright in Berke--Art abgedeckt. ere Versionen von (3.22 und frher) stehen unter einer strikteren Lizenz (http://.mysql.com/support/arrangements/mypl.html). Bitte beachten sie die Dokumen-

    on der speziellen Version fr weitere Informationen. s Online-Handbuch steht nicht unter einer GPL-artigen Lizenz. Die Benutzung des Hand-hs unterliegt den folgenden Bestimmungen: Die Konvertierung in andere Formate ist er-bt, der Inhalt jedoch darf auf keinen Fall gendert oder bearbeitet werden.

    nen eine gedruckte Version fr den privaten Gebrauch erstellen Fr alle anderen Zwecke,n Verkauf von gedruckten Kopien oder die Verwendung (auch in Teilen) des Online-Hand-in anderen Verffentlichungen, ist eine vorherige Vereinbarung mit MySQL AB erforder-

    nden Sie eine E-Mail an [email protected] fr weitere Informationen oder wenn Sie daransiert sind, eine bersetzung zu erstellen.

  • Kapitel 1

    36

    Fr Informationen darber, wie die MySQL-Lizenzen in der Praxis arbeiten, beachten Sie bitteSeite 37, MySQL-Lizenzpolitik sowie Seite 36, MySQL-AB-Logos und -Schutzmarken.

    Verwendung des MySQL-Servers unter einer kommerziellen Lizenz

    Internet Service Provider (ISP) hosten oft MySQL-Server fr ihre Kunden. Aufgrund der GPL-Lizenz ist hierfr keine Lizensierung erforderlich. Auf der anderen Seite ermutigen wir Leute, ISPszu benFalle vFllen Dinge sein voBeachtden Qdiese k

    Einen W

    Wenn fr einben, dnoch bnehme

    MySQViele Mduktendaraufsind unwww.m

    Das Orig

    Das Mfen. DeschnellDelphisonen

    MySQL-L

    Wir haWebsitknnenwerdenschrnSie solsind im

    BenGrGr

    Hederutzen, die MySQL-Support haben, und das wird ihnen Vertrauen geben, dass ihr ISP imon Problemen mit ihrer MySQL-Installation helfen wird, das Problem zu lsen (in manchenmit der Hilfe des MySQL-Entwicklungsteams). Alle ISPs, die auf dem neuesten Stand derbleiben wollen, sollten sich in die announce-Mailing-Liste eintragen, um auf der Hut zur schwerwiegenden Problemen, die fr ihre MySQL-Installationen relevant sein knnten.en Sie bitte, dass ein ISP ohne MySQL-Lizenz seinen Kunden zumindest Lesezugriff aufuelltext der MySQL-Installation geben sollte, damit die Kunden feststellen knnen, dassorrekt gepatcht ist.

    ebserver betreiben, der MySQL benutzt

    Sie MySQL in Verbindung mit einem Webserver unter Unix betreiben, brauchen Sie nichte Lizenz zu bezahlen. Das gilt selbst dann, wenn Sie einen kommerziellen Webserver betrei-er MySQL benutzt, weil Sie nicht selbst eine eingebettete MySQL-Version verkaufen. Den-itten wir Sie, in einem solchen Fall MySQL-Support zu kaufen, weil MySQL Ihrem Unter-n hilft.

    L-AB-Logos und -Schutzmarken ySQL-Datenbankbenutzer wollen auf Ihren Websites, ihren Bchern und Packungspro-

    das MySQL-AB-Delphin-Logo zeigen. Wir begren das und ermuntern dazu, weisen aber hin, dass das Wort MySQL und das MySQL-Delphin-Logo Schutzmarken von MySQL ABd nur so benutzt werden drfen, wie in unserer Schutzmarken-Richtlinie unter http://ysql.com/company/trademark.html festgelegt.

    inal-MySQL-Logo

    ySQL-Delphin-Logo wurde von der finnischen Werbeagentur Priority im Jahr 2001 entwor-r Delphin wurde als passendes Symbol fr die MySQL-Datenbank gewhlt, weil er schlau, und schlank ist und mhelos durch die Daten-Ozeane navigiert. Auerdem mgen wirne. Das Original-MySQL-Logo darf nur von Reprsentanten von MySQL AB und von Per-benutzt werden, die eine schriftliche Erlaubnis hierfr haben.

    ogos, die ohne schriftliche Erlaubnis benutzt werden drfen

    ben einen Satz spezieller Logos fr die vorbehaltliche Benutzung angelegt, die von unserere unter http://www.mysql.com/downloads/logos.html herunter geladen werden und von Dritten auf ihren Websites ohne schriftliche Erlaubnis von MySQL AB benutzt drfen. Der Gebrauch dieser Logos ist wie der Name anzeigt nicht vllig uneinge-

    kt, sondern unterliegt unseren Schutzmarken-Richtlinien, die Sie auf unserer Website finden.lten diese Richtlinien lesen, wenn Sie planen, die Logos zu benutzen. Die Anforderungen Wesentlichen:

    utzen Sie das gewnschte Logo von der http://www.mysql.com/- Site. Sie drfen diee nach Ihren Bedrfnissen anpassen, aber keine Farben oder das Design ndern noch dieafik in sonstiger Form verndern. ben Sie hervor, dass Sie und nicht MySQL AB der Betreiber und Eigner der Site ist, auf die MySQL-Schutzmarke gezeigt wird.

  • Was ist MySQL?

    Sie drfen die Schutzmarke nicht auf eine Weise benutzen, die MySQL AB oder dem Wert derMySQL-AB-Schutzmarken schadet. Wir behalten uns das Recht vor, das Recht zur Benutzungder MySQL-AB-Schutzmarke zu widerrufen.

    Wenn Sie die Schutzmarke auf einer Website benutzen, machen Sie sie anklickbar, wobei di-rekt nach http://www.mysql.com/ verlinkt wird.

    Wenn Sie die MySQL-Datenbank unter GPL in einer Applikation benutzen, muss Ihre Appli-kation (i) Open Source sein, (ii) in der Lage sein, sich mit einem MySQL-Server zu verbinden.

    Setzen ments

    Wann Si

    In folgMySQ

    We We

    nut

    Aus reken auAnzeiges vertflieen

    MySQL-A

    MySQeine ge

    MySQDie foLICENBeachtgen. Senen naderungkaufenlen, we

    WeCliFalnutsindGPden/ww

    WeSieEin

    WeMy37

    Sie sich unter [email protected] mit uns in Verbindung, um bei speziellen Arrange-anzufragen, die Ihren Bedrfnissen entsprechen.

    e eine Erlaubnis fr die Benutzung des MySQL-Logos bentigen

    enden Fllen bentigen Sie eine schriftliche Erlaubnis von MySQL AB, bevor Sie dieL-Logos benutzen:

    nn Sie irgend ein MySQL-AB-Logo irgendwo auer auf Ihrer Website zeigen. nn Sie irgend ein MySQL-AB-Logo auer den oben erwhnten Logos zur vorbehaltlichen Be-zung auf Websites oder anderswo anzeigen.

    chtlichen und kommerziellen Grnden mssen wir die Benutzung der MySQL-Schutzmar-f Produkten, Bchern usw. beobachten. blicherweise verlangen wir eine Gebhr fr dasen von MySQL-AB-Logos auf kommerziellen Produkten, weil wir der Meinung sind, dassretbar ist, dass einige der Erlse fr die Weiterentwicklung der MySQL- Datenbank zurck-.

    B-Partnerschafts-Logos

    L-Partnerschafts-Logos drfen nur von Unternehmen und Personen benutzt werden, diesonderte Vereinbarung mit MySQL AB getroffen haben.

    L-Lizenzpolitik rmalen Bedingungen der GPL-Lizenz stehen auf Seite 719, GNU GENERAL PUBLICSE. Im Wesentlichen ist unsere Lizenzpolitik und die Interpretation der GPL wie folgt:en Sie bitte, dass ltere Versionen von MySQL immer noch einer strengeren Lizenz unterlie-hen Sie in der Dokumentation der betreffenden Version wegen entsprechender Informatio-ch. Wenn Sie eine kommerzielle Lizenz bentigen, weil die GPL-Lizenz nicht zu den Anfor-en Ihrer Applikation passt, knnen Sie eine Lizenz unter https://order.mysql.com/. Fr normalen internen Gebrauch kostet MySQL nichts. Sie brauchen uns nichts zu bezah-nn Sie nicht wollen. Eine Lizenz wird bentigt:

    nn Sie ein Programm, das nicht freie Software ist, mit Code des MySQL-Servers oder derent-Programme verbinden, die den GPL-Copyrights unterliegen. Das ist zum Beispiel derl, wenn Sie MySQL als eingebetteten Server (Embedded Server) in Ihren Applikationen be-zen, oder wenn Sie dem MySQL-Server Erweiterungen hinzufgen, die nicht freie Software. In diesen Fllen wrden Ihre Applikation bzw. Ihr Code ebenfalls GPL werden, weil die

    L in solchen Fllen wie ein Virus wirkt. Sie knnen dieses Problem vermeiden, wenn Sie MySQL-Server mit einer kommerziellen Lizenz von MySQL AB erwerben. Siehe http:/w.gnu.org/copyleft/gpl-faq.html.

    nn Sie eine kommerzielle Applikation haben, die NUR mit MySQL funktioniert, und wenn die Applikation zusammen mit dem MySQL-Server ausliefern. Wir betrachten so etwas alsbindung, selbst wenn es ber das Netzwerk geschieht. nn Sie eine Distribution von MySQL besitzen und nicht den Quelltext fr Ihre Kopie desSQL-Servers zur Verfgung stellen, so wie es in der GPL-Lizenz festgelegt ist.

  • Kapitel 1

    38

    Eine Lizenz wird NICHT bentigt:

    Sie bentigen keine Lizenz, wenn Sie den Client-Code in kommerzielle Programme einschlies-sen. Der Client-Teil von MySQL unterliegt der LGPL GNU Library General Public Li-cense-Lizenz. Der mysql-Kommandozeilen-Client beinhaltet Code der readline-Biblio-thek, die unter GPL steht.

    Wenn Sie fr Ihre Art der Benutzung von MySQL keine Lizenz bentigen, aber MySQL m-genein

    Webitttenzu genste

    In Situder deMascheiner MServerelle Bebevor bentigvon M

    Benutzun

    Prsenist einenung dmacheSchutz

    Benutzun

    ProdukInterne

    MySQ

    Datelin

    Lange Serverren Mbestehbank-Sneue F und die weitere Entwicklung frdern wollen, sind Sie herzlich eingeladen, in jedem Falle Lizenz zu erwerben. nn Sie MySQL in einem kommerziellen Zusammenhang benutzen und davon profitieren,en wir Sie, dass Sie die Weiterentwicklung von MySQL frdern, indem Sie einen bestimm- Grad von Support kaufen. Wir meinen, dass es vernnftig ist, wenn wir Sie bitten, MySQLuntersttzen, wenn MySQL Ihren Geschften hilft. (Ansonsten wrde es bei Support-Anfra- bedeuten, dass Sie nicht nur etwas fr umsonst benutzen, in das wir eine Menge Arbeit ge-

    ckt haben, sondern dass Sie uns auch noch auffordern, kostenlosen Support zu liefern.)

    ationen, wo eine MySQL-Lizenz bentigt wird, brauchen Sie eine Lizenz pro Maschine, aufr MySQL-Server luft. Eine Mehrprozessor-Maschine zhlt jedoch als eine einzelne

    ine, und es gibt keine Beschrnkung hinsichtlich der Anzahl von MySQL-Servern, die aufaschine laufen, oder hinsichtlich der Anzahl von Clients, die zur gleichen Zeit mit einem

    verbunden sind, der auf dieser Maschine luft! Falls Sie nicht sicher sind, ob fr Ihre spezi-nutzung von MySQL eine Lizenz erforderlich ist, lesen Sie diesen Abschnitt bitte nochmals,Sie uns kontaktieren (siehe Seite 33, Kontaktinformationen). Wenn Sie eine MySQL-Lizenzen, ist die Bezahlung am einfachsten, wenn Sie das Lizenzformular auf dem Secure-Server

    ySQL unter https://order.mysql.com/ benutzen.

    g des Worts MySQL in Druckmaterialien

    tationen: MySQL AB begrt Verweise auf die MySQL-Datenbank, aber das Wort MySQL Schutzmarke von MySQL AB. Deshalb mssen Sie der ersten oder deutlichsten Erwh-es Worts MySQL das Schutzmarken-Symbol TM hinzufgen, und wo angebracht deutlichn, dass MySQL eine Schutzmarke von MySQL AB ist. Details entnehmen Sie bitte unserermarken-Richtlinie unter http://www.mysql.com/company/trademark.html.

    g des Worts MySQL in Unternehmens- und Produktnamen

    tnamen: Die Benutzung des Worts MySQL in Produkt- und Unternehmensnamen oder int-Domnen-Namen ist nur mit vorheriger schriftlicher Erlaubnis durch MySQL AB gestattet.

    L 4.0 kurz und bndig

    e: 16. Oktober 2001, Uppsala, Schweden

    durch MySQL AB angekndigt und lange von unseren Benutzern erwartet: Der MySQL- 4.0 ist in der Alpha-Version zum Herunterladen von http://www.mysql.com/ und unse-irrors verfgbar. Die neuen Haupt-Features des MySQL-Servers 4.0 sind eng mit unseremenden Geschft und den Community-Nutzern verzahnt. Durch ihn wird die MySQL-Daten-oftware als Lsung fr geschftskritische Schwerlast-Datenbanksysteme verbessert. Weitereeatures zielen auf die Benutzer eingebetteter Datenbanken.

  • Was ist MySQL?

    Schritt fr Schritt Das Erscheinen des MySQL-Servers 4.0 wird in mehreren Schritten erfolgen, wobei die erste Version4.0.0 genannt wird und bereits die meisten neuen Features enthlt. Zustzliche Features werden indie Versionen 4.0.1, 4.0.2 usw. eingebaut, hchstwahrscheinlich innerhalb weniger Monate. MySQL4.0 wird als Beta gekennzeichnet. In MySQL 4.1 werden dann weitere neue Features hinzugefgt.

    Fr deEs wirdin der ohne jeZahl nwicklundium wicklun

    Eingeblibmynen geMySQder EnbetteteKioskebankenvon dekommeeingebund istServer-B

    Weiter Ver

    BeiFUL

    DegebZei

    DedurwirEntundderwerdas4.0wasban39

    n sofortigen Entwicklungseinsatz nicht empfohlen, Produktionssysteme auf den MySQL-Server 4.0 umzustellen, bis dieser

    Beta-Version verffentlicht wird. Selbst das anfngliche Release hat unsere ausgiebigen Testsgliche Fehler durchlaufen, auf allen Plattformen, auf denen wir testen. Wegen der groen

    euer Features empfehlen wir daher den MySQL-Server selbst in der Alpha-Version fr Ent-gsarbeiten, wobei in Betracht gezogen werden kann, dass der MySQL-Server 4.0 das Sta-

    stabil erreichen wird, bevor Applikationen hiermit verffentlicht werden, die jetzt im Ent-gsstadium sind.

    ettetes MySQL sqld macht den MySQL-Server fr einen erheblich ausgedehnten Bereich von Applikatio-eignet. Wenn man die eingebettete MySQL-Server-Bibliothek benutzt, kann man denL-Server in unterschiedlichste Applikationen und elektronische Gerte einbetten, bei denendbenutzer keinerlei Ahnung davon hat, dass ihnen eine Datenbank unterlegt ist. Der einge- MySQL-Server ist ideal fr Benutzung hinter den Kulissen in Internet-Gerten, ffentlichenn, schlsselfertigen Hardware-/Software-Einheiten, Hochlast-Internet- Servern oder Daten-, die auf CD-ROM vertrieben werden. Viele Benutzer von eingebettetem MySQL knnenr dualen Lizensierung der MySQL-Software profitieren. Neben der GPL-Lizenz sind auchrzielle Lizenzen fr diejenigen verfgbar, die nicht an die GPL gebunden sein wollen. Die

    ettete MySQL-Bibliothek benutzt dieselbe Schnittstelle wie die normale Client-Bibliothek daher angenehm und leicht zu benutzen (siehe Seite 590, libmysqld, die eingebettete MySQL-ibliothek).

    e ab MySQL 4.0.0 verfgbare Features sion 4.0 erhht die Geschwindigkeit des MySQL-Servers in einigen Bereichen noch weiter, zumspiel bei Massen-INSERTs, beim Suchen auf komprimierten Indexen, der Erzeugung vonLTEXT-Indexen oder auch bei COUNT(DISTINCT).

    r Tabellen-Handler InnoDB wird jetzt als Feature des standardmigen MySQL-Servers an-oten und enthlt vollstndige Untersttzung fr Transaktionen und Sperren auflenebene.

    r MySQL-Server 4.0 untersttzt sichere Kommunikation zwischen Client und Server, wo-ch die Sicherheit gegen bswilliges Eindringen und unbefugten Zugriff erheblich erhhtd. Bei Web-Applikationen, die ein Grundpfeiler der MySQL-Benutzung sind, konnten Web-wickler immer schon SSL verwenden, um den Verkehr zwischen Endbenutzer-Browser der Web-Applikation zu sichern, sei sie nun in PHP, Perl, ASP oder mit irgend einem an-en Web-Entwicklungswerkzeug geschrieben. Der Verkehr zwischen dem Entwicklungs-kzeug und dem mysqld-Serverprozess konnte bislang aber nur dadurch gesichert werden,s die Prozesse auf Computern innerhalb derselben Firewall residierten. Ab MySQL-Server kann der mysqld-Server-Daemon-Prozess selbst Secure Sokkets Layer (SSL) benutzen, ihn in die Lage versetzt, eine sichere Datenbertragung zwischen einer MySQL-Daten-k und beispielsweise einer Windows-Applikation auerhalb der Firewall aufzubauen.

  • Kapitel 1

    40

    Unsere deutschen, sterreichischen und schweizerischen Benutzer werden bemerken, dass eseinen neuen Zeichensatz latin_de gibt, der die deutsche Sortierreihenfolge beinhaltet, indem deut-sche Umlaute in derselben Sortierung erscheinen wie bei deutschen Telefonbchern blich.

    Zu den Features, die die Migration von anderen Datenbanksystemen zum MySQL-Server er-leichtern, gehren TRUNCATE TABLE (wie in Oracle) und IDENTITY a1s Synonym fr automa-tisch hochgezhlte Schlssel (wie in Sybase). viele Benutzer werden sich auch darber freuen,dass der MySQL-Server jetzt das UNION-Statement untersttzt, ein lang erwartetes Standard-SQL-Feature.

    Beizervonnicderschcheht

    ZuknFr dietures e

    Benunsvongibtisitertua

    AlsPar

    DiechechiWom

    Viedig

    Vie

    MySQIntern GrundUntergeln, einfachErgnzchen dseine Sderung der Erstellung neuer Features fr neue Benutzer haben wir die Gemeinschaft treuer Benut- nicht vergessen. Es gibt jetzt Multi- Tabellen-DELETE-Statements. Durch das Hinzufgen Untersttzung fr symbolisches Verknpfen von MyISAM auf Tabellenebene (und

    ht nicht wie bisher auf Datenbankebene), sowie durch das vorgabemige Anschalten Verknpfungen unter Windows hoffen wir zeigen zu knnen, dass wir Verbesserungsvor-lge ernst nehmen. Funktionen wie SQL_CALC_FOUND_ROWS und FOUND_ROWS() ermgli-n herauszufinden, wie viele Zeilen eine Anfrage ohne eine LIMIT-Klausel zurckgegebente.

    ftige Features in MySQL 4.0 kommenden Releases des MySQL-Servers 4.0 (4.0.1, 4.0.2 usw.) knnen Sie folgende Fea-rwarten, die noch in der Entwicklu