|
MySQL ist weltweit der Standard-Datenbank-(DB)-Server
für kleinere und mittlere Netzwerke (LAN). Keine Lizenzgebühren für die Standardversion (Community Edition), schnell und sicher auch unter großer Last. Hier wird Installation und Test auf Windows-Betriebssystemen beschrieben. |
Auf anderen Systemen bzw. mit anderen Versionen werden evtl. andere Bezeichnungen
verwendet, und die Komponenten können sich an anderer Stelle befinden. Verwenden sie zunächst nur Standard-Optionen, und gehen sie erst dann zu anderen Einstellungen über, wenn ihr MySQL Server funktioniert. |
| Alle Angaben ohne Gewähr ! Wenn sie den Hinweisen folgen, so tun sie das auf eigenes Risiko ! | |
WAMP
|
Standard-Server mit Windows - Apache - MySQL - PHP - Perl |
| Quellen | Wo kann man den MySQL DB-Server downladen ? |
| Vorbereitung | Daten sichern, MySQL-Server abschalten und abmelden |
| Installation | Installation auf Windows-PC |
| Anmeldung als Dienst | Dienste (services) sind Hintergrund-Programme ohne Oberfläche |
| Start & Stop | Start, Stop, Restart |
| Test | Einfache Funktionstests |
| MySQL Verwaltung | Administrations-Programme: phpMyAdmin, MySQL-Manager, ... |
| Konfiguration | Einstellung der Parameter |
| phpMyAdmin | Das komfortable Standard-Werkzeug für MySQL-Administration |
| mysql-Konsole | Das Konsolen-Werkzeug für MySQL-Administration |
| Passwort und Konto | Sprung von MySQL-Version 4.0 auf 4.1 |
| ODBC | MySQL als Standard-ODBC-Datenquelle |
| Updates | Neue Versionen von MySQL-Server |
| Weiter | User, PHP, Perl, ... |
| Migration | Umstieg von veralteter DB-Software auf SQL-Server |
| Linux-MySQL | MySQL Datenbank Server auf einem Linux (LAMP) - System |
|
||||
| Voraussetzung: ein modernes Windows-Betriebssystem (z.B. Win2000, WinXP). Eine Installation auf älteren Systemen ist möglich, aber weniger sinnvoll. Die Installation auf Vista ist möglich, läuft jedoch langsamer. Falls sie auf Linux installieren wollen, wechseln sie zur LAMP-Seite. | ||||
MySQL ist ein kommerzielles Produkt. Die weltweit führende Standardversion
(Community Edition) erhä man kostenfrei auf der MySQL-Homepage:
Version:MySQL bietet die kostenfreien Versionen Community Edition und MaxDB (für SAP), dazu die kommerziellen Versionen Pro (Certified Server) und Cluster.Manchmal haben sie die Wahl zwischen stabilen getesteten Arbeits-Versionen (recommended, production release) und der jeweils neuesten Entwickler-Version. Benutzen sie im Zweifel immer die empfohlene stabile Version ! Dokumentation:Nicht jeder Download enthält die Doku. Überprüfen sie das und laden sie bei Bedarf die Doku extra. Diese ist zwar auch Online bei MySQL verfügbar, ändert sich jedoch etwas je nach aktueller Version. |
ODBCODBC erlaubt allen dafür ausgelegten Programmen (z.B. Kalkulation / Excel, aber auch Access, Filemaker, ..) den Zugriff auf die MySQL-Datenbanken. Das bietet einen einfachen, aber sehr praktischen Zugang zu ihren Daten, je nach Konfiguration auch über das Lokale Netzwerk (LAN). Laden sie zusätzlich den ODBC-Treiber von MySQL, um diese Funktion zu ermöglichen.JDBCAlle Standard Programmiersprachen bieten in eigenen MySQL-Modulen Zugriff auf ihre MySQL-Datenbanken. Java benötigt dazu den JDBC-Treiber, den sie am besten direkt vom MySQL-Web laden.Die MySQL-Module aller anderen Programmiersprachen findet man mit den entsprechenden Stichworten (Perl, PHP). |
|||
Vorbereitung der MySQL-Installation |
|
FirewallDer Zugang zum SQL-Server muss von allen beteiligten Firewalls erlaubt werden.► Am Server-PC müssen eingehende Daten zugelassen werden, die auf Port 3306 von den PC des eigenen lokalen Netzwerks kommen. |
► Auf allen anderen PC (welche den Datenbank Server verwenden sollen) müssen ausgehende Daten an den Server-PC auf Port 3306 zugelassen werden. |
Alle weiteren angeführten Vorbereitungen sind nur dann notwendig, wenn auf ihrem
Win-System bereits ein MySQL Server installiert ist.Daten-SicherungVorrang vor allen anderen Arbeiten hat die Sicherung der vom MySQL Server verwalteten Daten:Legen sie eine Sicherungs-Kopie (Dump) an. Sichern sie die Datenbank mysql getrennt von allen anderen: Hier sind alle Zugangs-Rechte enthalten. Sichern sie von allen Datenbanken Struktur und Daten (am besten getrennt). Kontrollieren sie in Stichproben, ob die Sicherung korrekt ausgeführt wurde. |
Server herunterfahren: • Nach Sicherung der Daten wird der alte MySQL Server abgebaut: • Ein laufender MySQL Server muss abgeschaltet werden. • Ein abgeschalteter MySQL Server muss abgemeldet werden. • Der alte Server wird vorläufig nicht de-installiert oder gelöscht. • Die Datenbanken des alten Servers bleiben vorläufig an Ort und Stelle. |
Server abschaltenEin laufender MySQL Server muss abgeschaltet werden.• Dienst Verwaltungs-Programm services.msc - Rechtsklick auf den Dienst MySQL, Befehl . • Alternativ kann man eines der Konsolen-Programme verwenden:
C:\> net stop mysql
Danach ist das Server-Programm gestoppt, bleibt jedoch als Dienst-Programm
angemeldet.
C:> sc stop mysql |
Server abmeldenDas abgeschaltete MySQL Dienst-Programm muss abgemeldet werden:Dazu eignet sich der Installer (genau jenes Programm install.exe, mit welchem der 'alte' MySQL Server installiert wurde: Wenn das Programm einen installierten MySQL Server findet, dann bietet es die Option zu dessen Entfernung. Alternativ verwendet man das Konsolen-Programm: C:\Programme\MySQL\bin> mysqld --remove
Danach ist der Server abgeschaltet und abgemeldet. Er kann jedoch bei Bedarf wieder
in Betrieb gehen. Insbesondere die Daten sind unverändert. Nun kann die neue
MySQL-Version installiert werden.
|
Installation von MySQL auf Windows |
|
|
Verschieben sie das Installer-Archiv in ein eigenes Verzeichnis, z.B.
C:\temp\install
Packen sie das Archiv mit einem Expander
(WinRAR,
WinZip,
WinAce,
...) aus und starten sie den Installer.
|
Das Installer-Programm stellt vor der eigentlichen Installation einige sinnvolle Fragen: Antworten sie im Zweifel mit der vorgeschlagenen Standard-Antwort. |
Installations-VerzeichnisDer Vorschlag lautet meistC:\MySQL
besser (übersichtlicher) ist meist
C:\Programme\MySQL
|
Umgebungs-Variable PATHEs ist sehr empfehlenswert, den Pfad zu den MySQL-Programmen in diese Variable aufzunehmen.Details dazu auf dieser Seite und auf der Seite Umgebungs-Variable auf Windows. |
PasswortMySQL verwendet unabhängig vom Betriebssystem (!) eine eigene User-Verwaltung. (Umgekehrt kann die User-Verwaltung von Linux-Systemen durch eine MySQL-Datenbank erfolgen) Zu Beginn ist bereits der User root mit uneingeschränkten Zugriffs-Rechten angelegt. Es ist sehr empfehlenswert, sofort ein Passwort für den Verwaltungs-User root anzugeben !
Wenn sie das root-Passwort vergessen haben, gibt es keinerlei Zugriff auf die Daten !
|
Anonymer UserMySQL bietet die Option, einen anonymen MySQL-User anzulegen.Davon wird dringend abgeraten ! User & Passworte
Mit den Verwaltungs-Werkzeugen (
phpMyAdmin, mysql.exe, ...)
können sie später alle User-Daten und -Zugriffsrechte ändern
(neu anlegen, ändern, löschen, ...) - Allerdings nur dann, wenn sie sich
als root anmelden können !
|
| Lesen sie die Dokumentation ! Falls nicht in ihrem Archiv enthalten → von der MySQL-Homepage laden. |
MySQL ist ein Hintergrund-Dienst, der nach Installation bereits 'unsichtbar' läuft. Ein Dienst (Server-Programm) ist nicht über Fenster bedienbar, sondern kann nur mit eigener Software gestartet und angehalten werden. |
|
Platzbedarf (Richtwerte): Installer-Download ca. 85 MB Festplatte: ca. 140 MB, zuzüglich Daten Hauptspeicher: ca. 15 MB |
Wenn vorher eine ältere MySQL-Version installiert war, dann kann im letzten Schritt (execute) eine Fehlermeldung auftreten. Wiederholen sie mit Klick auf retry, dann ist das Problem normalerweise benoben. |
Anmeldung des MySQL Datenbank-Servers als Windows-Dienst |
|
| Voraussetzung: MySQL-Datenbank-(DB)-Server wurde korrekt installiert. |
●
Nach normaler Ausführung der Installation ist der MySQL Server
bereits als Windows-Dienst angemeldet.
|
Anwendungs-Programme und Dienste:Übliche Anwendungs-Programme sind z.B. Textverarbeitung, Grafik, Kalkulation, Spiele. Ihr Start erfolgt durch Doppelklick oder über das Start-Menü.Das Programm öffnet Bedienungs-Fenster und wird per Maus und Tastatur gesteuert. MySQL ist kein Anwendungs-Programm und wird nicht wie ein solches gestartet ! |
MySQL ist ein Hintergrund-Dienst (service), öffnet daher
keine Fenster, und kann nicht durch
Maus & Tastatur nicht gesteuert werden. Das wäre bei einem eigenen Server-PC fatal,
denn dort befindet sich normalerweise kein Mensch, der auf Meldungen reagieren könnte. Ein Dienst muss sich automatisch starten und beenden lassen, und darf keine "Fragen" stellen. Allfällige Ereignisse werden in Log-Dateien oder Datenbanken protokolliert, Warnungen werden als Mail an den Administrator gesendet. |
Anmeldung durch den InstallerDie Installer neuerer Versionen melden den MySQL-Server als Dienst an und starten den Dienst bereits. In diesem Fall müssen sie sich um die Anmeldung nicht kümmern.Weiter zum Test der Installation. |
Kontrolle:
Starten sie das Dienst-Verwaltungs-Programm:
C:\WINDOWS\system32\services.msc
Suchen sie die Zeile 'MySQL': Der Dienst sollte mit Status=Gestartet eingetragen sein.Mit Rechtsklick sind die Eigenschaften zugänglich: Standard ist Starttyp=Automatisch. Ihr MySQL-Server wird dann bei Systemstart automatisch angemeldet. |
|
'Klassische' Anmeldung von MySQL als Windows-Dienst: Das ist nur bei älteren MySQL-Versionen notwendig. Nach Installation neuer MySQL-Versionen ist ihr DB-Server bereits angemeldet und gestartet ! Zur Anmeldung öffnen sie ein Konsolen-Fenster ("Eingabeaufforderung") cmd.exe und wechseln sie ins MySQL Programm-Verzeichnis (je nach Installations-Pfad):
C:\> cd C:\MySQL\bin
So installieren sie MySQL als Dienst (Service):
C:\> cd C:\Programme\MySQL\bin C:\Programme\MySQL\bin> mysqld --install
|
Achtung - Die Anmeldung dauert eine Weile und gibt nicht immer eine Erfolgsmeldung. Kontrollieren sie die Anmeldung so wie im Absatz oberhalb beschrieben. Falls nötig, können sie MySQL so wieder entfernen: C:\Programme\MySQL\bin> mysqld --remove
|
Start & Stop von MySQL DB-Server auf Windows |
|
| Voraussetzung: MySQL Server wurde installiert und als Dienst angemeldet. |
●
Nach normaler Ausführung der Installation ist der MySQL Server
bereits gestartet.
|
|
Neuere Installer und andere Anbieter bieten eigene Werkzeug-Programme für den
MySQL-Server, mit deren Hilfe man den Dienst auch starten oder anhalten kann. Die folgenden Abschnitte zeigen, wie der DB-Server mit immer verfügbaren 'primitiven' Methoden kontrolliert wird. |
Beispiele für Verwaltungs-Software: winmysqladmin, MySQL Administrator, ... Diese und andere Programme bieten eine grafische Oberfläche für die Verwaltung des DB-Servers. |
Dienst-Verwaltungs-ProgrammAlle installierten Hintergrund-Dienste (Server) werden mit diesem Programm verwaltet:C:\WINDOWS\system32\services.msc
Legen sie eine Verknüpfung zu diesem Programm in ihrem Start-Menü an,
falls es sich nicht bereits dort befindet.Starten sie das Dienst-Verwaltungs-Programm: Den MySQL-DB-Server finden sie in der Liste unter MySQL
|
Start-Eigenschaften:
Mit Rechtsklick auf einen Dienst sind dessen Eigenschaften zugänglich:
Jeder Dienst kann hier z.B. komplett abgeschaltet werden.Stellen sie die Start-Eigenschaften ein: Der Dienst wird normalerweise automatisch bei Systemstart gestartet. Manueller Start und Stop mit dem Dienst-Verwaltungs-Programm: In der linken Fensterhälfte finden sie Links, mit denen sie jeden installierten Dienst manuell starten oder anhalten können. |
Konsolen-Programme:Öffnen sie ein Konsolen-Fenster (Eingabeaufforderung) cmd.exeAusgabe des aktuellen Status von MySQL: C:\> sc query mysql
Starten oder stoppen sie MySQL:
C:\> net start mysql
C:\> sc start mysql C:\> net stop mysql C:> sc stop mysql |
Die Programme net und sc können alternativ an Stelle des Dienst-Verwaltungs-Programmes services für Start / Stop / Restart des MySQL Servers verwendet werden. Hinweis: Diese Befehle eignen sich für die Automatisierung. |
PATH:Es ist sehr empfehlenswert, den Pfad zum MySQL Programm-Verzeichnis in die Umgebungs-Variable PATH aufzunehmen.Die Installer neuer MySQL-Versionen führen das bereits selbst durch. In diesem Fall kann das Konsolen-Programm mysql.exe (nächstes Kapitel) problemlos gestartet werden, unabhängig vom gerade benutzten Verzeichnis. |
Eigene Script-Dateien *.cmd sollten sich in einem Verzeichnis befinden, das ebenfalls in PATH enthalten ist. In diesem Fall können die Script-Programme problemlos gestartet werden, unabhängig vom gerade benutzten Verzeichnis. ♦ Details zur Umgebungs-Variablen PATH auf Windows. |
Test mit dem Konsolen-Programm mysql.exe |
|
| Voraussetzung: MySQL DB-Server installiert, als Dienst angemeldet, gestartet. | |
Pfad-Test:Öffnen sie ein Konsolen-Fenster (Eingabeauffordderung) cmd.exe und starten sie das Verwaltungsprogramm mysql.exeC:\> mysql
Wenn sie eine Meldung erhalten wie ERROR ... Access denied
dann ist der Pfad korrekt eingestellt.
|
Wenn sie ein Meldung erhalten wie Befehl ... mysql ... nicht gefunden
dann verzweigen sie in das Programm-Verzeichnis von MySQL und wiederholen dort den Test:
C:\Programme\MySQL\bin> mysql
Wenn sich mysql erst jetzt mit ERROR ... Access denied meldet,
dann funktioniert das Programm, die
Umgebungs-Variable PATH
ist jedoch noch nicht oder falsch eingestellt.
|
Anmeldung mit Name und PasswortBereits der Installer drängt sie dazu, ein Passwort für den Administrator root zu vergeben. In diesem Fall können sie das Konsolen Verwaltungs-Programm mysql.exe nur mit Name und Passwort öffnen:
C:> mysql -uroot -pgeheim
Welcome to the MySQL monitor... |
In diesem Beispiel wird mysql.exe mit 2 Optionen gestartet: -u gibt den UserNamen an (hier 'root') -p gibt das Passwort an (hier 'geheim') Vor Angabe des Passworts kein Leerzeichen (dieses wird sonst als Bestandteil des Passworts betrachtet) ! |
Anmeldung auf entfernten ServernAuch auf entfernten MySQL-Servern (im lokalen Netzwerk oder im Internet) ist eine Anmeldung möglich:C:> mysql -h192.168.0.1 -uroot -pgeheim
|
Ersetzen sie die Host-Adresse 192.168.0.1 durch die reale Adresse des MySQL-Servers. Auf diese Weise ist die einfache Fernsteuerung eines Servers vom eigenen PC möglich. |
Statusmysql> status;
Ausgabe von Status-Informationen. Vergessen sie nicht den ;
Strichpunkt am Ende jedes Befehls. Andernfalls wird das Zeichen für
Zeilen-Fortsetzung -> angezeigt, bis sie den Befehl
mit ; abschließen.
|
Hilfemysql> help;
Ausgabe der integrierten Hilfe. Die Hilfe wird erst nach der
gültigen Anmeldung angezeigt. Details zur Hilfe finden sie in der Original-Dokumentation.
|
Datenbanken
mysql> show databases;
+----------+ | database | +----------+ | mysql | | test | +----------+ mysql> use test; Database changed |
Ausgabe einer Liste aller angelegten Datenbanken. • Mit Befehl use wählt man daraus eine Datenbank zur Bearbeitung. • Danach kann man alle Standard SQL-Befehle auf diese Datenbank anwenden. • Zu jedem Zeitpunkt ist nur eine Datenbank ausgewählt. Mit Befehl use kann man allerdings jederzeit eine andere Datenbank zur Bearbeitung auswählen. |
Programm beenden
mysql> quit;
Bye C:\> |
Mit Befehl exit oder quit wird das mysql Verwaltungs-Programm beendet. Auf der Linux Shell-Konsole steht ein gleichnamiges und praktisch genau gleich funktionierendes Konsolen-Programm zur Verfügung. |
MySQL Verwaltung |
|
| Voraussetzung: MySQL DB-Server installiert, als Dienst angemeldet, gestartet | |
mysql.exeDieses Konsolen-Programm wird mit jeder MySQL-Installation mitgeliefert und gehört zur Grund-Ausrüstung.Das Programm befindet sich im MySQL-Verzeichnis, z.B. C:\Programme\MySQL\bin\mysql.exe
Im Kapitel Test dieser Seite finden sie Hinweise
zum erstmaligen Start von mysql.exe Rechts wird die Verwendung von Script-Programmen mit mysql.exe demonstriert. |
SQL Script-DateienEine besondere Stärke von mysql.exe ist die Möglichkeit zur Ausführung von SQL Script-Dateien (z.B. für Verwaltungs-Arbeiten): Legen sie eine Text-Datei an, z.B.C:\test.sql
und tragen sie darin SQL-Befehle ein, z.B. die Zeilen
use mysql;
Starten sie mysql.exe und befehlen sie die Ausführung der
SQL Script-Datei:
show tables; select host,user,password from user; select curtime();
C:\> mysql -uroot -pgeheim>
mysql> source c:\test.sql |
|
Dieses Standardprogramm wird weltweit zusammen mit fast jedem MySQL-Server installiert:
Damit können sie ihren MySQL-Server mit jedem Browser steuern,
wahlweise auch aus dem lokalen Netzwerk (LAN) oder aus dem Internet fernsteuern. ● Bedingung ist die Installation eines Webservers mit PHP.inkl. PHP-Modul mysqli (oder mysql) ● Es gibt keine speziellen Betriebssystem-Versionen von phpMyAdmin - Das PHP-Programm läuft ohne jede Änderung auf jedem gängigen System ! ● phpMyAdmin kann beliebig viele MySQL-Server verwalten, z.B. am eigenen PC, über das lokale Netzwerk oder über das Internet. |
● phpMyAdmin eignet sich sehr gut für die laufende Wartung des DB-Servers kann jedoch den Server-Dienst nicht starten oder anhalten. ● phpMyAdmin kann u.a. alle oder nur bestimmte Datenbanken in Text-Dateien sichern (dump) bzw. aus den Sicherungs-Dateien wieder die kompletten Datenbanken herstellen. ♦ Details zu phpMyAdmin |
MySQLManagerDieses Win-Programm wird mit den meisten MySQL-Distributionen mitgeliefert und ist auch von Shareware-Sites im Internet erhältlich.Im Internet gibt es noch zahlreicher weitere Angebote für Shareware und Freeware zur Verwaltung von MySQL-Servern. |
Das Menü "Tools" von MySQLManager enthält folgende Befehle:
Register Server
Server Properties SQL Query |
|
Register Server
Ändern sie für den einfachen Testbetrieb keine dieser Einstellungen von MySQLManager
|
|
|
Server Properties:
Hier können sie mit MySQLManager die Einstellungen aller Datenbanken, Tabellen
und Felder kontrollieren. Klicken sie dazu auf die Symbole, welche sich in
hierarchischer Ordnung öffnen.
|
Nach Installation verwaltet ihr MySQL Server normalerweise bereits 2 Datenbanken:
mysql und test
Ändern sie nichts an der DB mysql !
Verwenden sie zum Test die Datenbank test
|
|
SQL Query:
Ein neues Fenster mit 3 Registern öffnet sich:Query, Results, Status Geben sie SQL-Befehle in das Query-Fenster ein, z.B. show databases;
Starten sie die Ausführung mit dem grünen Rechtspfeil.
|
Das Ergebnis wird im Fenster "Results" angezeigt. Sie sollten mindestens die
Datenbanken "mysql" und "test" angezeigt erhalten. Erteilen sie weitere Befehle, z.B.
use test; show tables; |
Eigene Datenbank-ProgrammeMit Server-Programmiersprachen wie Perl oder PHP haben sie Zugriff auf jeden MySQL-Server (Berechtigung vorausgesetzt). Damit können sie eigene Programme erstellen, welche auf dynamischen Webseiten den Zugriff auf den DB-Server erlauben. |
Diese Art des Zugriffs ist Standard für fast alle kommerziell verwendeten Datenbanken. Heute werden solche Webseiten-Lösungen nur selten komplett selbst programmiert. Dafür werden mächtige und komfortable Programm-Generatoren eingesetzt. |
Office-ProgrammeAus allen gängigen Office-Programmen kann man auf (MySQL)-Datenbanken zugreifen.● Bedingung ist die Installation des MySQL ODBC-Treibers, und die Auswahl einer ODBC-Datenquele. |
Für M$-Office Programme muss dazu die Komponente MSQUERY (msqry32.exe) von der Original-CD installiert werden - Da sie in der Standard-Installation leider nicht enthalten ist, wird das oft vergessen. |
Das Konsolen-Programm mysql.exe |
|
| Voraussetzung: MySQL DB-Server installiert, als Dienst angemeldet, gestartet. | |
Pfad:Das Konsolen-Programm mysql.exe dient zur Administration des MySQL-DB-Servers und ist im Lieferumfang jedes MySQL-Installers enthalten. Sie finden es z.B. im VerzeichnisC:\Programme\MySQL\bin\mysql.exe
Einmal installiert, arbeitet dieses Programm auf Windows genauso wie auf Linux.
|
Einstellung von PATH: Ergänzen sie die Windows-Umgebungs-Variable PATH um den Pfad zu diesem Programm. Auf der Konsole kann das provisorisch (!) mit Befehl SET geschehen: C:\> set path=%path%;c:\programme\mysql\bin
Details dazu auf der Seite
Umgebungs-Variable
|
Zugangsrechte:Jeder MySQL-Server muss bei der Installation mit mindestens einem Zugangs-Konto (account, s.u.) für AdministratorInnen versehen werden, sonst ist kein Zugang zum Server möglich.Ältere Versionen verwenden user='root' und ein leeres Passwort. Das stellt ein erhebliches Sicherheits-Risiko dar, deshalb ändern sie das Passwort am besten beim ersten Zugriff. Der Programmstart (Anmeldung) ohne Passwort erfolgt z.B. so: C:\mysql\bin> mysql
|
Neue Versionen drängen sie dazu, gleich bei der Installation ein Passwort zu vergeben, z.B. user='root', password='geheim'. In diesem Fall müssen sie sich mit diesen Daten anmelden, z.B. C:\mysql\bin> mysql -uroot -pgeheim
Zwischen prefix (-p) und Passwort ('geheim') darf kein
Leerzeichen stehen, da es sonst als Bestandteil des Passworts betrachtet wird.
|
Test:mysql.exe stellt (auch) ein erstklassiges Entwicklungs-Werkzeug dar: Sie können jeden beliebigen SQL-Befehl direkt eingeben, das Ergebnis wird auf der Konsole angezeigt.Vergessen sie nicht, jeden Befehl mit einem ';' abzuschließen ! Bevor sie mit SQL arbeiten können, müssen sie eine Datenbank auswählen: Befehl show databases; zeigt alle DBs an. Befehl use ... öffnet die angegebene DB. DB test ist für Experimente vorgesehen und frei zugänglich. DB mysql verwaltet alle Daten des DB-Servers (Datenbanken, User, Hosts, Zugriffsrechte, usw.).
Verwenden sie die DB mysql daher keinesfalls für Experimente !
|
C:\> mysql -uroot -pgeheim
Welcome ... mysql> show databases; +----------+ | Database | +----------+ | mysql | | test | +----------+ 2 rows in set (0.00 sec) mysql> use test; Database changed mysql> show tables; +----------------+ | Tables_in_test | +----------------+ | test | +----------------+ 1 row in set (0.00 sec) |
Passwort und Konto |
|
Passwort:Passworte werden vom MySQL-Server in verschlüsselter Form gespeichert. Ältere Versionen <=4.0 verwenden dazu 16 Zeichen, neue Versionen 42 Zeichen.Die Codierung bei der Eingabe erfolgt durch die SQL-Funktionen password und old_password, die sich allerdings je nach MySQL-Version unterschiedlich verhalten ! Alte MySQL-Server <=4.0 kennen nur die SQL-Funktion password und erzeugen damit einen 16-Zeichen-Schlüssel. Neue MySQL-Server erzeugen mit SQL-Funktion old_password einen 16-Zeichen-Schlüssel, mit SQL-Funktion password einen 42-Zeichen-Schlüssel. |
Beispiel:
mysql> use mysql;
Im ersten Fall (user='alt') lautet der erzeugte Schlüssel
mysql> update user set password=old_password('geheim') where user='alt'; mysql> update user set password=password('geheim') where user='neu'; mysql> select host,user,password from user; 58982d15048734ee
im zweiten Fall (user='neu')
*462366917EEDD1970A48E87D8EF59EB67D2CA26F
Die Verschlüsselung ist nicht umkehrbar: Aus gleichen Texten wird immer der gleiche Schlüssel codiert, aus einem Schlüssel kann jedoch kein eindeutiger Text decodiert werden. |
Passwort und Konto-Typ:MySQL-Server >=Version 4.1 verwenden zur Kommunikation ein neues, verbessertes Protokoll. Alle Programme, die auf MySQL zugreifen, müssen dieses Protikoll unterstützen. Da für den Zugriff meist eigene Programm-Bibliotheken (libraries) verwendet werden, sind in allen Programmiersprachen Module bzw. Bibliotheken für das alte und das neue Protokoll verfügbar.Beispiel PHP:
Das alte Protokoll wird vom Modul mysql unterstützt,
das neue vom Modul mysqli.Während einer längeren Übergangszeit werden MySQL-Server beide Protokolle unterstützen. Die Steuerung erfolgt durch die Passwort-Codierung: Konten mit alten 16-Zeichen-Schlüsseln verwenden das alte Protokoll (z.B. PHP-Modul mysql), Konten mit neuen 42-Zeichen-Schlüsseln das neue Protokoll (z.B. PHP-Modul mysqli). ♦ Details finden sie im Kapitel PHP-Module. |
Tipp:
Legen sie für jeden Typ von AnwenderIn 2 user-Konten (mit unterschiedlichen
user-Namen) an, davon je eines mit altem und neuem Passwort.So gewährleisten sie, dass alle gängigen Programme unabhängig von der Version mit ihren MySQL-Server zusammenarbeiten können. Sie müssen nur dafür sorgen, dass die Anmeldung am Server mit dem passenden User-Namen erfolgt. Sie können auch gleiche User-Namen und Passworte verwenden, wenn das Feld host unterschiedlich ist: In diesem Fall hängt das verwendete Konto davon ab, von welchem PC sich ein Programm mit dem MySQL-Server verbindet. Verwenden sie für neue Entwicklungen ausnahmslos Konten und Passworte neuen Typs und die dazu passenden Module (z.B. mysqli ). |
Flush:Änderungen der Zugangsrechte treten auch nach der Eintragung noch nicht in Kraft.+ Neustart: Nach jedem Neustart von MySQL-Server werden die Zugangsrechte nach den in der Datenbank mysql gefundenen Daten (neu) erteilt. |
+ Geben sie (z.B. mit dem Konsolen-Programm mysql oder mit phpMyAdmin) den SQL-Befehl mysql> flush privileges;
In diesem Fall treten geänderte Rechte unmittelbar nach korrekter Ausführung
des Befehls in Kraft.
|
ODBC |
|
|
ODBC
(Open DataBase Connectivity) ist eine Technik zur Kommunikation zwischen Daten-Anbieter
(Server) und Daten-Konsument (Client) im Netzwerk. ► ODBC bietet eine einheitliche Drehscheibe für jede Art von Datenverwaltung. Vorteil: Clients müssen lediglich ODBC "verstehen", um damit auf jede beliebige Datenquelle zuzugreifen. Bedingung: Die gewünschte Datenquelle ist über einen "ODBC-Treiber" zugänglich - jeder Hersteller von Datenbanken bietet einen ODBC-Treiber an. ► Diese Technik unterstützt Programme, nicht meschliche AnwenderInnen. Es gibt daher kein "ODBC-Programm", lediglich einige sehr einfach gehaltene Administrations-Werkzeuge. |
►
Die Anwendung von ODBC macht Sinn auf ihrem persönlichen PC, damit ihre Programme
über die (eigenen und externen) Datenquellen verfügen können.
Der ODBC-Treiber wird daher auf ihrem PC installiert, nicht am Server ! ► Sie geben dem ODBC-Treiber ihres PC die gewünschten SQL-Datenquellen bekannt, anschließend können sie mit allen gängigen Programmen darauf zugreifen. Da Server-Einstellungen selten geändert werden, können sie die Datenquellen nach kurzer einmaliger Einrichtung meist lange Zeit (Jahre...) hindurch verwenden. ● ODBC ist nur auf Windows-PC üblich und zählt selbst dort zu den älteren, eher vernachlässigten Projekten. ODBC ist auch auf Linux möglich, jedoch nur dann sinnvoll, wenn ein Programm (M$Office, FileMaker) diese Technik ausdrücklich benötigt. ♦ Details zu ODBC in diesem Web Entwickler-Informationen bei MySQL |
|
Quelle für den ODBC-Treiber von MySQL: Die MySQL-Homepage bietet kostenlos Treiber für alle gängigen Betriebssysteme an. |
Installation:
Packen sie das Archiv aus, starten sie den Installer.
|
|
Voraussetzungen für die Verwendung von ODBC: Dafür müssen zahlreiche Punkte erfüllt sein. Falls sie MySQL gerade installiert haben, erledigen sie diese Arbeiten besser zu einem späteren Zeitpunkt. ▲ Die gewünschte Datenquelle muss funktionieren (Test von MySQL) ▲ Die Datenquelle muss erreichbar sein, entweder am eigenen PC oder ist über das lokale Netz (LAN). Für MySQL können sie das notdürftig mit den Konsolen-Programmen ping und telnet feststellen: Öffnen sie auf ihrem PC ein Konsolenfenster (Startmenü | Ausführen | cmd) und geben sie ein:
C:\> ping 192.168.0.1
Ersetzen sie die Adresse 192.168.0.1 durch die reale IP-Adresse ihres MySQL-Server-PC.
(Der eigene PC hat stets die Adresse 127.0.0.1).C:\> telnet 192.168.0.1 3306 + Wenn der MySQL-Server auf Port 3306 lauscht (listen), dann wird der Bildschirm gelöscht. - Wenn der MySQL-Server nicht erreichbar ist oder nicht antwortet, erhalten sie eine Fehlermeldung von telnet Schließen sie das Konsolen-Fenster. |
▲ Die Kommunikation darf nicht behindert werden: Firewalls (sowohl am MySQL-Server als auch an jedem PC im Netzwerk) müssen die Kommunikation auf Port 3306 ausdrücklich erlauben. ▲ Sie müssen über Zugangsrechte und -Daten verfügen: MySQL-User, Passwort, Name der MySQL-Datenbank. ▲ ODBC ist auf ihrem PC installiert: Das ist auf allen modernen Windows-Betriebssystemen der Fall. ▲ Der zur gewünschten Datenquelle passende ODBC-Treiber ist auf ihrem PC (nicht am Server) installiert (s.o.) ▲ Die Datenquelle ist auf ihrem PC installiert: sie finden sie als "Data Source Name" (DSN) in der DSN-Liste ihres ODBC-Administrators. ▲ Ihr Zielprogramm versteht ODBC:die Standard-Office-Programme von M$ benötigen dazu das Programm SQLquery. Meist müssen sie es von ihrer Office-Installations-CD nachträglich installieren. ♦ Weitere Informationen zu ODBC. |
|
Faule Tricks:
In neueren Windows-Versionen enthält die Liste installierter ODBC-Treiber
zwar alle Produkte von M$, die Treiber anderer Hersteller fehlen leider - und zwar auch dann,
wenn sie korrekt installiert und funktionsfähig sind, z.B. für MySQL.
|
Das ist ein kleiner Vorgeschmack darauf, was M$ unter 'mehr Sicherheit' versteht. Immerhin kann man das Monopol (vorläufig) noch austricksen. Auf der ODBC-Seite finden sie Möglichkeiten, auch ODBC-Treiber anderer Hersteller einzusetzen . . . |
MySQL-Update |
|
|
Wenn sie wichtige Daten auf einem DB-Server verwalten, dann müssen sie bei einem
Update mit maximaler Vorsicht vorgehen.
Führen sie ein Update niemals unter Zeitdruck aus !
Der größte mögliche Schaden bei einem Update-Fehler ist der
Totalverlust aller Daten. Das ist zum Glück sehr selten, wenns passiert aber nur ein
schwacher Trost.
|
Was jedoch häufig auftritt, sind Verzögerungen auf Grund kleinerer technischer
Probleme: Die Datenbanken sind dann für mehrere Tage nicht verfügbar und die AnwenderInnen bilden sich ein entsprechendes Urteil über die/den AdministratorIn... |
Information lesenLesen sie alle Informationen zum Thema Update: Im MySQL-Manual (der alten und der neuen Version), in den Hinweisen zur neuen Version, usw. usw. |
Zeit lassenJe wichtiger ihre Daten und je größer deren Menge, desto länger haben sie Zeit für das Update: Im Internet finden sie dann bereits Berichte über die Probleme anderer User und meist auch Lösungswege. |
Praxis-Test:► Ideal ist ein Test der neuen Version im 'Original-Maßstab', d.h. mit allen Daten, jedoch auf einem anderen PC und getrennt vom lokalen Netzwerk (LAN).Je nach den technischen Möglichkeiten müssen sie diesen Test-Umfang einschränken. ► Erzeugen sie einen 'Dump' von der Struktur ihrer Datenbanken (ein SQL-Script in einer Text-Datei). Erzeugen sie danach einen Dump ihrer Daten (ohne Struktur). Bei großen Daten-Mengen werden sie in mehreren Dateien begrenzter Größe gesichert. Struktur und Daten übertragen sie z.B. mit dem Programm mysqldump.exe (im Verzeichnis \bin jeder Installation) oder mit phpMyAdmin. ► Installieren sie die neue Server-Version (auf einem Test-PC !). ► Übertragen sie die DB-Struktur (und einige wenige Daten) auf den Test-Server. Mit mysql.exe oder mit phpMyAdmin können sie jede entsprechende Text-Datei *.sql als SQL-Script ausführen. ► Testen sie danach die Daten-Übertragung mit einem kompletten Dump aller Daten. Spätestens dieser Zeitpunkt sollte genutzt werden, eine Sicherungskopie des Total-Dumps auf CD anzulegen. ► Große Daten-Mengen ergeben riesige dump-Dateien. Diese sind unhandlich. Außerdem können sich Probleme ergeben, wenn bei der Wieder-Eingabe der Daten die maximale Dateigröße oder Arbeitszeit von Programmen (z.B. PHP) überschritten wird. Deshalb werden große Daten-Mangen besser in Portionen gesichert, z.B. zu je 3-5MB. |
Dump (Sicherung als Text-Datei) einer ganzen DB (hier 'test') mit Daten (erste Zeile), oder nur mit der Struktur (2.Zeile): Der Befehl erzeugt eine Text-Datei (hier test.sql) mit allen SQL-Befehlen zur Wiederherstellung der Daten.
C:\mysql\bin> mysqldump -u root test > c:\test.sql
C:\mysql\bin> mysqldump -u root --no-data test > c:\test.sql Ausführung eines SQL-Scripts (z.B. einer Text-Datei test.sql zur Wiederherstellung der Daten)
C:> mysql -uroot -pgeheim
mysql> source test.sql; |
Planung:Jedes real ausgeführte Update braucht viel Zeit und volle Konzentration. Meist wird es daher am Wochenende ausgeführt.► Kündigen sie den AnwenderInnen das Update an - meist werden davor noch erstaunlich viele Arbeiten ausgeführt, außerdem rechnet man evtl. mit Ausfall oder Verzögerung am nächsten Arbeitstag. |
► Sicherheitsnetz: Sie sollten den Installer der 'alten' MySQL-Version bereithalten. ► Setzen sie eine Zeit-Grenze: Wenn das Update z.B. bis Sonntag Mittag noch nicht funktioniert, dann haben sie noch genug Zeit, um die 'alte' Version wieder in Betrieb zu nehmen. |
Dump:► Stellen sie absolut sicher, dass kein/e DB-AnwenderIn mehr an der DB arbeitet, z.B. durch Isolierung des DB-Servers vom lokalen Netzwerk (LAN) - Netzwerk-Kabel abstecken ! |
►
Erzeugen sie einen kompletten Dump aller Strukturen und Daten und sichern sie die
(meist sehr umfangreichen) Daten auf CD. Kontrollieren sie die Dump-Dateien,
führen sie einige Stichproben durch. ► Die Datenbank mysql ist klein, aber lebenswichtig (Zugriffsrechte): Sie verdient einen zusätzlichen Dump auf einem anderenn Datenträger. |
De-Installation:(Nur) Bei älteren MySQL-Versionen können Probleme auftreten, wenn eine neue Version installiert wird, solange die alte noch vorhanden ist oder gar noch läuft.► Vor (!) einer De-Installation muss der Dienst 'MySQL' abgemeldet werden. Dazu verwenden sie eines der mitgelieferten Service-Programme (mysqld_opt, winmysqladmin, ...). Kontrollieren sie mit C:\WINDOWS\system32\services.msc
Der Dienst darf nicht in der Liste nicht mehr aufscheinen !► Mit der De-Installation verzichten sie auf eine sehr angenehme Option neuerer MySQL-Versionen: Diese übernehmen alle vorhandenen Daten und ersparen ihnen daher das langwierige Einlesen der gespeicherten Dump-Daten. Testen sie diese Möglichkeit, aber verlassen sie sich nicht darauf: Vor jedem Update muss zur Sicherheit unbedingt ein kompletter Dump erzeugt werden ! |
►
Programme sichern: Das Verzeichnis \bin wird von manchen
De-Installern und von manchen Installern gelöscht: Falls sie eines dieser Programme
(z.B. Shareware...) noch brauchen, müssen sie es sichern.
Noch besser ist allerdings Neu-Installation nach dem update. ► Die De-Installation wird wie üblich ausgeführt: Start | Einstellungen | Systemsteuerung | Software ► Bei De-Installation bleiben normalerweise sämtliche Daten (im Verzeichnis \data) erhalten. Darauf sollten sie sich jedoch nicht verlassen ! |
Neu-Installation:Der Windows-Installer wird mit jeder MySQL-Win-Version mitgeliefert. |
Die Installation sollte zu diesem Zeitpunkt bereits getestet sein und keine Probleme bereiten. |
Struktur und Daten:Wenn sie eine neue Version erfolgreich über Programm und Daten einer bestehenden Version installiert haben, dann ist der DB-Server bereit zum Test.Wenn sie eine neue Version ohne Struktur oder Daten installiert haben, dann müssen diese komplett neu aufgebaut werden. Zuerst wird die Struktur der DBs installiert, dann folgt der (meist langwierige) Schritt der Daten-Übernahme. Die wichtigsten Daten (Datenbank mysql ) werden zuerst übernommen. |
Für die Daten-Übernahme gibt es evtl. (je nach Version) eigene Werkzeuge. Sie sollten sich darauf allerdings nicht verlassen und im Notfall alle Daten aus einem Dump übernehmen - das ist immer noch die sicherste Methode. |
Test:Die fertigen DBs werden bereits während der Übernahme anderer Daten getestet.Nach den üblichen Administrator-Tests sollten möglichst umfassende Tests unter den realen Bedingungen der AnwenderInnen ausgeführt werden - auf deren PC, mit deren Zugriffsrechten. |
Das umfasst zunächst nur die passive Anzeige (select ...). Erst nach kompletter Installation aller Daten wird die Änderung und Neu-Anlage von Datensätzen getestet. Idealerweise wird jede Routine-Arbeit an der DB zumindest einmal real getestet, und zwar in der Reihenfolge fallender Wichtigkeit und Häufigkeit. |
Probleme:können auch bei professionell ausgeführten Updates auftreten.Legen sie noch vor der Analyse eine Zeit-Grenze fest: Wenn ein Problem bis dahin nicht behoben wurde, kehren sie planmäßig zur alten Version zurück, auch wenn damit viel Arbeit umsonst war. |
Die Behebung von Datenbank-Problemen verträgt keinen Zeitdruck. Versuchen sie besser nicht, Fehler unter Stress zu beheben - meist werden dabei weitere Fehler hinzugefügt. Im schlimmsten Fall werden Daten beschädigt oder gelöscht. |
Weiter mit MySQL-DB-Server |
|
|
Zugangsrechte einschränken: Nach Installation ist in MySQL normalerweise nur der SuperUser "root" eigetragen, in älteren Versionen evtl. sogar ohne (!) Passwort. Neuere Installer erlauben für root kein leeres Passwort mehr.
Schliessen sie diese gefährliche Sicherheitslücke so rasch wie möglich !
|
Sobald sie ihren MySQL-Server mit dem lokalen Netz (LAN) oder gar mit dem Internet
verbinden, dann ermöglichen sie damit evtl. jeder Person und jedem Hacker-Programm
den Zugang zu ihrem MySQL-Server. Definieren sie daher ein Passwort für den User "root" und richten sie mindestens einen "normalen" User mit ungefährlichen Zugangsrechten ein. |
|
PHP,
Perl
& co: Moderne Programmiersprachen wie PHP oder Perl bieten bequeme Funktionen für den Zugriff auf MySQL-Datenbanken oder ODBC-Datenquellen an. Damit können sie rasch und einfach Programme für den Zugriff auf Datenbanken herstellen. Die Oberfläche wird mit einem beliebigen HTML-Editor gestaltet, die Bedienung erfolgt über Webseiten. |
Die Programme laufen auf dem Webserver und sind von jedem PC im lokalen Netz (LAN) mit einem beliebigen Browser ausführbar. Falls ihr Webserver im Internet zugänglich ist, haben sie damit weltweit zu jedem Zeitpunkt Zugang zu ihren Daten. |
|
ODBC:
Auf Windows-PC ist einiger Aufwand zu treiben,
bis sie über eine ODBC-Datenquelle verfügen.
|
Nach dieser einmaligen Arbeit haben sie jedoch mit allen gängigen Programme (z.B. mit M$Excel, ...) direkten Zugriff auf die aktuellen Daten des SQL-DB-Servers. |
Migration von Access, dBase, FileMaker, ... auf MySQL |
|
|
Zahlreiche kleinere Unternehmen verwenden noch M$ Access, dBase, FileMaker
oder andere ältere Datenbank-Software. Diese Software wurde nur in seltenen
Fällen gezielt ausgewählt. ► Als Argument für Access wird oft erwähnt, dass diese Software irgendwann einmal 'vorhanden' war (meist als vermeintlich kostenlose Raubkopie). Dazu kommt die weit verbreitete Unkenntnis, dass es überhaupt andere Datenbank-Software gibt. Solche Ansichten sind im privaten Bereich für ansonsten gebildete Menschen erstaunlich, in Betrieben jedoch unakzeptabel teuer. ► Eigene Datenbank-Software wie Access, dBase oder FileMaker hatte ihre Berechtigung, solange PC noch nicht vernetzt waren und nur wenige teure Server verfügbar waren. ► Heute sind derartige Programme höchstens noch für Kleinst-Anwendungen am eigenen PC sinnvoll, in einem lokalen Netzwerk (LAN) sind sie überholt. Die komplette Server-Software (LAMP, WAMP, ..) ist heute kostenlos und in ausgezeichneter Qualität verfügbar. |
▼
Ein häufiges Merkmal veralteter Datenbank-Software ist die Vermischung von
Daten-Verwaltung und BenutzerInnen-Oberfläche. Das ist ein Vorteil für kleine
Tabellen am eigenen PC, in allen anderen Fällen jedoch ein erheblicher Nachteil. ▼ Ein besonderer Nachteil ist die Notwendigkeit, veraltete Datenbank-Software auf jedem einzelnen PC zu installieren, meist auch noch in der gleichen Version. Änderungen der Oberfläche (z.B. neue oder geänderte Formulare) müssen manchmal auf jedem einzelnen PC ausgeführt werden. ▼ Darüber hinaus sind solche Programme an bestimmte Hersteller, Betriebssysteme oder Versionen gebunden. Das soll dem Hersteller über lange Zeiträume ein gutes Geschäft garantieren, ist aber in heutigen heterogenen Netzwerken untragbar. |
|
▲
Moderne Datenbank-Lösungen verwenden für die Verwaltung der Daten ausnahmslos
zentrale Server-Software. Die Verwaltung und Bedienung erfolgt mit SQL-Befehlen dezentral
über ein Netzwerk. Bei Verwendung von Standard-SQL ist die Lösung vom Hersteller
des DB-Servers unabhängig. ▲ Die Bedienung erfolgt ausschließlich auf dynamischen Webseiten. Damit ist die Lösung von Betriebssystemen, Versionen und Herstellern unabhängig, und auf jedem gewünschten PC sofort, ohne spezielle Software und ohne Aufwand für die Installation verfügbar. ▲ Änderungen an der Lösung werden nur einmalig zentral (am Server) ausgeführt und sind unmittelbar danach auf allen PC verfügbar - ohne irgendeinen zusätzlichen Aufwand. Auf neu dazukommenden PC ist eine zentrale Lösung sofort ohne Installation verfügbar. ▲ Der Zugang wird strikt aber einfach mit Passwort geregelt und ist daher an die Person gebunden, unabhängig vom Arbeitsplatz. ▼ Die manuelle Programmierung zentraler Lösungen 'nach Bedarf' erfordert bedeutend mehr Aufwand als die lokaler Kleinst-Lösungen. Das wird allerdings durch moderne Software zur halbautomatischen Herstellung dynamischer Webseiten (Formular-Generatoren) weitgehend wettgemacht. Außerdem muss man ähnliche Dimensionen vergleichen: Komplexe (Server)-Lösungen erfordern zwar einigen Entwicklungs-Aufwand, würden aber mit veralteter DB-Software einen noch wesentlich (unvertretbar) höheren Aufwand zu erfordern. |
▲
Diese und einige andere Argumente führen dazu, dass professionelle Lösungen
laufend von speziellen DB-Programmen auf Standard SQL-Server übersiedelt werden. ► Eine derartige Migration muss mit einem längeren Vorlauf an Zeit sorgfältig geplant, vorbereitet und getestet werden. ► Die Migration erfordert die Einrichtung der Datenbank-Struktur auf einem SQL-Server, die Übersiedlung einer kompletten Kopie aller Daten sowie die Erstellung der gesamten Bedienungs-Oberfläche auf einem Webserver. ► Der Zeitbedarf für die Migration steigt naturgemäß mit der Komplexität der Lösung, ist jedoch vom Umfang der Daten weitgehend unabhängig. Der Aufwand wird umso teurer, je länger man mit der Umstellung wartet, da die Komplexität aller realen Lösungen laufend zunimmt. ▲ Die Migration auf eine moderne Lösung macht eine Organisation unabhängig von einzelnen Herstellern und ihrer Produkt-Politik. Man kann danach Monopol-Produkte verwenden, ist jedoch darauf nicht angewiesen. ♦ Details zu diesem Thema auf der Seite SQL-Dump & Text-Export. |