Document

Werbung
Referat Web-Engineering
06.12.2006
Copyright © 2006 by Manuel Hegemann
Inhaltverzeichnis I
1.
Was ist MySQL?
1.
2.
3.
2.
Geschichte
Wichtige Features
Maximale Größe von MySQL-Tabellen
Installation / Konfiguration
1.
2.
3.
4.
Unterstützte Betriebssystem
Installation unter Windows
Installation unter Linux
Einstellungen und Tests nach der Installation
1.
Unter Windows
2.
Unter Linux
Inhaltsverzeichnis II
3.
Adminwerkzeuge und
Benutzeroberflächen
1.
2.
4.
Datenbankdesign
3.
4.
5.
6.
PHPMyAdmin
MySQL-Administrator
Tabellentypen
Feldtypen
SQL-Einführung
Zugriff auf MySQL
1.
2.
Zugriff per Perl
Zugriff per PHP
Was ist MySQL?
Geschichte








Ursprüngliche Absicht war Benutzung des SQL-Codes
um eigene Low-Level-Routinen (ISAM) zu benutzen
SQL jedoch weder schnell und flexibel genug um
Anforderungen abzudecken
Resultat war neue Datenbank, die allerdings fast
gleiche API wie SQL benutzt
Namensherkunft nicht endgültig geklärt
Entweder weil große Anzahl an Bibliotheken und
Werkzeugen das Präfix „my“ tragen
Oder vom Namen der Tochter des MySQLMitbegründers Monty Widenius, die „My“ hieß
Name des MySQL-Delphins ist „Sakila“
Vorschlag wurde im Rahmen des Wettbewerbs „Name
the Dolphin“ ausgewählt
Was ist MySQL?
Wichtige Features











Geschrieben in C und C++
Läuft auf vielen Plattformen
Multithread fähig
Schnelle „Joins“
Keine Speicherlecks (memory leaks)
Sehr viele Datentypen
Volle Standard-SQL-Unterstützung + teilweise ODBCSyntax-Unterstützung
Flexibles und Sicheres Berechtigungssystem
Fehlermeldung und –lokalisierung in vielen Sprachen
möglich
Eingebaute SQL-Anweisungen zum Prüfen, Optimieren
und Reparieren von Tabellen
u.v.m.
Was ist MySQL?
Maximale Größe von MySQL-Tabellen
Betriebssystem
Maximale Dateigröße
Linux 2.2 – Intel 32 Bit
2 GByte
Linux 2.4+
4 TByte
Solaris 9/10
16 TByte
NetWare
8 TByte
Win 32 FAT / FAT 32
2 GByte / 4 GByte
Win 32 NTFS
2 TByte
Mac OS
2 TByte
Installation / Konfiguration
Unterstützte Betriebssysteme















AIX
Amiga
BSDI
Digital Unix
FreeBSD
HP-UX
Linux
Mac OS
NetBSD
OpenBSD
OS/2
Solaris
SunOS
Tru64 Unix
Windows
Installation / Konfiguration
Installation unter Windows I





Paketauswahl treffen
Essentials-Paket enthält die mindestens
erforderlichen Dateien für eine
Windowsinstallation inkl. Konfigurationsassistent
Complete-Paket enthält alle Dateien, inkl.
optionale Komponenten und
Konfigurationsassistent
Noinstall-Paket enthält alle Dateien des CompletePakets mit Ausnahme des
Konfigurationsassistenten
Für die meisten Anwender wird das EssentialsPaket empfohlen
Installation / Konfiguration
Installation unter Windows II




Installation durch
Konfigurationsassistenten
Hinweisen des Assistenten folgen und
erforderliche Eingaben tätigen
Sofortiger Einsatz von MySQL möglich
Nicht empfehlenswert für fortgeschrittene
Benutzer, die volle Kontrolle über
Serverkonfiguration wünschen und jene,
die mehrere MySQL-Instanzen auf
gleichem Host installieren wollen
Installation / Konfiguration
Installation unter Linux

Was zunächst benötigt wird













make
C/C++ Compiler
tar
cat
Perl5-Library
MySQL Source-Codes herunterladen
Dateien entpacken
Konfigurationsscript ausführen
Anschließend Script kompilieren
Kompiliertes Script installieren
Datenbanken installieren
MySQL mitteilen, wer Daemon ausführt
my.cnf anpassen
Installation / Konfiguration
my.cnf
[mysqld]
basedir=INSTALLATIONSVERZEICHNIS
datadir=DATENVERZEICHNIS
language=SPRACHVERZEICHNIS
port=PORT
Server=SERVERVERZEICHNIS
user=BENUTZERNAME
password=DEIN PASSWORT
Adminwerkzeuge/Benutzeroberflächen
PHPMyAdmin

Vorführung von PHPMyAdmin im
Einsatz 
Adminwerkzeuge/Benutzeroberflächen
MySQL-Administrator











Leistungsfähe, graphische Verwaltungskonsole
Integration von Wartung und Administration einer Datenbank
Ermöglicht die Benutzerverwaltung und die Steuerung von
Zugriffsrechten innerhalb weniger Minuten
Dynamische Zustandsüberwachung aller wesentlichen
Zustandsindikatoren der MySQL-Umgebung
Schnellere Optimierung durch einfache Einsicht verschiedenster
Parameter möglich
Schnelle Erstellung von konsistenten Datensicherungen
Übersicht über Protokoll-Dateien
Vollständige Kontrolle über Systemdienste
MySQL Server kann gestartet und angehalten werden
Plattformübergreifend, verfügbar für Windows und Linux für MySQL
4.x
Testvideo unter
http://www.mysql.de/products/tools/administrator/tutorials/customgraphs.html
Datenbankdesign
Tabellentypen










MyISAM: Standard-Speicher-Engine – Baut auf älterem ISAM-Code
auf und enthält viele praktische Erweiterungen
InnoDB: Transaktionssichere Speicher-Engine mit Commit-, Rollbackund Backupfähigkeit
MERGE: Sammlung identischer MyISAM-Tabellen – Identisch = gleiche
Spalten- und Indexdaten
MEMORY: Legt Tabellen an, die im RAM gespeichert werden, auch als
HEAP bezeichnet
BDB: bessere Chancen Absturz zu überstehen, außerdem Commitund Rollbackfunktion
EXAMPLE: Beispiel für Entwickler wie man Speicher-Engines erstellt
FEDERATED: greift auf Daten in „entfernten“ Datenbanktabellen zu
ARCHIVE: Speicherung großer Datenmengen ohne Indizes mit
kleinem Speicherbedarf
CSV: Speicherung in Textdateien im Format von kommatagetrennten
Werten
BLACKHOLE: Daten werden zwar entgegen genommen, aber nicht
gespeichert
Datenbankdesign
Numerische Feldtypen










BIT: Anzahl von Bits pro Wert zwischen 1 und 64
TINYINT: -128 bis 127
BOOLEAN: TRUE oder FALSE
SMALLINT: -32768 bis 32767
MEDIUMINT: -8388608 bis 8388607
INT: -2147483648 bis 2147483647
BIGINT: -9223372036854775808 bis
9223372036854775807
FLOAT: -3.402823466E+38 bis 3.402823466E+38
DOUBLE: -2.2250738585072014E-308 bis
1.7976931348623157E+308
DECIMAL: gepackte „extakte“ Festkommazahl
Datenbankdesign
Datums- und Zeittypen





DATE: 1000-01-01 bis 9999-12-31, Format immer
YYYY-MM-DD
DATETIME: 1000-01-01 00:00:00 bis 9999-12-31
23:59:59, Format immer YYYY-MM-DD HH:MM:SS
TIMESTAMP: 1970-01-01 00:00:00 und einem
Zeitpunkt irgendwann im Jahr 2037
TIME: -838:59:59 und 838:59:59, Format immer
HH:MM:SS
YEAR (2|4): 1901 bis 2155, sowie 0000 – im
zweistelligen Bereich von 70 bis 69 (1970 bis
2069)
Datenbankdesign
String-Typen







CHAR: von 0 bis 255 Zeichen
VARCHAR: von 0 bis 65535 Zeichen
TINYBLOB: 255 (2^8 – 1) Byte
BLOB: 65.535 (2^16 – 1) Byte
TINYTEXT: 255 (2^8 – 1) Zeichen
TEXT: 65.535 (2^16 – 1) Zeichen
ENUM: Liste von Werten durch Komma
getrennt, maximal 65.535 Werte
SQL-Einführung I



SQL: Server Query Language
Durch SQL-Statements können
Daten von der Datenbank
abgefragt, hinzugefügt, geändert
und gelöscht werden
SQL-Statements werden meist in
Applikationen eingebunden, können
aber auch in Adminwerkzeugen
ausgeführt werden
SQL-Einführung II
SELECT
Syntax:
SELECT attribute
FROM tabelle
WHERE bedingung
[ORDER BY | GROUP BY | etc.]
SQL-Einführung III
INSERT
Syntax:
INSERT INTO tabelle
(attrib1, attrib2, attrib3)
VALUES
(´wert1´, ´wert2´, ´wert3´)
SQL-Einführung IV
UPDATE
Syntax:
UPDATE tabelle
SET attrib1=´wert1a´,
attrib2=´wert2a´
WHERE bedingung
SQL-Einführung V
DELETE
Syntax:
DELETE FROM tabelle
WHERE bedingung
SQL-Einführung VI
JOIN, am Beispiel INNER JOIN
Syntax:
SELECT tab1.attribute, tab2.attribute
FROM tabelle1 tab1
INNER JOIN tabelle 2 tab2
ON tab1.pk = tab2.fk
[WHERE bedingung]
[ORDER BY | GROUP BY | etc.]
Zugriff auf MySQL
Zugriff per Perl

DBI ermöglicht Zugriff auf SQL-Datenbanken
Beispiel:
//Benutze DBI
use DBI;
//Quellen beziehen (Treiber, Host, etc.)
@data_sources = DBI->data_sources($driver_name);
//Datenbankverbindung herstellen
$dbh = DBI->connect($data_source, $username, $auth);
//Statement ausführen
$rv = $dbh->do($statement);
//Datenbankverbindung schließen
$rc = $dbh->disconnect;
Zugriff auf MySQL
Zugriff per PHP

PHP besitzt eigene Befehle um auf eine MySQL-Datenbank zuzugreifen
Beispiel:
//Datenbankverbindung herstellen
$con = mysql_connect($host, $user, $pwd) or die(´Fehler´);
//Datenbank auswählen
mysql_select_db($database, $con) or die(´Fehler´);
//Statement ausführen
$query = mysql_query($statement);
//Anzahl betroffene Zeilen abfragen
$num = mysql_num_rows($query);
//Bei Abfrage Datenarray auslesen
$array = mysql_fetch_array($query);
//Datenbankverbindung schließen;
mysql_close($con);
ENDE
Vielen Dank für Eure Aufmerksamkeit!
Herunterladen