mysql 5.1 referenzhandbuch

1698
MySQL 5.1 Referenzhandbuch

Upload: others

Post on 29-May-2022

12 views

Category:

Documents


0 download

TRANSCRIPT

MySQL 5.1 ReferenzhandbuchCopyright © 1997, 2010, Oracle and/or its affiliates. All rights reserved.
This software and related documentation are provided under a license agreement containing restrictions on use and disclosure and are protected by intellectual property laws. Except as expressly permitted in your license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license, transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means. Reverse engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is prohibited.
The information contained herein is subject to change without notice and is not warranted to be error-free. If you find any errors, please report them to us in writing.
Wird diese Software oder zugehörige Dokumentation an die Regierung der Vereinigten Staaten von Amerika bzw. einen Lizenznehmer im Auftrag der Regierung der Vereinigten Staaten von Amerika geliefert, gilt Folgendes:
U.S. GOVERNMENT RIGHTS Programs, software, databases, and related documentation and technical data delivered to U.S. Government customers are "commercial computer software" or "commercial technical data" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, the use, duplication, disclosure, modification, and adaptation shall be subject to the restrictions and license terms set forth in the applicable Government contract, and, to the extent applicable by the terms of the Government contract, the additional rights set forth in FAR 52.227-19, Commercial Computer Software License (December 2007). Oracle USA, Inc., 500 Oracle Parkway, Redwood City, CA 94065.
This software is developed for general use in a variety of information management applications. It is not developed or intended for use in any inherently dangerous applications, including applications which may create a risk of personal injury. If you use this software in dangerous applications, then you shall be responsible to take all appropriate fail-safe, backup, redundancy, and other measures to ensure the safe use of this software. Oracle Corporation and its affiliates disclaim any liability for any damages caused by use of this software in dangerous applications.
Oracle is a registered trademark of Oracle Corporation and/or its affiliates. MySQL is a trademark of Oracle Corporation and/or its affiliates, and shall not be used without Oracle's express written authorization. Other names may be trademarks of their respective owners.
This software and documentation may provide access to or information on content, products, and services from third parties. Oracle Corporation and its affiliates are not responsible for and expressly disclaim all warranties of any kind with respect to third-party content, products, and services. Oracle Corporation and its affiliates will not be responsible for any loss, costs, or damages incurred due to your access to or use of third-party content, products, or services.
This document in any form, software or printed matter, contains proprietary information that is the exclusive property of Oracle. Your access to and use of this material is subject to the terms and conditions of your Oracle Software License and Service Agreement, which has been executed and with which you agree to comply. This document and information contained herein may not be disclosed, copied, reproduced, or distributed to anyone outside Oracle without prior written consent of Oracle or as specifically provided below. This document is not part of your license agreement nor can it be incorporated into any contractual agreement with Oracle or its subsidiaries or affiliates.
This documentation is NOT distributed under a GPL license. Use of this documentation is subject to the following terms:
You may create a printed copy of this documentation solely for your own personal use. Conversion to other formats is allowed as long as the actual content is not altered or edited in any way. You shall not publish or distribute this documentation in any form or on any media, except if you distribute the documentation in a manner similar to how Oracle disseminates it (that is, electronically for download on a Web site with the software) or on a CD-ROM or similar medium, provided however that the documentation is disseminated together with the software on the same medium. Any other use, such as any dissemination of printed copies or use of this documentation, in whole or in part, in another publication, requires the prior written consent from an authorized representative of Oracle. Oracle and/or its affiliates reserve any and all rights to this documentation not expressly granted above.
For more information on the terms of this license, for details on how the MySQL documentation is built and produced, or if you are interested in doing a translation, please visit MySQL Contact & Questions.
For additional licensing information, including licenses for libraries used by MySQL products, see Vorwort.
If you want help with using MySQL, please visit either the MySQL Forums or MySQL Mailing Lists where you can discuss your issues with other MySQL users.
For additional documentation on MySQL products, including translations of the documentation into other languages, and downloadable versions in variety of formats, including HTML and PDF formats, see the MySQL Documentation Library.
Zusammenfassung
Das ist das MySQL-Referenzhandbuch. Es dokumentiert MySQL 5.1 bis 5.1.5-alpha.
Dokument erzeugt am: 2012-12-10 (revision: 587)
Inhaltsverzeichnis Vorwort ....................................................................................................................................... xxi 1. Allgemeine Informationen über MySQL ...................................................................................... 1
1.1. Über dieses Handbuch ................................................................................................... 2 1.2. Konventionen in diesem Handbuch ................................................................................. 3 1.3. Was ist MySQL AB? ...................................................................................................... 4 1.4. Was ist MySQL? ............................................................................................................ 5
1.4.1. Geschichte von MySQL ....................................................................................... 6 1.4.2. Die wichtigsten Features von MySQL ................................................................... 6 1.4.3. Wie stabil ist MySQL? ......................................................................................... 9 1.4.4. Wie groß können MySQL-Tabellen sein? ............................................................ 10 1.4.5. Jahr-2000-Konformität ........................................................................................ 11
1.5. Überblick über das Datenbanksystem MaxDB ................................................................ 12 1.5.1. Was ist MaxDB? ............................................................................................... 12 1.5.2. Geschichte von MaxDB ..................................................................................... 13 1.5.3. Features von MaxDB ......................................................................................... 13 1.5.4. Lizenzierung und Support .................................................................................. 14 1.5.5. Unterschiede zwischen MaxDB und MySQL ....................................................... 14 1.5.6. Interoperabilität zwischen MaxDB und MySQL .................................................... 15 1.5.7. Links zu MaxDB ................................................................................................ 15
1.6. MySQL-Roadmap ......................................................................................................... 15 1.6.1. Was ist neu in MySQL 5.1? ............................................................................... 16
1.7. Informationsquellen zu MySQL ..................................................................................... 17 1.7.1. Die MySQL-Mailinglisten .................................................................................... 17 1.7.2. MySQL-Community-Support in den MySQL-Foren ............................................... 19 1.7.3. Unterstützung für die MySQL-Community auf Internet Relay Chat (IRC) ................ 20
1.8. Wie man Bugs oder Probleme meldet ........................................................................... 20 1.9. Wie kompatibel zum SQL-Standard ist MySQL? ............................................................ 24
1.9.1. An welche Standards hält sich MySQL? ............................................................. 25 1.9.2. Auswahl der SQL-Modi ...................................................................................... 25 1.9.3. MySQL im ANSI-Modus laufen lassen ................................................................ 25 1.9.4. MySQL-Erweiterungen zu ANSI SQL92 .............................................................. 26 1.9.5. MySQL: Unterschiede im Vergleich zu ANSI SQL92 ............................................ 29 1.9.6. Wie MySQL mit Constraints umgeht ................................................................... 35
2. Installation von MySQL ........................................................................................................... 39 2.1. Allgemeines zur Installation .......................................................................................... 40
2.1.1. Betriebssysteme, die von MySQL unterstützt werden ........................................... 41 2.1.2. Welche MySQL-Version Sie benutzen sollten ...................................................... 43 2.1.3. Woher man MySQL bekommt ............................................................................ 53 2.1.4. Bestätigen der Paketintegrität mittels MD5-Prüfsummen oder GnuPG .................... 53 2.1.5. Installationslayouts ............................................................................................. 56
2.2. Schnelle Standardinstallation von MySQL ...................................................................... 57 2.3. Installation von MySQL unter Windows ......................................................................... 58
2.3.1. Systemvoraussetzungen für Windows ................................................................. 58 2.3.2. Auswahl eines Installationspakets ....................................................................... 59 2.3.3. Installation von MySQL mit dem automatischen Installer ...................................... 59 2.3.4. Verwendung des MySQL-Installations-Assistenten ............................................... 60 2.3.5. Verwendung des Konfigurations-Assistenten ....................................................... 63 2.3.6. Installation von MySQL aus einem Noinstall-Zip-Archiv ........................................ 67 2.3.7. Entpacken des Installationsarchivs ..................................................................... 68 2.3.8. Anlegen einer Optionsdatei ................................................................................ 68 2.3.9. Auswahl des MySQL Server-Typs ...................................................................... 69 2.3.10. Erstmaliges Starten des Servers ...................................................................... 70 2.3.11. Starten von MySQL von der Windows-Befehlszeile ............................................ 71 2.3.12. Starten von MySQL als Windows-Dienst ........................................................... 72 2.3.13. Test der MySQL-Installation ............................................................................. 74
MySQL 5.1 Referenzhandbuch
iv
2.3.14. Troubleshooting einer MySQL-Installation unter Windows .................................. 75 2.3.15. Upgrade von MySQL unter Windows ................................................................ 76 2.3.16. MySQL unter Windows im Vergleich zu MySQL unter Unix ................................ 77
2.4. MySQL unter Linux installieren ..................................................................................... 79 2.5. Installation von MySQL unter Mac OS X ....................................................................... 82 2.6. Installation von MySQL unter NetWare .......................................................................... 84 2.7. Installation von MySQL auf anderen Unix-ähnlichen Systemen ....................................... 86 2.8. Installation der Quelldistribution ..................................................................................... 89
2.8.1. Schnellinstallation, Überblick .............................................................................. 90 2.8.2. Typische configure-Optionen .......................................................................... 92 2.8.3. Installation vom Entwicklungs-Source-Tree ......................................................... 95 2.8.4. Probleme beim Kompilieren? ............................................................................. 98 2.8.5. Anmerkungen zu MIT-pthreads ......................................................................... 101 2.8.6. Windows-Quelldistribution ................................................................................ 102 2.8.7. MySQL-Clients auf Windows kompilieren .......................................................... 105
2.9. Einstellungen und Tests nach der Installation .............................................................. 106 2.9.1. Nach der Installation unter Windows durchzuführende Schritte ........................... 106 2.9.2. Schritte nach der Installation unter Unix ............................................................ 107 2.9.3. Einrichtung der anfänglichen MySQL-Berechtigungen ........................................ 118
2.10. MySQL aktualisieren (Upgrade/Downgrade) ............................................................... 121 2.10.1. Upgrade von MySQL 5.0 ................................................................................ 122 2.10.2. Upgrade auf eine andere Architektur ............................................................... 124
2.11. Downgrade von MySQL ............................................................................................ 125 2.12. Betriebssystemspezifische Anmerkungen ................................................................... 126
2.12.1. Linux (alle Linux-Versionen) ........................................................................... 126 2.12.2. Anmerkungen zu Mac OS X ........................................................................... 133 2.12.3. Anmerkungen zu Solaris ................................................................................ 133 2.12.4. Anmerkungen zu BSD .................................................................................... 137 2.12.5. Anmerkungen zu anderen Unixen ................................................................... 140 2.12.6. Anmerkungen zu OS/2 ................................................................................... 155
2.13. Anmerkungen zur Perl-Installation ............................................................................. 155 2.13.1. Installation von Perl unter Unix ....................................................................... 156 2.13.2. Installation von ActiveState-Perl unter Windows ............................................... 157 2.13.3. Probleme bei der Benutzung der DBI/DBD-Schnittstelle von Perl ....................... 157
3. Einführung in MySQL: ein MySQL-Tutorial ............................................................................. 161 3.1. Verbindung zum Server herstellen und trennen ............................................................ 161 3.2. Anfragen eingeben ..................................................................................................... 162 3.3. Eine Datenbank erzeugen und benutzen ..................................................................... 165
3.3.1. Eine Datenbank erzeugen und auswählen ........................................................ 167 3.3.2. Eine Tabelle erzeugen ..................................................................................... 167 3.3.3. Daten in Tabellen einladen .............................................................................. 169 3.3.4. Informationen aus einer Tabelle abfragen ......................................................... 170
3.4. Informationen über Datenbanken und Tabellen ............................................................ 183 3.5. mysql im Stapelbetrieb .............................................................................................. 183 3.6. Beispiele gebräuchlicher Abfragen .............................................................................. 185
3.6.1. Der höchste Wert einer Spalte ......................................................................... 185 3.6.2. Die Zeile, die den höchsten Wert einer bestimmten Spalte enthält ...................... 186 3.6.3. Höchster Wert einer Spalte pro Gruppe ............................................................ 186 3.6.4. Die Zeilen, die das gruppenweise Maximum eines bestimmten Felds enthalten .... 186 3.6.5. Wie Benutzervariablen verwendet werden ......................................................... 186 3.6.6. Wie Fremdschlüssel verwendet werden ............................................................ 187 3.6.7. Über zwei Schlüssel suchen ............................................................................ 188 3.6.8. Besuche pro Tag berechnen ............................................................................ 189 3.6.9. Verwendung von AUTO_INCREMENT ................................................................. 189
3.7. Anfragen aus dem Zwillingsprojekt .............................................................................. 191 3.7.1. Alle nicht verteilten Zwillinge finden .................................................................. 191 3.7.2. Eine Tabelle über den Zustand von Zwillingspaaren zeigen ................................ 193
3.8. MySQL mit Apache verwenden ................................................................................... 194
MySQL 5.1 Referenzhandbuch
4. Benutzung von MySQL-Programmen ..................................................................................... 195 4.1. Überblick über MySQL-Programme ............................................................................. 195 4.2. Aufruf von MySQL-Programmen .................................................................................. 196 4.3. Angabe von Programmoptionen .................................................................................. 197
4.3.1. Befehlszeilenoptionen für mysqld ...................................................................... 197 4.3.2. my.cnf-Optionsdateien ...................................................................................... 199 4.3.3. Verwendung von Umgebungsvariablen für die Angabe von Optionen .................. 203 4.3.4. Verwendung von Optionen zum Setzen von Programmvariablen ........................ 204
5. Datenbankverwaltung ............................................................................................................ 207 5.1. Überblick über serverseitige Programme und Dienstprogramme .................................... 208 5.2. mysqld — Der MySQL-Server ................................................................................... 209
5.2.1. Befehlsoptionen für mysqld ............................................................................. 210 5.2.2. Server-Systemvariablen ................................................................................... 221 5.2.3. Verwendung von Server-Systemvariablen ......................................................... 247 5.2.4. Server-Statusvariablen ..................................................................................... 255 5.2.5. Der SQL-Modus des Servers ........................................................................... 264 5.2.6. Herunterfahren des MySQL Servers ................................................................. 269
5.3. mysqld-max, ein erweiterter mysqld-Server .................................................................. 270 5.4. Startprogramme für den MySQL-Server ....................................................................... 273
5.4.1. mysqld_safe — Startskript für den MySQL-Server .......................................... 273 5.4.2. mysql.server — Startskript für den MySQL-Server ........................................ 276 5.4.3. mysqld_multi — Verwalten mehrerer MySQL-Server ..................................... 277
5.5. mysqlmanager — Der MySQL Instance Manager ....................................................... 281 5.5.1. MySQL Instance Manager: MySQL-Server starten ............................................. 281 5.5.2. MySQL Instance Manager: Verbinden und Anlegen von Benutzerkonten ............. 281 5.5.3. MySQL Instance Manager: Befehlsoptionen ...................................................... 282 5.5.4. MySQL Instance Manager: Konfigurationsdateien .............................................. 284 5.5.5. MySQL Instance Manager: Unterstützte Befehle ................................................ 285
5.6. mysql_fix_privilege_tables — Upgrade von MySQL-Systemtabellen .................. 287 5.7. Absichern von MySQL gegen Angreifer ....................................................................... 287
5.7.1. Allgemeine Sicherheitsrichtlinien ....................................................................... 288 5.7.2. Absichern von MySQL gegen Angreifer ............................................................ 290 5.7.3. Startoptionen für mysqld in Bezug auf Sicherheit ............................................. 292 5.7.4. Sicherheitsprobleme mit LOAD DATA LOCAL ................................................... 293 5.7.5. Wie man MySQL als normaler Benutzer laufen läßt ........................................... 294
5.8. Allgemeine Sicherheitsaspekte und das MySQL-Zugriffsberechtigungssystem ................ 295 5.8.1. Was das Berechtigungssystem macht ............................................................... 295 5.8.2. Wie das Berechtigungssystem funktioniert ........................................................ 295 5.8.3. Von MySQL zur Verfügung gestellte Berechtigungen ......................................... 300 5.8.4. Verbinden mit dem MySQL-Server ................................................................... 304 5.8.5. Zugriffskontrolle, Phase 1: Verbindungsüberprüfung .......................................... 305 5.8.6. Zugriffskontrolle, Phase 2: Anfrageüberprüfung ................................................. 308 5.8.7. Wann Berechtigungsänderungen wirksam werden ............................................. 311 5.8.8. Gründe für Access denied-Fehler ................................................................. 311 5.8.9. Kennwort-Hashing ab MySQL 4.1 ..................................................................... 317
5.9. MySQL-Benutzerkontenverwaltung .............................................................................. 321 5.9.1. MySQL-Benutzernamen und -Kennwörter ......................................................... 321 5.9.2. Hinzufügen neuer MySQL-Benutzer .................................................................. 323 5.9.3. Entfernen von Benutzerkonten in MySQL .......................................................... 326 5.9.4. Begrenzen von Benutzer-Ressourcen ............................................................... 326 5.9.5. Kennwörter einrichten ...................................................................................... 327 5.9.6. Wie Sie Ihre Kennwörter sicher halten .............................................................. 328 5.9.7. Verwendung sicherer Verbindungen ................................................................. 329
5.10. Datensicherung und Wiederherstellung ...................................................................... 336 5.10.1. Datenbank-Datensicherungen ......................................................................... 336 5.10.2. Beispielhaftes Vorgehen zur Datensicherung und Wiederherstellung ................. 338 5.10.3. Zeitpunktbezogene Wiederherstellung ............................................................. 341 5.10.4. Benutzung von myisamchk für Tabellenwartung und Absturzreparatur ............. 343
MySQL 5.1 Referenzhandbuch
5.11. Lokalisierung und internationaler Gebrauch von MySQL ............................................. 354 5.11.1. Der für Daten und zum Sortieren benutzte Zeichensatz .................................... 354 5.11.2. Nicht englische Fehlermeldungen ................................................................... 355 5.11.3. Einen neuen Zeichensatz hinzufügen .............................................................. 356 5.11.4. Die Zeichendefinitionsarrays ........................................................................... 357 5.11.5. Unterstützung für String-Vergleiche ................................................................. 358 5.11.6. Unterstützung für Multi-Byte-Zeichen .............................................................. 358 5.11.7. Probleme mit Zeichensätzen .......................................................................... 358 5.11.8. Zeitzonen-Unterstützung des MySQL-Servers ................................................. 359
5.12. Die MySQL-Logdateien ............................................................................................. 360 5.12.1. Die Fehler-Logdatei ....................................................................................... 360 5.12.2. Die allgemeine Anfragen-Logdatei .................................................................. 361 5.12.3. Die binäre Update-Logdatei ............................................................................ 361 5.12.4. Die Logdatei für langsame Anfragen ............................................................... 365 5.12.5. Wartung und Pflege der Logdateien ................................................................ 366
5.13. Mehrere MySQL-Server auf derselben Maschine laufen lassen ................................... 367 5.13.1. Mehrere Server unter Windows verwenden ..................................................... 368 5.13.2. Mehrere MySQL-Server unter Unix laufen lassen ............................................ 371 5.13.3. Verwendung von Client-Programmen in einer Mehrserverumgebung ................. 373
5.14. MySQL-Anfragen-Cache ........................................................................................... 373 5.14.1. Wie der Anfragen-Cache funktioniert ............................................................... 374 5.14.2. Anfragen-Cache-Optionen in SELECT ............................................................. 376 5.14.3. Konfiguration des Anfragen-Cache .................................................................. 376 5.14.4. Anfragen-Cache-Status und -Wartung ............................................................. 378
6. Replikation bei MySQL .......................................................................................................... 379 6.1. Einführung in die Replikation ...................................................................................... 379 6.2. Replikation: Implementation ........................................................................................ 380 6.3. Zeilenbasierte Replikation ........................................................................................... 381 6.4. Replikation: Implementationsdetails ............................................................................. 382
6.4.1. Thread-Zustände des Replikationsmasters ........................................................ 383 6.4.2. I/O-Thread-Zustände von Replikationsslaves ..................................................... 383 6.4.3. SQL-Thread-Zustände von Replikationsslaves ................................................... 385 6.4.4. Relay- und Statusdateien bei der Replikation .................................................... 385
6.5. Wie man eine Replikation aufsetzt .............................................................................. 387 6.6. Replikation: Kompatibilität zwischen MySQL-Versionen ................................................ 391 6.7. Upgrade eines Replikationssetups ............................................................................... 391
6.7.1. Replikation: Upgrade auf 5.0 ............................................................................ 392 6.8. Replikation: Features und bekannte Probleme ............................................................. 392 6.9. Replikationsoptionen in my.cnf .................................................................................... 397 6.10. Wie Server Replikationsregeln auswerten .................................................................. 404 6.11. Replikation: häufig gestellte Fragen ........................................................................... 406 6.12. Vergleich zwischen anweisungsbasierter und zeilenbasierter Replikation ..................... 411 6.13. Replikation: Problemlösungen ................................................................................... 413 6.14. Berichten von Replikationsfehlern und -problemen ..................................................... 414 6.15. Auto-Increment in der Multi-Master-Replikation .......................................................... 415
7. Optimierung .......................................................................................................................... 417 7.1. Überblick über die Optimierung ................................................................................... 418
7.1.1. MySQL: konzeptionelle Einschränkungen .......................................................... 418 7.1.2. Applikationskonzepte unter Beachtung von Portabilitätsaspekten ........................ 419 7.1.3. Wofür benutzen wir MySQL? ............................................................................ 420 7.1.4. Die MySQL-Benchmark-Reihe .......................................................................... 420 7.1.5. Wie Sie Ihre eigenen Benchmarks benutzen ..................................................... 421
7.2. SELECT-Anweisungen und andere Anfragen optimieren ............................................... 422 7.2.1. EXPLAIN-Syntax (Informationen über ein SELECT erhalten) ............................... 423 7.2.2. Anfragenperformance abschätzen ..................................................................... 432 7.2.3. Geschwindigkeit von SELECT-Anweisungen ...................................................... 433 7.2.4. Optimierungen der WHERE-Klausel .................................................................... 433 7.2.5. Bereichsoptimierung ......................................................................................... 435
MySQL 5.1 Referenzhandbuch
7.3. Probleme mit Sperren ................................................................................................. 461 7.3.1. Wie MySQL Tabellen sperrt ............................................................................. 461 7.3.2. Themen, die Tabellensperren betreffen ............................................................. 463 7.3.3. Gleichzeitige Einfügevorgänge .......................................................................... 464
7.4. Optimierung der Datenbankstruktur ............................................................................. 465 7.4.1. Überlegungen zum Datenbankdesign ................................................................ 465 7.4.2. Wie Sie Ihre Daten so klein wie möglich bekommen .......................................... 465 7.4.3. Spaltenindizes ................................................................................................. 467 7.4.4. Mehrspaltige Indizes ........................................................................................ 467 7.4.5. Wie MySQL Indizes benutzt ............................................................................. 468 7.4.6. Der MyISAM-Schlüssel-Cache .......................................................................... 470 7.4.7. Sammlung von MyISAM-Indexstatistiken ........................................................... 475 7.4.8. Nachteile der Erzeugung großer Mengen von Tabellen in derselben Datenbank ... 477 7.4.9. Warum gibt es so viele offene Tabellen? .......................................................... 478
7.5. Optimierung des MySQL Servers ................................................................................ 479 7.5.1. System/Kompilierzeitpunkt und Tuning der Startparameter ................................. 479 7.5.2. Serverparameter feineinstellen ......................................................................... 479 7.5.3. Leistung des Abfragenoptimierers steuern ......................................................... 484 7.5.4. Wie Kompilieren und Linken die Geschwindigkeit von MySQL beeinflusst ............ 485 7.5.5. Wie MySQL Speicher benutzt .......................................................................... 486 7.5.6. Wie MySQL DNS benutzt ................................................................................ 488
7.6. Festplatte, Anmerkungen ............................................................................................ 488 7.6.1. Symbolische Verknüpfungen ............................................................................ 490
8. Client- und Hilfsprogramme ................................................................................................... 493 8.1. Überblick über Client- und Hilfsprogramme .................................................................. 493 8.2. myisamchk — Hilfsprogramm für die Tabellenwartung von MyISAM ............................. 495
8.2.1. Allgemeine Optionen für myisamchk ................................................................ 496 8.2.2. Prüfoptionen für myisamchk ............................................................................ 498 8.2.3. Reparaturoptionen für myisamchk ................................................................... 499 8.2.4. Weitere Optionen für myisamchk ..................................................................... 501 8.2.5. Speicherbenutzung von myisamchk ................................................................. 502
8.3. myisamlog — Anzeige von MyISAM-Logdateiinhalten ................................................. 502 8.4. myisampack — Erzeugung komprimierter, schreibgeschützter MyISAM Tabellen .......... 503 8.5. mysql — Das MySQL-Befehlszeilenwerkzeug mysql ................................................... 509
8.5.1. mysql Optionen .............................................................................................. 510 8.5.2. mysql-Befehle ................................................................................................ 514 8.5.3. Wie SQL-Befehle aus einer Textdatei geladen werden ....................................... 517 8.5.4. mysql: Tipps ................................................................................................... 518
8.6. mysqlaccess — Client für die Überprüfung von Zugriffsberechtigungen ....................... 520 8.7. mysqladmin — Client für die Verwaltung eines MySQL Servers .................................. 521 8.8. mysqlbinlog — Hilfsprogramm für die Verarbeitung binärer Logdateien ...................... 526 8.9. mysqlcheck — Hilfsprogramm für die Wartung und Reparatur von Tabellen ................. 532 8.10. mysqldump — Programm zur Datensicherung ........................................................... 535 8.11. mysqlhotcopy — Backup-Programm für Datenbanken ............................................. 543
MySQL 5.1 Referenzhandbuch
8.12. mysqlimport — Programm zum Datenimport .......................................................... 545 8.13. mysqlshow — Anzeige von Informationen über Datenbanken, Tabellen und Spalten .... 547 8.14. mysqlslap — Client zur Lastemulation .................................................................... 549 8.15. mysql_zap — Prozesse beenden, die einem Muster entsprechen .............................. 552 8.16. perror — Erklärung der Fehlercodes ....................................................................... 552 8.17. replace — Hilfsprogramm für String-Ersetzungen .................................................... 553
9. Sprachstruktur ....................................................................................................................... 555 9.1. Literale: wie Strings und Zahlen geschrieben werden ................................................... 555
9.1.1. Strings ............................................................................................................ 555 9.1.2. Zahlen ............................................................................................................. 557 9.1.3. Hexadezimale Werte ........................................................................................ 558 9.1.4. Boolesche Werte ............................................................................................. 558 9.1.5. Bitfeldwerte ..................................................................................................... 558 9.1.6. NULL-Werte ..................................................................................................... 558
9.2. Datenbank-, Tabellen-, Index-, Spalten- und Aliasnamen .............................................. 559 9.2.1. Qualifikatoren für Bezeichner ........................................................................... 560 9.2.2. Groß-/Kleinschreibung in Namen ...................................................................... 560
9.3. Benutzerdefinierte Variablen ....................................................................................... 562 9.4. Kommentar ................................................................................................................ 563 9.5. Ist MySQL pingelig hinsichtlich reservierter Wörter? ..................................................... 564
10. Zeichensatz-Unterstützung ................................................................................................... 569 10.1. Zeichensätze und Sortierfolgen im Allgemeinen ......................................................... 570 10.2. Zeichensätze und Sortierfolgen in MySQL ................................................................. 571 10.3. Festlegen von Zeichensätzen und Sortierfolgen ......................................................... 572
10.3.1. Serverzeichensatz und -sortierfolge ................................................................ 572 10.3.2. Datenbankzeichensatz und -sortierfolge .......................................................... 573 10.3.3. Tabellenzeichensatz und -sortierfolge ............................................................. 573 10.3.4. Spaltenzeichensatz und -sortierfolge ............................................................... 574 10.3.5. Zeichensatz und Sortierfolge literaler Strings ................................................... 574 10.3.6. Nationaler Zeichensatz ................................................................................... 575 10.3.7. Beispiele für die Zuordnung von Zeichensatz und Sortierfolge .......................... 576 10.3.8. Kompatibilität mit anderen Datenbanksystemen ............................................... 577
10.4. Verbindungszeichensatz und -sortierfolge .................................................................. 577 10.5. Probleme mit Sortierfolgen ........................................................................................ 579
10.5.1. Verwendung von COLLATE in SQL-Anweisungen ............................................ 579 10.5.2. Rangfolgen von COLLATE-Klauseln ................................................................. 579 10.5.3. Der BINARY-Operator .................................................................................... 580 10.5.4. Spezialfälle, in denen die Festlegung der Sortierfolge problematisch ist ............. 580 10.5.5. Sortierfolgen müssen für den richtigen Zeichensatz angegeben werden ............ 581 10.5.6. Beispiel für die Auswirkung von Sortierfolgen .................................................. 582
10.6. Operationen, auf die sich die Zeichensatzunterstützung auswirkt ................................. 582 10.6.1. Ergebnis-Strings ............................................................................................ 582 10.6.2. CONVERT() und CAST() ............................................................................... 583 10.6.3. SHOW-Anweisungen und INFORMATION_SCHEMA ............................................ 584
10.7. Unicode-Unterstützung .............................................................................................. 585 10.8. UTF8 für Metadaten ................................................................................................. 586 10.9. Zeichensätze und Sortierfolgen, die MySQL unterstützt .............................................. 587
10.9.1. Unicode-Zeichensätze .................................................................................... 588 10.9.2. Westeuropäische Zeichensätze ...................................................................... 590 10.9.3. Mitteleuropäische Zeichensätze ...................................................................... 592 10.9.4. Zeichensätze für Südeuropa und den Mittleren Osten ...................................... 592 10.9.5. Baltische Zeichensätze ................................................................................... 593 10.9.6. Kyrillische Zeichensätze ................................................................................. 593 10.9.7. Asiatische Zeichensätze ................................................................................. 594
11. Datentypen .......................................................................................................................... 599 11.1. Überblick über Datentypen ........................................................................................ 599
11.1.1. Überblick über numerische Datentypen ........................................................... 599 11.1.2. Überblick über Datums- und Zeittypen ............................................................ 602
MySQL 5.1 Referenzhandbuch
11.1.3. Überblick über String-Typen ........................................................................... 603 11.1.4. Vorgabewerte von Datentypen ........................................................................ 606
11.2. Numerische Datentypen ............................................................................................ 607 11.3. Datums- und Zeittypen .............................................................................................. 609
11.3.1. Die DATETIME-, DATE- und TIMESTAMP-Typen ............................................... 611 11.3.2. Der TIME-Typ ................................................................................................ 615 11.3.3. Der YEAR-Typ ................................................................................................ 616 11.3.4. Jahr-2000-Probleme und Datumstypen ........................................................... 616
11.4. String-Typen ............................................................................................................. 617 11.4.1. Die CHAR- und VARCHAR-Typen ...................................................................... 617 11.4.2. Die BINARY- und VARBINARY-Typen .............................................................. 618 11.4.3. Die Spaltentypen BLOB und TEXT .................................................................. 619 11.4.4. Der Spaltentyp ENUM ...................................................................................... 621 11.4.5. Der Spaltentyp SET ....................................................................................... 622
11.5. Speicherbedarf von Spaltentypen .............................................................................. 624 11.6. Auswahl des richtigen Datentyps für eine Spalte ........................................................ 627 11.7. Verwendung von Datentypen anderer Datenbanken ................................................... 627
12. Funktionen für die Benutzung in SELECT- und WHERE-Klauseln ............................................. 629 12.1. Operatoren ............................................................................................................... 630
12.1.1. Rangfolge von Operatoren ............................................................................. 630 12.1.2. Typumwandlung bei der Auswertung von Ausdrücken ...................................... 630 12.1.3. Vergleichsoperatoren ..................................................................................... 631 12.1.4. Logische Operatoren ...................................................................................... 635
12.2. Ablaufsteuerungsfunktionen ....................................................................................... 637 12.3. String-Funktionen ...................................................................................................... 638
12.3.1. String-Vergleichsfunktionen ............................................................................ 647 12.4. Numerische Funktionen ............................................................................................ 650
12.4.1. Arithmetische Operationen ............................................................................. 650 12.4.2. Mathematische Funktionen ............................................................................. 651
12.5. Datums- und Zeitfunktionen ...................................................................................... 657 12.6. Welchen Kalender benutzt MySQL? .......................................................................... 672 12.7. MySQL-Volltextsuche ................................................................................................ 672
12.7.1. Boolesche Volltextsuche ................................................................................. 675 12.7.2. Volltextsuche mit Abfragenerweiterung ............................................................ 677 12.7.3. Stoppwörter in der Volltextsuche .................................................................... 678 12.7.4. Beschränkungen der Volltextsuche ................................................................. 681 12.7.5. MySQL-Volltextsuche feineinstellen ................................................................. 681
12.8. Cast-Funktionen und Operatoren ............................................................................... 683 12.9. XML-Funktionen ....................................................................................................... 685 12.10. Weitere Funktionen ................................................................................................. 688
12.10.1. Bitfunktionen ................................................................................................ 688 12.10.2. Verschlüsselungs- und Kompressionsfunktionen ............................................ 689 12.10.3. Informationsfunktionen .................................................................................. 693 12.10.4. Verschiedene Funktionen ............................................................................. 698
12.11. Funktionen und Modifizierer für die Verwendung in GROUP BY-Klauseln .................... 702 12.11.1. Funktionen zur Benutzung in GROUP BY-Klauseln ......................................... 702 12.11.2. GROUP BY-Modifizierer ................................................................................ 705 12.11.3. GROUP BY mit versteckten Feldern ............................................................... 708
13. SQL-Anweisungssyntax ....................................................................................................... 709 13.1. Datendefinition: CREATE, DROP, ALTER ..................................................................... 710
13.1.1. ALTER DATABASE ........................................................................................ 710 13.1.2. ALTER TABLE .............................................................................................. 710 13.1.3. CREATE DATABASE ...................................................................................... 716 13.1.4. CREATE INDEX ............................................................................................ 717 13.1.5. CREATE TABLE ............................................................................................ 719 13.1.6. DROP DATABASE .......................................................................................... 733 13.1.7. DROP INDEX ................................................................................................ 733 13.1.8. DROP TABLE ................................................................................................ 734
MySQL 5.1 Referenzhandbuch
13.1.9. RENAME TABLE ............................................................................................ 734 13.2. Datenmanipulation: SELECT, INSERT, UPDATE, DELETE ............................................ 735
13.2.1. DELETE ......................................................................................................... 735 13.2.2. DO ................................................................................................................. 737 13.2.3. HANDLER ....................................................................................................... 738 13.2.4. INSERT ......................................................................................................... 739 13.2.5. LOAD DATA INFILE .................................................................................... 746 13.2.6. REPLACE ....................................................................................................... 754 13.2.7. SELECT ......................................................................................................... 755 13.2.8. Syntax von Unterabfragen .............................................................................. 767 13.2.9. TRUNCATE ..................................................................................................... 776 13.2.10. UPDATE ....................................................................................................... 776
13.3. Grundlegende Befehle des MySQL-Dienstprogramms für Benutzer ............................. 778 13.3.1. DESCRIBE (Informationen über Spalten abrufen) ............................................. 778 13.3.2. USE ............................................................................................................... 779
13.4. Transaktionale und Sperrbefehle von MySQL ............................................................ 779 13.4.1. BEGIN/COMMIT/ROLLBACK ........................................................................... 779 13.4.2. Statements können nicht zurückgerollt werden ................................................ 781 13.4.3. Anweisungen, die implizite Commits verursachen ............................................ 781 13.4.4. SAVEPOINT und ROLLBACK TO SAVEPOINT ................................................. 782 13.4.5. LOCK TABLES und UNLOCK TABLES ............................................................ 782 13.4.6. SET TRANSACTION ...................................................................................... 785 13.4.7. XA-Transaktionen .......................................................................................... 785
13.5. Anweisungen zur Datenbankadministration ................................................................ 789 13.5.1. Anweisungen zur Benutzerkontenverwaltung ................................................... 789 13.5.2. Anweisungen für die Tabellenwartung ............................................................. 799 13.5.3. SET ............................................................................................................... 804 13.5.4. SHOW ............................................................................................................. 810 13.5.5. Weitere Verwaltungsanweisungen ................................................................... 830
13.6. SQL-Befehle in Bezug auf Replikation ....................................................................... 834 13.6.1. SQL-Anweisungen für die Steuerung von Master-Servern ................................ 834 13.6.2. SQL-Anweisungen für die Steuerung von Slave-Servern .................................. 836
13.7. SQL-Syntax für vorbereitete Anweisungen ................................................................. 844 14. Speicher-Engines und Tabellentypen .................................................................................... 847
14.1. Die MyISAM-Speicher-Engine .................................................................................... 849 14.1.1. MyISAM-Startoptionen .................................................................................... 852 14.1.2. Für Indizes benötigter Speicherplatz ............................................................... 853 14.1.3. MyISAM-Tabellenformate ............................................................................... 853 14.1.4. MyISAM-Tabellenprobleme ............................................................................. 855
14.2. InnoDB-Tabellen ...................................................................................................... 857 14.2.1. Überblick über InnoDB-Tabellen ..................................................................... 857 14.2.2. Kontaktinformationen ...................................................................................... 857 14.2.3. Konfiguration ................................................................................................. 858 14.2.4. InnoDB: Startoptionen und Systemvariablen ................................................... 863 14.2.5. InnoDB-Tablespace erzeugen ......................................................................... 870 14.2.6. InnoDB-Tabellen erzeugen ............................................................................ 871 14.2.7. Hinzufügen und Entfernen von InnoDB-Daten- und -Logdateien ........................ 879 14.2.8. Sichern und Wiederherstellen einer InnoDB-Datenbank ................................... 880 14.2.9. Eine InnoDB-Datenbank auf eine andere Maschine verschieben ....................... 882 14.2.10. InnoDB-Transaktionsmodell .......................................................................... 883 14.2.11. Tipps zur Leistungssteigerung ...................................................................... 892 14.2.12. Implementierung der Multiversionierung ........................................................ 898 14.2.13. Tabellen- und Indexstrukturen ....................................................................... 899 14.2.14. Verwaltung von Speicherplatz für Dateien und von Festplattenein- und - ausgaben .................................................................................................................. 901 14.2.15. InnoDB-Fehlerbehandlung ........................................................................... 902 14.2.16. Beschränkungen von InnoDB-Tabellen ......................................................... 908 14.2.17. InnoDB-Troubleshooting .............................................................................. 910
MySQL 5.1 Referenzhandbuch
14.4. Die MEMORY-Speicher-Engine .................................................................................... 915 14.5. Die BDB-Speicher-Engine .......................................................................................... 917
14.5.1. Betriebssysteme, die von BDB unterstützt werden ........................................... 917 14.5.2. BDB installieren ............................................................................................. 918 14.5.3. BDB-Startoptionen ......................................................................................... 918 14.5.4. Kennzeichen von BDB-Tabellen ...................................................................... 919 14.5.5. Einschränkungen bei Verwendung von BDB-Tabellen ....................................... 921 14.5.6. Fehler, die bei der Benutzung von BDB-Tabellen auftreten können ................... 921
14.6. Die EXAMPLE-Speicher-Engine .................................................................................. 922 14.7. Die FEDERATED-Speicher-Engine .............................................................................. 922
14.7.1. Beschreibung der FEDERATED-Speicher-Engine .............................................. 922 14.7.2. Benutzung von FEDERATED-Tabellen .............................................................. 923 14.7.3. Beschränkungen der FEDERATED-Speicher-Engine .......................................... 924
14.8. Die ARCHIVE-Speicher-Engine .................................................................................. 925 14.9. Die CSV-Speicher-Engine .......................................................................................... 926 14.10. Die BLACKHOLE-Speicher-Engine ............................................................................ 927
15. Erstellung einer eigenen Speicher-Engine ............................................................................ 929 15.1. Einführung ................................................................................................................ 930 15.2. Überblick .................................................................................................................. 930 15.3. Quelldateien für Speicher-Engines erstellen ............................................................... 932 15.4. Erstellung des Handlerton ..................................................................................... 932 15.5. Die Erzeugung von Handlern .................................................................................... 935 15.6. Definiton von Dateierweiterungen .............................................................................. 936 15.7. Tabellen anlegen ...................................................................................................... 936 15.8. Tabellen öffnen ........................................................................................................ 937 15.9. Einfaches Tabellenscanning implementieren .............................................................. 938
15.9.1. Implementierung der Funktion store_lock() ................................................ 938 15.9.2. Implementierung der Funktion external_lock() .......................................... 939 15.9.3. Implementierung der Funktion rnd_init() ................................................... 939 15.9.4. Implementierung der Funktion info() ........................................................... 940 15.9.5. Implementierung der Funktion extra() ......................................................... 940 15.9.6. Implementierung der Funktion rnd_next() ................................................... 940
15.10. Tabellen schließen .................................................................................................. 942 15.11. INSERT-Unterstützung für Speicher-Engines ............................................................ 942 15.12. UPDATE-Unterstützung für Speicher-Engines ............................................................ 943 15.13. DELETE-Unterstützung für Speicher-Engines ............................................................ 944 15.14. Unterstützung für nichtsequenzielle Leseoperationen ................................................ 944
15.14.1. Implementierung der Funktion position() .................................................. 944 15.14.2. Implementierung der Funktion rnd_pos() .................................................... 944
15.15. Unterstützung für Indizes ........................................................................................ 944 15.15.1. Überblick über Indizes .................................................................................. 945 15.15.2. Indexinformationen während CREATE TABLE-Operationen erhalten ................ 945 15.15.3. Erzeugen von Indexschlüsseln ...................................................................... 946 15.15.4. Schlüsselinformationen parsen ..................................................................... 946 15.15.5. Indexinformationen an den Optimierer liefern ................................................. 947 15.15.6. Nutzung des Indexes vorbereiten mit index_init() .................................... 948 15.15.7. Aufräumen mit index_end() ...................................................................... 948 15.15.8. Implementierung der Funktion index_read() .............................................. 948 15.15.9. Implementierung der Funktion index_read_idx() ...................................... 949 15.15.10. Implementierung der Funktion index_next() ............................................ 949 15.15.11. Implementierung der Funktion index_prev() ............................................ 949 15.15.12. Implementierung der Funktion index_first() .......................................... 949 15.15.13. Implementierung der Funktion index_last() ............................................ 949
15.16. Unterstützung für Transaktionen .............................................................................. 950 15.16.1. Überblick über Transaktionen ....................................................................... 950 15.16.2. Eine Transaktion starten ............................................................................... 950
MySQL 5.1 Referenzhandbuch
15.17. Die API-Referenz .................................................................................................... 954 15.17.1. bas_ext ....................................................................................................... 954 15.17.2. close ........................................................................................................... 955 15.17.3. create .......................................................................................................... 955 15.17.4. delete_row ................................................................................................... 956 15.17.5. delete_table ................................................................................................. 957 15.17.6. external_lock ................................................................................................ 958 15.17.7. extra ............................................................................................................ 958 15.17.8. index_end .................................................................................................... 959 15.17.9. index_first .................................................................................................... 959 15.17.10. index_init ................................................................................................... 960 15.17.11. index_last .................................................................................................. 961 15.17.12. index_next ................................................................................................. 961 15.17.13. index_prev ................................................................................................. 962 15.17.14. index_read_idx ........................................................................................... 962 15.17.15. index_read ................................................................................................. 963 15.17.16. info ............................................................................................................ 964 15.17.17. open .......................................................................................................... 965 15.17.18. position ...................................................................................................... 966 15.17.19. records_in_range ....................................................................................... 967 15.17.20. rnd_init ...................................................................................................... 967 15.17.21. rnd_next .................................................................................................... 968 15.17.22. rnd_pos ..................................................................................................... 969 15.17.23. start_stmt ................................................................................................... 970 15.17.24. store_lock .................................................................................................. 970 15.17.25. update_row ................................................................................................ 972 15.17.26. write_row ................................................................................................... 973
16. MySQL Cluster .................................................................................................................... 975 16.1. MySQL Cluster: Überblick ......................................................................................... 976 16.2. MySQL Cluster: grundlegende Konzepte ................................................................... 978
16.2.1. MySQL Cluster: Knoten, Knotengruppen, Repliken und Partitionen ................... 979 16.3. Einfache Schritt-für-Schritt-Anleitung für mehrere Computer ........................................ 981
16.3.1. Hardware, Software und Netzwerk .................................................................. 983 16.3.2. Installation auf mehreren Computern .............................................................. 984 16.3.3. Konfiguration im Mehrcomputerbetrieb ............................................................ 986 16.3.4. Erster Start .................................................................................................... 987 16.3.5. Beispieldaten einladen und Abfragen ausführen .............................................. 988 16.3.6. Sicheres Herunterfahren und Neustarten ......................................................... 992
16.4. MySQL Cluster: Konfiguration ................................................................................... 992 16.4.1. MySQL Cluster vom Quellcode bauen ............................................................ 992 16.4.2. Installation der Software ................................................................................. 993 16.4.3. Schnelle Testeinrichtung von MySQL Cluster .................................................. 993 16.4.4. Konfigurationsdatei ......................................................................................... 995
16.5. Prozessverwaltung in MySQL Cluster ...................................................................... 1021 16.5.1. Verwendung des MySQL Server-Prozesses für MySQL Cluster ...................... 1021 16.5.2. ndbd, der Speicher-Engine-Node-Prozess ..................................................... 1022 16.5.3. ndb_mgmd, der Management-Server-Prozess ................................................ 1023 16.5.4. ndb_mgm, der Management-Client-Prozess ................................................... 1024 16.5.5. Befehlsoptionen für MySQL Cluster-Prozesse ................................................ 1024
16.6. Management von MySQL Cluster ............................................................................ 1027 16.6.1. MySQL Cluster: Startphasen ........................................................................ 1027 16.6.2. Befehle des Management-Clients .................................................................. 1029 16.6.3. Ereignisberichte, die MySQL Cluster erzeugt ................................................. 1030 16.6.4. Einbenutzermodus ....................................................................................... 1035 16.6.5. Online-Backup eines MySQL Clusters ........................................................... 1036
MySQL 5.1 Referenzhandbuch
16.8. Bekannte Beschränkungen von MySQL Cluster ........................................................ 1044 16.9. MySQL Cluster: Roadmap für die Entwicklung ......................................................... 1047
16.9.1. MySQL Cluster: Änderungen in MySQL 5.0 ................................................... 1047 16.9.2. MySQL 5.1 Roadmap für die Entwicklung von MySQL Cluster ........................ 1048
16.10. MySQL Cluster: FAQ ............................................................................................ 1049 16.11. MySQL Cluster: Glossar ........................................................................................ 1056
17. Partitionierung ................................................................................................................... 1061 17.1. Überblick über die Partitionierung in MySQL ............................................................ 1062 17.2. Partitionstypen ........................................................................................................ 1064
17.2.1. RANGE-Partitionierung ................................................................................... 1065 17.2.2. LIST-Partitionierung ..................................................................................... 1067 17.2.3. HASH-Partitionierung ..................................................................................... 1069 17.2.4. KEY-Partitionierung ....................................................................................... 1072 17.2.5. Unterpartitionen ........................................................................................... 1073 17.2.6. Wie die MySQL-Partitionierung NULL-Werte handhabt ................................... 1076
17.3. Partitionsverwaltung ................................................................................................ 1078 17.3.1. Verwaltung von RANGE- und LIST-Partitionen ............................................... 1079 17.3.2. Verwaltung von HASH- und KEY-Partitionen ................................................... 1084 17.3.3. Wartung von Partitionen ............................................................................... 1085 17.3.4. Abruf von Informationen über Partitionen ....................................................... 1086
17.4. Beschränkungen und Grenzen der Partitionierung .................................................... 1088 18. Raumbezogene Erweiterungen in MySQL ........................................................................... 1089
18.1. Einführung in die raumbezogenen Funktionen von MySQL ........................................ 1090 18.2. Das OpenGIS-Geometriemodell ............................................................................... 1090
18.2.1. Hierarchie der Geometrieklassen .................................................................. 1091 18.2.2. Die Klasse Geometry .................................................................................. 1092 18.2.3. Die Klasse Point ........................................................................................ 1093 18.2.4. Die Klasse Curve ........................................................................................ 1093 18.2.5. Die Klasse LineString .............................................................................. 1093 18.2.6. Die Klasse Surface .................................................................................... 1094 18.2.7. Die Klasse Polygon .................................................................................... 1094 18.2.8. Die Klasse GeometryCollection .............................................................. 1094 18.2.9. Die Klasse MultiPoint .............................................................................. 1095 18.2.10. Die Klasse MultiCurve ............................................................................ 1095 18.2.11. Die Klasse MultiLineString .................................................................. 1095 18.2.12. Die Klasse MultiSurface ........................................................................ 1096 18.2.13. Die Klasse MultiPolygon ........................................................................ 1096
18.3. Unterstützte raumbezogene Datenformate ............................................................... 1096 18.3.1. Well-Known Text(WKT)-Format ..................................................................... 1096 18.3.2. Well-Known Binary(WKB)-Format ................................................................. 1097
18.4. Erzeugen einer MySQL-Datenbank mit raumbezogenen Werten ................................ 1098 18.4.1. Raumbezogene Datentypen in MySQL .......................................................... 1098 18.4.2. Erzeugung raumbezogener Werte ................................................................. 1098 18.4.3. Erzeugung raumbezogener Spalten .............................................................. 1101 18.4.4. Füllen raumbezogener Spalten ..................................................................... 1101 18.4.5. Abfragen raumbezogener Daten ................................................................... 1102
18.5. Analyse raumbezogener Informationen .................................................................... 1103 18.5.1. Umwandlungsfunktionen für das Geometrieformat ......................................... 1103 18.5.2. Geometry-Funktionen .................................................................................. 1103 18.5.3. Funktionen, die neue geometrische Objekte aus bestehenden erzeugen .......... 1109 18.5.4. Funktionen zum Testen raumbezogener Beziehungen zwischen geometrischen Objekten ................................................................................................................. 1110 18.5.5. Relationen auf geometrischen Minimal Bounding Rectangles (MBRs) .............. 1110 18.5.6. Funktionen, die raumbezogene Beziehungen zwischen Geometrien überprüfen ............................................................................................................... 1111
MySQL 5.1 Referenzhandbuch
18.6. Optimierung der raumbezogenen Analyse ................................................................ 1112 18.6.1. Erzeugung raumbezogener Indizes ............................................................... 1112 18.6.2. Verwendung eines raumbezogenen Indizes ................................................... 1113
18.7. MySQL-Konformität und Kompatibilität ..................................................................... 1115 19. Gespeicherte Prozeduren und Funktionen .......................................................................... 1117
19.1. Gespeicherte Routinen und die Berechtigungstabellen .............................................. 1118 19.2. Syntax gespeicherter Prozeduren ............................................................................ 1118
19.2.1. CREATE PROCEDURE und CREATE FUNCTION ............................................. 1118 19.2.2. ALTER PROCEDURE und ALTER FUNCTION ................................................. 1122 19.2.3. DROP PROCEDURE und DROP FUNCTION ..................................................... 1122 19.2.4. Syntax der CALL-Anweisung ........................................................................ 1122 19.2.5. BEGIN ... END-Syntax für komplexe Anweisungen ..................................... 1122 19.2.6. Syntax der DECLARE-Anweisung ................................................................... 1123 19.2.7. Variablen in gespeicherten Routinen ............................................................. 1123 19.2.8. Bedingungen und Handler ............................................................................ 1124 19.2.9. Cursor ......................................................................................................... 1126 19.2.10. Konstrukte für die Ablaufsteuerung ............................................................. 1127
19.3. Gespeicherte Prozeduren, Funktionen, Trigger und Replikation: häufig gestellte Fragen ............................................................................................................................ 1129 19.4. Binärloggen gespeicherter Routinen und Trigger ...................................................... 1131
20. Trigger .............................................................................................................................. 1137 20.1. CREATE TRIGGER ................................................................................................. 1137 20.2. DROP TRIGGER ..................................................................................................... 1140 20.3. Verwendung von Triggern ....................................................................................... 1140
21. Views ................................................................................................................................ 1145 21.1. ALTER VIEW ......................................................................................................... 1145 21.2. CREATE VIEW ....................................................................................................... 1145 21.3. DROP VIEW ........................................................................................................... 1152 21.4. SHOW CREATE VIEW ............................................................................................. 1152
22. Die Datenbank INFORMATION_SCHEMA ............................................................................. 1153 22.1. Die Tabelle INFORMATION_SCHEMA SCHEMATA ...................................................... 1155 22.2. Die Tabelle INFORMATION_SCHEMA TABLES .......................................................... 1155 22.3. Die Tabelle INFORMATION_SCHEMA COLUMNS ........................................................ 1156 22.4. Die Tabelle INFORMATION_SCHEMA STATISTICS .................................................. 1157 22.5. Die Tabelle INFORMATION_SCHEMA USER_PRIVILEGES ........................................ 1158 22.6. Die Tabelle INFORMATION_SCHEMA SCHEMA_PRIVILEGES .................................... 1158 22.7. Die Tabelle INFORMATION_SCHEMA TABLE_PRIVILEGES ...................................... 1159 22.8. Die Tabelle INFORMATION_SCHEMA COLUMN_PRIVILEGES .................................... 1159 22.9. Die Tabelle INFORMATION_SCHEMA CHARACTER_SETS .......................................... 1160 22.10. Die Tabelle INFORMATION_SCHEMA COLLATIONS ................................................ 1160 22.11. Die Tabelle INFORMATION_SCHEMA COLLATION_CHARACTER_SET_APPLICABILITY ............................................................. 1160 22.12. Die Tabelle INFORMATION_SCHEMA TABLE_CONSTRAINTS .................................. 1160 22.13. Die Tabelle INFORMATION_SCHEMA KEY_COLUMN_USAGE .................................... 1161 22.14. Die Tabelle INFORMATION_SCHEMA ROUTINES .................................................... 1162 22.15. Die Tabelle INFORMATION_SCHEMA VIEWS .......................................................... 1163 22.16. Die Tabelle INFORMATION_SCHEMA TRIGGERS .................................................... 1163 22.17. Die Tabelle INFORMATION_SCHEMA PLUGINS ...................................................... 1165 22.18. Die Tabelle INFORMATION_SCHEMA ENGINES ...................................................... 1165 22.19. Die Tabelle INFORMATION_SCHEMA PARTITIONS ................................................ 1166 22.20. Die Tabelle INFORMATION_SCHEMA EVENTS ........................................................ 1167 22.21. Weitere INFORMATION_SCHEMA-Tabellen .............................................................. 1167 22.22. Erweiterungen der SHOW-Anweisungen ................................................................... 1167
23. Präzisionsberechnungen .................................................................................................... 1171 23.1. Typen numerischer Werte ....................................................................................... 1171 23.2. Änderungen beim Datentyp DECIMAL ...................................................................... 1172 23.3. Behandlung von Ausdrücken ................................................................................... 1173 23.4. Rundungsverhalten ................................................................................................. 1175
MySQL 5.1 Referenzhandbuch
23.5. Beispiele für Präzisionsberechnungen ...................................................................... 1175 24. APIs und Bibliotheken ....................................................................................................... 1181
24.1. libmysqld, die eingebettete MySQL Server-Bibliothek ................................................ 1181 24.1.1. Überblick über die eingebettete MySQL Server-Bibliothek .............................. 1181 24.1.2. Programme mit libmysqld kompilieren ....................................................... 1182 24.1.3. Einschränkungen bei der Benutzung des eingebetteten MySQL Servers .......... 1183 24.1.4. Optionen des eingebetteten Servers ............................................................. 1183 24.1.5. Ein einfaches Embedded Server-Beispiel ...................................................... 1183 24.1.6. Lizenzierung des eingebetteten Servers ........................................................ 1187
24.2. MySQL-C-API ......................................................................................................... 1187 24.2.1. C-API: Datentypen ....................................................................................... 1187 24.2.2. C-API: Funktionsüberblick ............................................................................ 1191 24.2.3. C-API: Funktionsbeschreibungen .................................................................. 1195 24.2.4. C-API: Prepared Statements ......................................................................... 1237 24.2.5. C-API: Prepared Statement-Datentypen ........................................................ 1238 24.2.6. C-API Prepared Statements: Funktionsüberblick ............................................ 1241 24.2.7. C-API Prepared Statements: Funktionsbeschreibungen .................................. 1244 24.2.8. C-API: Probleme bei Prepared Statements .................................................... 1265 24.2.9. C-API: Behandlung der Ausführung mehrerer Anweisungen ........................... 1265 24.2.10. C-API: Behandlung von Datums- und Zeitwerten .......................................... 1266 24.2.11. C-Threaded-Funktionsbeschreibungen ........................................................ 1267 24.2.12. C Embedded Server: Funktionsbeschreibungen ........................................... 1268 24.2.13. Häufige Fragen und Probleme bei der Benutzung der C-API ......................... 1270 24.2.14. Clientprogramme bauen ............................................................................. 1271 24.2.15. Wie man einen Thread-Client herstellt ......................................................... 1272
24.3. MySQLs PHP-API ................................................................................................... 1273 24.3.1. Allgemeine Probleme mit MySQL und PHP ................................................... 1274
24.4. MySQLs Perl-API .................................................................................................... 1274 24.5. MySQL-C++-APIs ................................................................................................... 1275
24.5.1. Borland C++ ................................................................................................ 1275 24.6. MySQL-Python-APIs ............................................................................................... 1275 24.7. MySQL-Tcl-APIs ..................................................................................................... 1275 24.8. MySQL-Eiffel-Wrapper ............................................................................................ 1275 24.9. MySQL-Hilfsprogramme für die Programmentwicklung .............................................. 1275
24.9.1. msql2mysql — Umwandeln von mSQL-Programmen für die Benutzung mit MySQL .................................................................................................................... 1276 24.9.2. mysql_config — Kompilieroptionen zum Kompilieren von Clients erhalten .... 1276
25. Connectors ........................................................................................................................ 1279 25.1. MySQL Connector/ODBC ........................................................................................ 1279
25.1.1. Einführung in MyODBC ................................................................................ 1280 25.1.2. Installation von MyODBC ............................................................................. 1283 25.1.3. MyODBC: Konfiguration ............................................................................... 1304 25.1.4. MyODBC-Beispiele ....................................................................................... 1319 25.1.5. MyODBC-Referenz ....................................................................................... 1337 25.1.6. Hinweise und Tipps zu MyODBC .................................................................. 1343 25.1.7. MyODBC-Support ........................................................................................ 1352
25.2. Connector/NET ....................................................................................................... 1354 25.2.1. Versionen von Connector/NET ...................................................................... 1354 25.2.2. Installation von Connector/NET ..................................................................... 1354 25.2.3. Hinweise und Tipps zu Connector/NE