MySQL - tocs.ub.uni-mainz. Java Connectivity (JDBC) 598 MySQL-Python-APIs 598 MySQL-Tcl-APIs 598 MySQL-Eiffel-Wrapper 598 Kapitel 9: MySQL erweitern 599 Hinzufgen neuer ...

  • Published on
    06-Feb-2018

  • View
    214

  • Download
    0

Transcript

  • MySQLDas offizielle Handbuch

    IT-Studienausgabe

    bersetzung von Stefan Hinz

    t-y;

  • Inhaltsverzeichnis

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

    Kapitel 1: Was ist MySQL? 23Die wichtigsten Features von MySQL 24Wie stabil ist MySQL? 26Wie gro 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 MySQLverwendet 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

    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 151Verbindung zum Server herstellen und trennen 151Anfragen eingeben 152

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

    Informationen ber Datenbanken und Tabellen 178

    Beispiele gebruchlicher Anfragen (Queries) 179Der 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 bestimmtenFelds 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) 186

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

    MySQL mit Apache benutzen 191

    Kapitel 4: MySQL-Datenbankadministration 193MySQL konfigurieren 193

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

    Allgemeine Sicherheitsthemen und dasMySQL-Zugriffsberechtigungssystem 203

    Allgemeine Sicherheitsrichtlinien 203Wie Sie MySQL gegen Cracker sicher machen 206Startoptionen 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 213

  • Inhaltsverzeichnis

    Zugriffskontrolle, Phase 1: Verbindungsberprfung 214Zugriffskontrolle, 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 230Passwrter 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 komprimierterNur-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 Wiederherstellungnach Abstrzen 307

  • Inhaltsverzeichnis

    mysqldump, Tabellenstrukturen und -daten dumpen 309mysqlhotcopy, 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 319Die 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

    Kapitel 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

    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 derselben Datenbank 362Warum gibt es so viele offene Tabellen? 362

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

    Kapitel 6: MySQL-Sprachreferenz 375Sprachstruktur 375

    Literale: Wie Zeichenketten und Zahlen geschrieben werden 375Datenbank-, Tabellen-, Index-, Spalten- und Alias-Namen 378Gro-/Kleinschreibung in Namen 380Benutzer-Variablen 380Kommentar-Syntax 381Ist MySQL pingelig hinsichtlich reservierter 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 442

    SELECT-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 . . . 473USE-Syntax 473DESCRIBE-Syntax (Informationen ber Spalten erhalten) 474

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

    MySQL-Volltextsuche 477Volltext-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

    Kapitel 7: MySQL-Tabellentypen 485MylSAM-Tabellen 486

    Fr Schlssel bentigter Speicherplatz 488MylSAM-Tabellenformate 489MylSAM-Tabellenprobleme 491

    MERGE-Tabellen 492MERGE-Tabellenprobleme 494

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

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

    11

  • Inhaltsverzeichnis

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

    BDB- 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

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

    Allgemeine Probleme mit MySQL und PHP 525

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

    MySQL-ODBC-Untersttzung 533Wie Sie MyODBC installieren 534Wie Sie die verschiedenen Felder im ODBC-AdministratorProgramm ausfllen 535Verbindungsparameter fr MyODBC 535Wie Sie Probleme mit MyODBC berichten 537Programme, die bekanntermaen mit MyODBC zusammenarbeiten 537Wie man den Wert einer AUTOJNCREMENT-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

    12

  • Inhaltsverzeichnis

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

    Kapitel 9: MySQL erweitern 599Hinzufgen neuer Funktionen zu MySQL 599

    CREATE 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

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

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

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

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

    13

  • Inhaltsverzeichnis

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

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

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

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

    Anhang C: MySQL-Benutzung durch Kunden 641

    Anhang D: Beigesteuerte Programme 643

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

    14

  • Inhaltsverzeichnis

    Anhang F: Danksagungen 655Entwickler bei MySQL AB 655Kontributoren zu MySQL 657Untersttzer von MySQL 664

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

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

    nderungen in Release 3.23.x (Stabil) 667

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

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

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

    Anhang I: Umgebungsvariablen 709

    Anhang J: Beschreibung der MySQL-Syntax fr regulre Ausdrcke 711

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

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

    Stichwortverzeichnis 733

    t15

Recommended

View more >