MySQL ist ein SQL-Datenbankverwaltungssystem der schwedischen Firma MySQL AB. MySQL ist als Open-Source-Software für verschiedene Betriebssysteme verfügbar und bietet damit die Grundlage vieler Webauftritte.
Was ist MySQL
MySQL ist eine freie Software und steht seit einiger Zeit unter der GPL und einer kommerziellen Lizenz (Duales Lizenzsystem) zur Verfügung. Es gehört zu den am weitesten verbreiteten Open-Source-Programmen.
Neben den meisten Unix-Varianten, Mac OS X und Linux läuft MySQL auch auf Windows und OS/2 (nur Version 3.x) und vielen weiteren Betriebssystemen. MySQL wird sehr häufig zusammen mit dem Webserver Apache und PHP eingesetzt (diese Kombination wird oft als LAMP bzw. WAMP bezeichnet), wird aber auch in vielen kommerziellen Anwendungen verwendet; dann in der Regel unter der kommerziellen Lizenz, auch in der Variante als embedded Server.
MySQL bietet eine im Bereich der DBMS einzigartige Möglichkeit: es erlaubt die Verwendung von verschiedenen Tabellentypen (Engines, zum Beispiel MyISAM, InnoDB, Berkeley DB, Memory, NDB und weitere); man kann sogar seine eigene Engine einbinden. Die einzelnen Tabellentypen bieten unterschiedliche Möglichkeiten: mit und ohne Transaktionen, mit und ohne permanente Speicherung, mit und ohne Stored Procedures, mit synchroner oder asynchroner Replikation usw.
MySQL unterstützt beliebig viele Datenbanken; in jeder Datenbank beliebig viele Tabellen beliebiger Größe – die Beliebigkeit ist nur vom Betriebssystem beschränkt. Die Tabellen in einer Datenbank können vom Typ her beliebig gemischt sein, Anfragen können sich auf Tabellen unterschiedlichen Typs und unterschiedlicher Datenbanken beziehen, sogar auf verschiedenen Maschinen.
Die Möglichkeit, unterschiedliche Tabellentypen beliebig zu verwenden, macht MySQL zu einem vielseitigen RDBMS, das sich hervorragend an das jeweilige Anforderungsprofil anpassen kann. Besonderer Beliebtheit erfreut sich MySQL im Bereich von Webservern, da es hier in der Regel unter der freien Lizenz eingesetzt werden kann, was insbesondere für Provider verlockend ist.
Das robuste Replikationssystem, das seit der frühen Version 3.23.xx entwickelt wird, ermöglicht eine extreme Skalierung. Bekannte Webdienste setzen auf diese Weise Hunderte von MySQL-Servern ein und können damit (in Verbindung mit anderen Techniken, zum Beispiel Squid als reverse Proxy) beliebige Lasten bedienen.
Was der Coder wissen sollte
Zur Verwaltung von MySQL-Datenbanken dient der mitgelieferte Kommandozeilen-Client (Kommandos mysql und mysqladmin).
Eine weit verbreitete Alternative ist die in der Skriptsprache PHP geschriebene Open-Source-Anwendung phpMyAdmin?. Die grafische Benutzeroberfläche lässt sich komplett über einen Browser bedienen. Man kann damit beliebig viele Datenbanken auf beliebig vielen Maschinen von jedem beliebigen Arbeitsplatz verwalten. Alternativ hierzu kann bei lokalen Datenbanken auch das Gespann von MySQL Administrator und MySQL Query Browser von MySQL AB verwendet werden.
Zum Erstellen von Sicherungskopien der Datenbestände eignet sich, falls man keine Möglichkeit zur Verwendung von Cron-Jobs hat, besonders phpMyBackupPro?. Mit der ebenfalls in PHP geschriebenen und somit vom Betriebssystem unabhängigen Open-Source-Anwendung lassen sich Cronjobs sowie Pseudo-Cronjobs erstellen, über die MySQL-Datenbanken (auch per E-Mail) in regelmäßigen Zeitabständen gesichert werden können.
Für ein unterbrechungsfreies System bietet sich die Master/Slave-Replikation an, wobei die Datensicherung auf dem Slave durchgeführt wird.