|
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 Linux-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. |
LAMP
|
Standard-Server mit Linux - Apache - MySQL - PHP - Samba |
| Quellen | Bezugsquellen für den MySQL DB-Server |
| Win-MySQL | MySQL Datenbank Server auf einem Win (WAMP) - System |
|
||||
Linux-DistributionAlle gängigen Linux-Distributionen enthalten die MySQL-Version Community-Edition als Standard Datenbank Server. Bevor sie versuchen, den MySQL Server zu installieren, sollten sie feststellen, ob der Server bereits installiert ist oder sogar schon auf ihrem Linux-System läuft.Hinweise dazu finden sie im Kapitel Test. |
Das Werkzeug für Installation oder Konfiguration unterscheidet sich je nach Distribution. Auf SuSE-Linux installieren sie MySQL mit YAST | Software | Software installieren, danach Filter Produktivität | Datenbanken | Server und Produktivität | Datenbanken | Clients. Mindestens die Pakete mysql - Multiuser Multithreaded SQL Database Sserver und das Paket mysql-client sollten installiert werden. Normalerweise werden dazu auch der Apache Webserver, die beiden Programmiersprachen PHP und Perl und das Administrations-Paket phpMyAdmin installiert. |
|||
MySQL UpdateEin laufendes Linux-MySQL System stellt einen erheblichen Wert dar, den man nicht leichtfertig aufs Spiel setzt. Überlegen sie daher gut, ein verläßlich laufendes System durch eine neue Version zu ersetzen.Gute Distributoren bieten ein Update-Service an: Sie können installierte Pakete in ihrem Linux-System durch eine neue Version (z.B. von MySQL) ersetzen. Das ist relativ sicher, weil der Distributor die Integration in ihr System bereits vorbereitet und getestet hat. Compiler
Eine Variante für versierte EntwicklerInnen ist die Erstellung des gesamten
MySQL-Programms aus dem Quelltext (source). Alle Programmteile sind kostenlos und lizenzfrei
erhältlich. Jedes gängige Linux-System enthält das Entwicklungs-Werkzeug
(Compiler), um daraus das Server-Programm zu erstellen.
|
( Linux + MySQL )Je größer und wichtiger das System, je mehr Daten und User zu betreuen sind, desto höher sind die Anforderungen an einen Produktions-Server.In einem Arbeits-System muss das Ausfalls-Risiko minimiert werden, daher sind Updates laufender Systeme meistens ausgeschlossen. In diesem Fall wechseln sie die komplette Distribution, d.h. gleichzeitig auf eine neue Linux- und MySQL-Version (und einige andere Komponenten). Der Distributor garantiert die harmonische Zusammenarbeit von System und DB-Server. Selbst wenn nicht alle der hunderten oder tausenden Programme einer Linux-Distribution gleich gut getestet wurden - MySQL ist als Grundpfeiler jedes Linux-Systems sicher sorgfältig angepasst und getestet. Ein kompletter System-Wechsel stellt allerdings einen erheblichen Aufwand dar, der je nach Umfang einige Tage oder Wochen in Anspruch nimmt. Daten-SicherungSelbst dann, wenn die Doku von MySQL und / oder Linux-Distributor versprechen, vorhandene Daten sauber zu übernehmen, sollten sie vor einem Update unbedingt eine komplette ! Sicherung (dump) aller ! Daten vornehmen. |
|||
Installation von MySQL Datenbank Server auf Linux |
|
Software-Paket-VerwaltungJede gängige Linux-Distribution bietet eigene Werkzeug-Programme zur Verwaltung der umfangreichen mitgelieferten Software-Pakete.Diese Programme arbeiten unterschiedlich, je nach Hersteller und Version. Suchen sie nach einem oder mehreren Paketen namens "MySQL" und ordnen deren Installation an. Oft ist MySQL bereits installiert, manchmal auch gestartet. Hilfe dazu finden sie im Kapitel Test dieser Seite. Gute Verwaltungs-Software prüft die Abhängigkeiten der verlangten Pakete, macht sie auf eventuelle Kollisionen aufmerksam und installiert selbständig andere von der angeforderten Software benötigte Pakete. Hinweis: Die Paket-Namen unterliegen geringen Veränderungen, oft wird darin auch die Version codiert.
Apache,
PHP & Perl,
phpMyAdmin
Ordnen sie gleichzeitig auch die Installation von
Apache Webserver, der Programmiersprachen
PHP und Perl und des Verwaltungs-Programms
phpMyAdmin an.
(Pakete apache-mod_php, apache-mod_perl ).Die Programmiersprachen ermöglichen die Erstellung von dynamischen Webseiten. - Damit erfolgt der Zugriff auf die MySQL Datenbanken. phpMyAdmin ist das Standard Verwaltungs-Programm für den MYSQL Server, auch dafür wird PHP benötigt. ♦ Details zu Entwicklung und Anwendung von PHP und Perl. |
Auf SuSE-Linux starten sie mit YAST | Software |
Software installieren, danach Filter Produktivität | Datenbanken | Server. Mindestens die Pakete mysql - Multiuser Multithreaded SQL Database Sserver und das Paket mysql-client sollten installiert werden. MySQL-Module
Damit sie mit PHP und Perl mit dem MySQL-Server kommunizieren können, installieren
sie auch die PHP-Module mysql und mysqli
sowie die Perl-Module DBI und DBD-mysql
|
RPM-PaketeKomplette Programme oder Updates werden häufig als rpm-Pakete angeboten. Laden sie aus dem Internet nur solche Pakete, die ausdrücklich für ihre Linux-Distribution und -Version (!) bestimmt sind.Wenn sie bereits eine ältere MySQL-Version erfolgreich betreiben, dann müssen sie vor einem rpm-Update unbedingt alle Daten sichern (dump)! ► Die Installation selbst führen sie normalerweise als super-user ' root ' aus. Melden sie sich im Linux-Betriebssystem als root an und öffnen sie ein Konsolen-(shell)-Fenster br /> So installieren sie ein RPM-Paket: rpm -i /home/ich/neu/mysql_xyz.rpm
|
CompilerDie Installation eines selbst aus dem Quell-Code hergestellten Server-Programms ist nur für erfahrene EntwicklerInnen ratsam.Wenn sie noch nie ein Programm compiliert haben, dann üben sie das besser an einem einfacheren Beispiel als MySQL. |
Start & Stop von MySQL Server |
|
| Ein Dienstprogramm wie der MySQL Server läuft im Hintergrund und benötigt im normalen Betrieb keinerlei Wartung. Da es nach Systemstart automatisch startet und vor System-Stop automatisch 'heruntergefahren' (kontrolliert stufenweise abgeschaltet) wird, ist auch ein manueller Start und Stop überflüssig. |
Ausnahmen davon sind nur dann notwendig, wenn Änderungen in der Konfiguration von
MySQL vorgenommen wurden: Die Änderungen treten erst bei Neustart des Servers in Kraft. |
Vorsicht▼ Während der Betriebszeit (wenn noch User angemeldet sind) sollten niemals Änderungen vorgenommen werden, daher normalerweise auch kein Neustart erfolgen.► Nach Abmeldung aller User wird eine Sicherung aller betroffenen Daten vorgenommen, das bedeutet einen kompletten SQL-Dump aller Tabellen aus allen Datenbanken. ▲ Danach wird die Konfiguration geändert, der Server neu gestartet und sorgfältig getestet. |
|
Runlevel-EditorJede Linux-Distribution bietet ein Werkzeug zur Dienst-Verwaltung, mit welchem ein Dienstprogramm manuell angehalten und neu gestartet werden kann. |
Auf SuSE-Linux starten sie YAST | System | Runlevel Editor. ▲ Der MySQL Server sollte aktiviert sein, d.h. nach Systemstart automatisch starten. |
Runlevel► Linux unterscheidet nicht zwischen 'normalen' und Dienstprogrammen (services): Jedes (eigene) Programm kann auch als Dienst gestartet werden. Allerdings sollte es dann keine AnwenderInnen-Oberfläche haben, d.h. keine Fenster öffnen und 'keine Fragen stellen'.► Dienstprogramme werden durch Scripts in diesem Verzeichnis gesteuert: /etc/init.d
Hier sind Scripts zur Steuerung aller installierten Dienst-Programme vorhanden,
für MySQL z.B. das Script
/etc/init.d/mysql ► Jedes dieser Scripts akzeptiert normalerweise die Argumente status, start, stop und restart An dieser Stelle können sie Scripts zur Steuerung eigener Programme einfügen. |
► Weiters befinden sich hier eigene Verzeichnisse für jeden RunLevel, der nach dem System-Start erreicht wird. Apache wird notrmalerweise in RunLevel 5 gestartet, daher findet man im entsprechenden Verzeichnis diese Scripts
/etc/init.d/rc5.d/Sxxmysql /etc/init.d/rc5.d/Kxxmysql ► Je ein Script wird beim Hochfahren und Herunterfahren des Systems ausgelöst und sorgt für geordneten Start und Abschalten des jeweiligen Programms. Die Zahlen an Stelle von xx bestimmen die Reihenfolge der Auslösung innerhalb des RunLevels. ► Ändern sie nichts an diesen Scripts oder an ihren Namen ! Nach diesem Muster können sie Scripts zur Steuerung eigener Programme einfügen - sinnvoll mit der höchsten Nummer nach dem Einschalten und mit der ersten Nummer vor dem Abschalten. |
Konsolen-(shell)-ScriptsAuf Linux-Systemen haben Script-Programme eine zentrale Bedeutung. Ein Script-Programm zur Steuerung des MySQL-Servers finden sie (Varianten je nach System) meistens in diesem Pfad:/etc/init.d/mysql
Sie sollten dieses Script keinesfalls verändern !Verwendung in einem Konsolen-(shell)-Fenster: Linux:# /etc/init.d/mysql
▲ Eine praktische Möglichkeit ist die Herstellung eines SoftLinks. Er verhält sich auf Linux genauso wie die damit verknüpfte Original-Datei. Öffnen sie ein Konsolen-(Shell)-Fenster und verzweigen sie zu einem beliebigen Verzeichnis (hier zum privaten Verzeichnis von User ich )
cd /home/ich
Befehl ls erzeugt eine Liste aller Dateien im Verzeichnis,
darunter sollte sich nun der SoftLink mysql befinden.
ln -s /etc/init.d/mysql mysql ls |
▲ Verwendung des SoftLinks:
mysql status
Wenn der Befehl der 1. Zeile nicht funktioniert, dann liegt zu diesem Verzeichnis kein
Ausführungs-Pfad. Sie müssen in diesem Fall entweder die
Umgebungs-Variable path ergänzen oder den kompletten Pfad
(2. Zeile) eingeben. Die weiteren Zeilen zeigen die wichtigsten Optionen, welche das
Script bietet./home/ich/mysql status mysql start mysql stop mysql restart ▲ Die meisten Distributionen enthalten kleine Werkzeuge, mit denen sich Konsolen-(shell)-Programme auf Mausklick ausführen lassen, auf SuSE-Linux z.B. das Applet Bookmarks, das sie mit Rechtsklick in die Befehlszeile (am unteren Seitenrand) einfügen können. |
StatusWenn sie wissen wollen, ob der MySQL Server gerade läuft, dann gibt es dazu einige Möglichkeiten:● Verwendung eines Konsolen-Scripts (siehe Absatz oberhalb): mysql status
|
● Sie können den aktuellen Prozess-Status anzeigen:
ps -C mysqld_safe -F
Statt 1234 setzen sie ihre aktuelle PID ein.ps -p 1234 -F ● Anders als die meisten anderen Linux Dienstprogramme führt MySQL normalerweise keine Log-Dateien. Alle derartigen Daten werden - falls benötigt - natürlich in einer Datenbank gespeichert. |
| ● Mit dynamischen Webseiten, d.h. PHP- oder Perl-Scripts erhält man Auskunft über den MySQL-Server - Natürlich nur dann, wenn der Server auch läuft. | ♦ Details im Absatz Test dieser Seite und im Kapitel PHP-Umgebung dieses Webs. |
Test von MySQL DB-Server |
|
| Voraussetzung: MySQL DB-Server installiert und gestartet. | |
mysql Konsolen-(shell)-ProgrammDas Programm mysql dient als wichtigstes low-level Verwaltungs-Programm für den MySQL-Server. |
Öffnen sie ein (shell)-Konsolen-Fenster und starten sie das Programm
(erstmals nach MySQL-Installation)
mysql
Welcome to the mysql Monitor ... mysql> |
root PasswortUnmittelbar nach Installation ist am MySQL Server der user root angelegt, und zwar ohne Passwort. Daher muss als erste Arbeit mit dem mysql Monitor ein Passwort für den MySQL user root vergeben werden. Verwechseln sie den MySQL-user root nicht mit dem Linux user root !► Mit Befehl use wird die Datenbank mysql ausgewählt, in welcher die gesamte interne Verwaltung des MySQL Servers erfolgt. ► Befehl update ist ein Standard SQL Befehl. Ersetzen sie das Wort geheim durch ihr gewünschtes root-Passwort. Der Befehl setzt in die Spalte password der Tabelle user das codierte Passwort ein. ► Befehl flush setzt die geänderten Zugriffsrechte in Kraft. |
Vergabe eines root-Passworts:
mysql> use mysql;
mysql> update user set password=PASSWORD('geheim') where user='root'; mysql> flush privileges; mysql> quit ► Alle SQL Befehle werden mit ; abgeschlossen. Wenn sie das ; Zeichen vergessen, interpretiert das Programm ihre weitere Eingabe als Folge-Text des gleichen Befehls. Vorsicht - Es gibt keine Möglichkeit, ein vergessenes root-Passwort aus der Datenbank zu lesen ! Dokumentieren sie daher die Zugangs-Daten an anderer (sicherer) Stelle. |
|
mysql Monitor nach der ersten Einrichtung Wenn sie das root-Passwort erstmalig vergeben haben, dann ist die Anmeldung nur mehr mit Angabe von Name und Passwort möglich. Nach Option -u (user) folgt unmittelbar der user-Name, nach Option -p das Passwort. |
Standard-Anmeldung beim mysql Monitor:
mysql -uroot -pgeheim
mysql> |
Status► Mit Option \s erhalten sie umfangreiche Status-Informationen über den MySQL Server.► Mit Befehl show status wird eine Liste von Informationen angezeigt. ► Befehl show processlist zeigt eine Liste aller laufenden MySQL-Prozesse, das umfasst mindestens die laufende anfrage von user root. |
mysql> \s
mysql> show status; mysql> show processlist; |
Datenbanken und Tabellen► Mit Befehl show databases wird eine Liste aller verwalteten Datenbanken angezeigt.► Mit Befehl use wird eine Datenbank zur weiteren Bearbeitung ausgewählt. Alle folgenden SQL-Befehle werden auf diese DB angewendet. Verwenden sie für Experimente stets die DB test ► Mit Befehl show tables wird eine Liste aller Tabellen der ausgewählten Datenbank angezeigt, mit show table status eine Liste von Status-Informationen über die Tabellen. ► Mit Befehl show columns wird eine Liste aller Spalten einer Tabelle (hier personen ) angezeigt, Befehl describe liefert ähnliche Informationen. |
mysql> show databases; mysql> use test; mysql> show tables; mysql> show table status; mysql> show columns from personen; mysql> describe personen; Vorsicht - Datenbank mysql steuert den Zugang zum MySQL Server. Ändern sie dort keine Daten, jedenfalls nicht ohne sorgfältige Überlegung. Wenn sie sich nicht mehr als root anmelden können, gibt es keine Möglichkeit mehr, den Server zu verwalten. Im schlimmsten Fall (keine Dump-Sicherung) sind dann alle Daten verloren ! |
SQL-BefehleMit dem mysql Monitor können sie alle zulässigen SQL Befehle direkt auf der Konsole eingeben.► Wenn eine Zeile für lange Befehle nicht ausreicht, dann können sie nach einem return fortsetzen. Erst das Zeichen ; schließt den SQL-Befehl ab. ► Komplexe Befehle oder ganze Listen von Befehlen schreibt man besser mit einem beliebigen Editor in eine Text-Datei *.sql Solche Dateien werden mit Befehl source aufgerufen und zeilenweise ausgeführt. |
mysql> select * from personen
-> order by zuname; mysql> source /home/ich/test.sql; |
|
●
Mit dynamischen Webseiten, d.h. PHP- oder Perl-Scripts erhält man Auskunft über den
MySQL-Server - wenn er läuft. Die hier vorgestellten Funktionen sind in den PHP-Modulen mysql und mysqli (in etwas anderer Form) enthalten. ♦ Details im Kapitel PHP-Umgebung dieses Webs. |
<?php
print mysql_get_server_info(); print mysql_get_host_info(); print mysql_get_client_info(); ?> |
| ● Normalerweise erfolgt der Zugriff auf MySQL-Datenbanken mit Hilfe dynamischer Webseiten, d.h. von PHP- oder Perl Script-Programmen. Die entsprechenden Funktionen ergeben Fehler, wenn der MySQL-Server nicht ansprechbar ist. |
Wenn der Zugriff funktioniert, werden normale SQL-Anfragen (select ...) ausgeführt
und die Ergebnisse angezeigt. Auftretende Fehler kann man abfangen und zur Anzeige einer Fehler-Seite verwenden (Keine Verbindung zum MySQL-Server ...). |
MySQL Konfiguration und Verwaltung |
|
|
my.cnf
Die Konfiguration des MySQL Servers erfolgt - wie auf Linux üblich - mit Hilfe der
Text-Datei
/etc/my.cnf
|
Allerdings spielt diese Methode eine untergeordnete Rolle. Die Anweisungen werden nach Installation nur selten geändert: Verbindungs-Methode, Port (Standard 3306), maximale Paket-Größe, Speicher-Verbrauch, etc. |
Datenbank mysqlDiese Datenbank (DB) steuert die Zugriffsrechte für den gesamten MySQL Server und wird gleichzeitig am Server verwaltet.Konsultieren sie die umfangreiche Dokumentation über diese DB. Vorsicht - Ändern sie dort keine Daten, jedenfalls nicht ohne sorgfältige Überlegung. |
Der Zugang zur Datenbank mysql erfolgt meist über die (shell)-Konsole (siehe unten) oder über das Verwaltungs-Programm phpMyAdmin. Verwalten sie diese DB keinesfalls mit 'gewöhnlichen' dynamischen Webseiten, das Sicherheits-Risiko wäre zu groß. |
mysql MonitorDieses Konsolen-(shell)-Programm erlaubt es, beliebige SQL-Befehle auszuführen.Damit ist natürlich auch der Zugang zur Datenbank mysql möglich. |
Allerdings ist bei manueller Eingabe das Risiko von Tippfehlern unangenehm hoch. Deshalb ist es empfehlenswert, die Befehle zuerst in einer Text-Datei *.sql zu erstellen, und danach mit dem mysql-Monitor (Befehl source ) auszuführen. |
| Dieses PHP-Programm hat sich im Laufe der Zeit zum Standard Verwaltungs-Programm für MySQL entwickelt. Es bietet komfortable Funktionen zur Verwaltung aller Datenbanken, inklusive der DB mysql | Als Voraussetzung muss ein Webserver (Apache) und PHP installiert sein - Das ist allerdings auf allen LAMP und WAMP-Standard Servern der Fall. ♦ Details zum Thema phpMyAdmin |
|
▲
Mit phpMyAdmin ist auch die Fern-Verwaltung von MySQL Servern über das lokale Netzwerk
(LAN) oder über das Internet möglich. Deshalb haben viele Web-Provider phpMyAdmin zur (Fern)-Wartung von MySQL-Datenbanken installiert. |
▲
phpMyAdmin erlaubt auch die Verwaltung mehrerer MySQL-Server an unterschiedlichen
Internet-(IP)-Adressen. In diesem Fall müssen sie Firewalls bzw. Proxy / Router so konfigurieren, dass die Kommunikation über Port 3306 zugelassen wird. |
->