ADMIN

2022

12

2022-11-29T12:00:00

Clientmanagement und Support

PRAXIS

036

Datenbankmanagement

Verwaltungstool

Multi-Datenbankmanagement mit HeidiSQL

Deine Welt sind die Datenberge

Veröffentlicht in Ausgabe 12/2022 - PRAXIS

Ohne Datenbanken stehen Onlineshops, ERP- und CRM-Systeme oder auch Content-Managementsysteme still. Doch wenn in solchen Unternehmensanwendungen unter der Haube unterschiedliche Datenbanken arbeiten, wird deren Verwaltung komplex und nicht selten benötigt jede DB einen eigenen Client für das Management. Doch mit dem freien HeidiSQL vereinheitlicht sich die Verwaltung gängiger Datenbanksysteme.

Administratoren können ein Lied von unterschiedlichen Datenbanksystemen singen, die verschiedene administrative Werkzeuge benötigen. Und mit jeder neuen Unternehmensanwendung kommt eine neue DB samt eigenem Verwaltungstool hinzu. Mit HeidiSQL [1] existiert eine Anwendung, die das Management von SQL-Datenbanken deutlich vereinfacht.
Das kostenlose, Windows-basierte HeidiSQL von Ansgar Becker beherrscht die Administration von MySQL, Microsoft SQL Server, PostgreSQL, SQlite und MariaDB. Die Anbindung an Firebird- und Interbase-Datenbanken befindet sich in der experimentellen Phase. Dank der einheitlichen Sicht auf bestehende Datenbankinstallationen vereinfacht sich deren Administration. HeidiSQL unterliegt der GPL und ist als Installer- und Portable-Version für Windows 8 und 10 verfügbar. Über GitHub [2] stehen auch Python- und Java-Script-basierte Klone des in Delphi programmierten Clients bereit.
 Zum DB-Management stellt HeidiSQL als Datenbank-Client einen Session Manager bereit, mit dessen Hilfe Sie die Verbindungseinstellungen zu lokalen Datenbankinstallationen und Remote-Systemen verwalten.
Administratoren können ein Lied von unterschiedlichen Datenbanksystemen singen, die verschiedene administrative Werkzeuge benötigen. Und mit jeder neuen Unternehmensanwendung kommt eine neue DB samt eigenem Verwaltungstool hinzu. Mit HeidiSQL [1] existiert eine Anwendung, die das Management von SQL-Datenbanken deutlich vereinfacht.
Das kostenlose, Windows-basierte HeidiSQL von Ansgar Becker beherrscht die Administration von MySQL, Microsoft SQL Server, PostgreSQL, SQlite und MariaDB. Die Anbindung an Firebird- und Interbase-Datenbanken befindet sich in der experimentellen Phase. Dank der einheitlichen Sicht auf bestehende Datenbankinstallationen vereinfacht sich deren Administration. HeidiSQL unterliegt der GPL und ist als Installer- und Portable-Version für Windows 8 und 10 verfügbar. Über GitHub [2] stehen auch Python- und Java-Script-basierte Klone des in Delphi programmierten Clients bereit.
 Zum DB-Management stellt HeidiSQL als Datenbank-Client einen Session Manager bereit, mit dessen Hilfe Sie die Verbindungseinstellungen zu lokalen Datenbankinstallationen und Remote-Systemen verwalten.
Wenn Sie sich für die Installer-Varianten entscheiden, meldet sich nach dem Start der Verbindungsmanager, mit dem Sie eine erste Datenbankverbindung anlegen. Alternativ können Sie bestehende Verbindungskonfigurationen importieren. Mit "Neu" erstellen Sie eine erste Konfiguration. Dabei bestimmen Sie im Verbindungsmanager auf der Registerkarte "Einstellungen" den Verbindungstyp (Datenbanktyp samt Verbindungsprotokoll) und gegebenenfalls die zu verwendende Library. Für den Verbindungsaufbau sind außerdem der Hostname beziehungsweise die IP-Adresse sowie die Zugangsdaten notwendig. Hier passen Sie auch gegebenenfalls den Port an und legen fest, dass die Client-Server-Kommunikation komprimiert vonstattengeht. Wollen Sie spezifische Datenbanken öffnen, geben Sie diese im Eingabefeld "Datenbanken" durch Strichpunkt getrennt an.
Aus der Registerkarte "Erweitert" können Sie ein Autoskript spezifizieren und beispielsweise die durchgeführten Datenbankabfragen in eine Datei schreiben. Um die Verbindungsabsicherung der SSL zu aktivieren, wechseln Sie zur gleichnamigen Registerkarte und hinterlegen dort die Verschlüsselungsinformationen.
Sollten Sie auf einen MariaDB-, MySQL- oder PostgreSQL-Server per SSH zugreifen wollen, ist auch das möglich. Dazu benötigen Sie auf dem HeidiSQL-System eine PuTTY-Installation. Zunächst wählen Sie im Verbindungstyp den betreffenden Servertyp samt Zugriffsprotokoll, zum Beispiel die Option "MariaDB or MySQL (SSH tunnel)". Der Verbindungsmanager öffnet daraufhin die zusätzliche Registerkarte "SSH Tunnel". Hier hinterlegen Sie den Pfad zur Datei "plink.exe" aus dem PuTTY-Paket und die SSH- sowie die Datenbank-Credentials. Mit einem Klick auf "Öffnen" stellen Sie die Datenbankverbindung her. Arbeiten Sie mit Windows 10/11, können Sie für den Tunnelaufbau alternativ auf den integrierten SSH-Client zurückgreifen.
Erste Datenbanken und Tabellen anlegen
Sobald die Verbindung zu einem Datenbankserver hergestellt ist, präsentiert HeidiSQL Ihnen die für Datenbankmanager typische Schnittstelle. Haben Sie bereits mit dem MS SQL Management Studio oder phpMyAdmin gearbeitet, finden Sie sich schnell zurecht. Links präsentiert Ihnen die Software den Datenbankbaum, rechts die Daten- und Abfrageansichten. Im unteren GUI-Bereich finden Sie die ausgeführten SQL-Befehle, was Ihnen bei Bedarf erlaubt, diese zu verifizieren. Wenn Sie mit einer großen Zahl von Tabellen, Ansichten, Prozeduren, Funktionen oder Trigger arbeiten, bietet es sich an, diese mit einem Rechtsklick in die Baumansicht mit dem Befehl "Optionen für Baumansicht / Elemente nach Typ gruppieren" zusammenzufassen.
Da in der Regel immer wieder identische Datenbankobjekte zum Einsatz kommen, erleichtert es Ihre Arbeit, wenn Sie relevante Einträge als Favoriten markieren. Dazu klicken Sie links neben die Objektbezeichnung in die Favoritenspalte. Nach einem anschließenden Klick auf das Stern-Symbol in der Symbolleiste blendet das Tool nur noch die wichtigen Objekte ein.
Um eine erste eigene Datenbank anzulegen, müssen Sie zunächst über die notwendigen Berechtigungen auf Seiten des Datenbankservers sorgen. Sie können mithilfe der HeidiSQL-Benutzerverwaltung die Berechtigungen entsprechend setzen. Zum Anlegen einer ersten Datenbank markieren Sie den Datenbankservereintrag mit einem Rechtsklick und führen den Befehl "Neu / Datenbank" aus. Im zugehörigen Dialog geben Sie eine Bezeichnung an, passen gegebenenfalls die Kollation an und bestätigen die Erstellung.
Bild 1: Mithilfe des Verbindungsmanagers verwalten Sie die Datenbankverbindungen.
HeidiSQL stellt Ihnen eine hochfunktionale GUI zur Verfügung, mit der das Erstellen von Tabellen ebenso einfach vonstattengeht. Klicken Sie auf den zuvor angelegten Datenbankeintrag und wählen Sie "Neue erstellen / Tabelle". In diesem Beispiel legen wir eine einfache Tabelle für die Verwaltung von Mitarbeitern an. Dazu bezeichnen wir die Tabelle, legen unter "Spalten" die gewünschten Spalten an und weisen diesen die geeigneten Datentypen, Längen et cetera zu. Mit dem Anlegen eines ersten Spalteneintrags lässt sich die Tabelle speichern. Auf der Registerkarte "CREATE code" können Sie den SQL-Code der Tabellenkonfiguration einsehen.
Wenn Sie bereits bei der Datenbankerstellung wissen, dass Sie später nach Inhalten einer Spalte suchen werden, sollten Sie einen Index erstellen. Auch das ist aus der Editoransicht heraus möglich: Führen Sie einen Rechtsklick in den betreffenden Spalteneintrag aus und bestimmen mit "Neuer Index" den Index-Typ. SQL kennt bekanntermaßen die Typen "PRIMARY", "KEY", "UNIQUE", "FULLTEXT" und "SPARTIAL".
Eine weitere wichtige Funktion ist das View-Feature. Eine Ansicht (View) ist nichts anderes als eine unter einer Bezeichnung gespeicherten SELECT-Abfrage. Um eine Ansicht für die Tabelle zu generieren, markieren Sie die Tabelle in der Baumansicht mit einem Rechtsklick und führen den Befehl "Neu erstellen / View" aus.
Bild 2: Die Verbindung zum Datenbankserver steht und HeidiSQL präsentiert diese im Interface.
Mit SQL arbeiten
HeidiSQL bieten Ihnen verschiedene Möglichkeiten zur Ausführung von SQL-Befehlen. Der Abfragedialog ist dabei das zentrale Werkzeug. Die Software unterstützt mit Stored Procedures (gespeicherte Prozedur) ein bewährtes Instrument, um eine ganze Abfolge von Anweisungen von Seiten des Datenbankclients auszuführen. Die gewünschten Befehle werden dabei in einer eigenen Prozedur hinterlegt und lassen sich bei Bedarf aufrufen und ausführen.
Das Anlegen einer Stored Procedure ist – wie das meiste in HeidiSQL – einfach: Führen Sie den Befehl "Neu erstellen" aus und wählen Sie "Gespeicherte Prozedur" oder "Gespeicherte Funktion". Prozedur und Funktion unterscheiden sich darin, ob ein Rückgabewert ausgegeben wird oder nicht. Weisen Sie der Prozedur die gewünschten Befehle zu und speichern Sie diese. Anschließend ist es Ihnen möglich, diese über das Untermenü "Prozeduren" aufzurufen. In eine ähnliche Richtung zielt die Trigger-Funktion. Damit können Sie beispielsweise eine Fehlermeldung ausgeben, falls eine unerlaubte Datumseingabe erfolgt. Eine weitere Besonderheit von HeidiSQL ist die Funktion "Ereignis", mit der Sie Events zeitlich steuern.
Der Foreign Key (Fremdschlüssel) ist ein bedeutendes SQL-Werkzeug, mit dem Sie zwei Tabellen verknüpfen. So erzeugen Sie Verweise von einer oder mehreren Spalten einer Tabelle auf Spalten einer anderen Tabelle mit einem Primärschlüsselwert. Diese Spalte wird zum Fremdschlüssel der zweiten Tabelle. Im Falle der Mitarbeitertabelle ist beispielsweise eine Verknüpfung zur Tabelle "Abteilung" denkbar. Zur Umsetzung in HeidiSQL müssen Sie zunächst die beiden Tabellen anlegen. Nach dem Festlegen des "Primary Key" wechseln Sie zur Registerkarte "Fremdschlüssel" und nehmen die Zuweisung mit einem Klick auf "Neu" vor. Dazu ist insbesondere die Angabe der gewünschten Spalten, der Referenztabelle und der Fremdspalte notwendig. Sollte es bei der Zuweisung zu Unstimmigkeiten kommen, weil die Spalten beispielsweise unterschiedliche Datentypen verwenden, gibt HeidiSQL eine entsprechende Warnung aus.
Ein weiteres Highlight ist die Funktion "Reformat SQL". Sie leistet dann gute Dienste, wenn Sie von Dritten eine unlesbare SQL-Abfrage erhalten und sich daran machen, die Logik zu erarbeiten. In diesem Fall können Sie HeidiSQL für die Neuformatierung verwenden. Im Idealfall ist der Code-Baustein nach dem Reformat wieder lesbar. Dazu markieren Sie den gewünschten Block und klicken auf das Pinsel-Symbol in der Hauptsymbolleiste.
Um die SQL-Abfragen auszuführen, verwenden Sie die Registerkarte "Abfrage". Bei Bedarf können Sie mit der Tastenkombination "Strg+T" eine weitere Registerkarte öffnen. Alternativ klicken Sie auf das Symbol "Öffnet einen leeren Abfragen Tab". Zusammengesetzte Abfragen verwenden häufig ein Semikolon, doch da HeidiSQL Abfragen bei jedem Semikolon trennt, kommt es zu einem Syntaxfehler. Stattdessen sollten Sie ein anderes Abfragetrennzeichnen ("!!") verwenden. Diese Konfiguration ändern Sie mit einem Klick auf das Semikolon-Symbol der Hauptsymbolleiste.
Bei der Entwicklung von SQL-Abfragen leisten die sogenannten Query-Helper-Funktionen, die Sie im Abfragedialog rechts finden, wertvolle Hilfe. Dort haben Sie Zugriff auf SQL-Funktionen, SQL-Schlüsselwörter und Code-Schnipsel. Außerdem erreichen Sie hier die Spalten und die Query-History. Um für eine Tabellenspalte eine Abfrage zu generieren, markieren Sie die gewünschte Tabelle, öffnen im Helper-Bereich den Eintrag "Spalten", wählen die betreffende Spalte und führen mit einem Rechtsklick den Befehl "Select generieren" aus. Alternativ nutzen Sie die Befehle "Insert", "Update" und "Delete".
Durch das Aktivieren der Option "Abfrageprofil" im Helferfeld gelangen Sie an die Profiling-Informationen. Dahinter verbirgt sich das "Show Profile"-Statement von MySQL, das die Ressourcennutzung für Anweisungen angibt. Außerdem unterstützt HeidiSQL parametrisierte SQL-Abfragen. Dazu aktivieren Sie die Checkbox "Bind Parameter".
Bild 3: Die erste Tabelle samt Spaltenkonfiguration entsteht.
Daten verwalten
Um die Tabelle mit ersten Daten zu füttern, wechseln Sie zur Registerkarte "Daten" und beginnen mit der Dateneingabe. Im Unterschied zu Werkzeugen wie phpMyAdmin gehen typische Aufgaben intuitiver von der Hand. Um einen Tabelleneintrag zu bearbeiten, markieren Sie diesen mit einem Doppelklick und nehmen die gewünschten Änderungen vor. Gleiches gilt auch für Anpassungen der Spaltenansicht. Mit einem Rechtsklick in die Kopfzeile fügen Sie bequem weitere Spalten hin, blenden nicht relevante Bereiche aus oder passen die Spaltenbreite optimal an.
Die Arbeit mit Daten vereinfacht sich auch deshalb, weil HeidiSQL unterschiedlichen Datentypen verschiedenfarbig markiert. Sollten Ihnen die Standardeinstellungen nicht zusagen, können Sie diese Einstellungen über das Menü "Werkzeuge / Einstellungen" auf der Registerkarte "Datenansicht" anpassen. Um in den Editiermodus zu wechseln, betätigen Sie die Funktionstaste "F2" oder führen einen langen Klick in eine Zelle aus.
Um spezielle Werte in einer Tabelle einzufügen, führen Sie einen Rechtsklick in eine Zelle aus und wählen "Spezielle Wert einfügen". HeidiSQL erlaubt Ihnen das Einfügen von Null, verschiedenen Datumskonfigurationen, GUIDs und SQL-Funktionen. Die Arbeit mit Datenbanken gestaltet sich durch Funktionen wie den Quick-Filter intuitiv, der ebenfalls über das Pop-up-Menü der rechten Maustaste verfügbar ist. Diese Funktion erlaubt Ihnen insbesondere das Anlegen von "Where"-Klauseln. Der Schnellfilter sammelt in seinem Untermenü "Weitere Werte" die dreißig am häufigsten verwendeten Elemente.
Neben der Dateneingabe und deren Bearbeitung zählt die Suche von spezifischen Werten zu einer der zentralen Aufgaben. Hierfür stellt Ihnen der Datenbankclient verschiedene Such- und Filterfunktionen zur Verfügung. Um Inhalte in der aktuellen Tabelle zu filtern, führen Sie den Befehl "Bearbeiten / Filterbereich" beziehungsweise die Tastenkombination "Strg + Alt + F" aus. Im Filterbereich verwenden Sie einen regulären Ausdruck.
HeidiSQL kann Sie auch mit einem Suchen-und-Ersetzen-Dialog unterstützen. Den Suchmodus aktivieren Sie mit "Strg + F", den Ersetzungsmodus mit "Strg + R". Sie können diesen Dialog auch auf SQL-Querys anwenden. Das Suchen und Ersetzen ist im SQL-Editor und in der Datenansicht möglich. Der zugehörige Dialog entspricht grundsätzlich dem, was Sie von anderen Editoren kennen: Sie bestimmen den Such- und Ersetzungstext. Außerdem können Sie verschiedene Optionen wie die Groß- und Kleinschreibung sowie reguläre Ausdrücke verwenden.
Bei der Arbeit mit Datenbankdaten treten auch immer mal wieder binäre Daten, die sogenannten BLOBs (Binary Large Object), zu Tage. Diese Informationen zeigen sich standardmäßig im hexadezimalen Format, doch damit kann kaum jemand etwas anfangen. HeidiSQL erlaubt Ihnen, zwischen dem Hex- und Text-Modus umzuschalten. Dazu klicken Sie auf die Schaltfläche "Binärdaten als Text anzeigen", die an den Nullen und Einsen zu erkennen ist.
Bild 4: In den Programmeinstellungen lässt sich der Editor anpassen.
Daten im- und exportieren
In der Regel haben Sie es mit bereits existierenden Daten zu tun oder wollen Daten auf Drittsystemen nutzen. Für diesen Aufgabenbereich stellt Ihnen HeidiSQL spezielle Import- und Exportfunktionen zur Verfügung. Um Daten in eine neu in HeidiSQL angelegte Datenbank zu importieren, markieren Sie diese und klicken mit der rechten Maustaste in das Abfragefenster. Dort führen Sie den Befehl "SQL-Datei laden" aus. Wählen Sie die gewünschte SQL-Datei aus und klicken Sie in der Symbolleiste auf das Symbol "SQL ausführen" (alternativ betätigen Sie "F9").
Ähnlich einfach gestaltet sich der Export: Dazu genügt ein Rechtsklick auf die gewünschte Datenbank beziehungsweise Tabelle. Bestimmen Sie in den Tabellenwerkzeugen das Ausgabeformat und die Zieldatei. Den Export führen Sie mit einem Klick auf "Exportieren" aus. In den Tabellenwertenansicht können Sie den Schreibvorgang verfolgen. Eine Erfolgsmeldung kommt zum Abschluss jedoch nicht zum Vorschein.
Neben dem Import von SQL-Dateien beherrscht HeidiSQL das Laden von CSV-, Text- und Binärdateien. Dies ist über das Menü "Werkzeuge" verfügbar. HeidiSQL unterstützt auch den SQL-Export: Dafür führen Sie den Befehl "Werkzeuge / Datenbank SQL Export" aus. Im zugehörigen Dialog bestimmen Sie neben der Zieldatei die Details des Exportvorgangs, der in verschiedenen Varianten möglich ist. Sie können nach SQL, in eine komprimierte SQL-Datei, in die Zwischenablage sowie in eine andere Datenbank auf dem gleichen Server oder einen Remote-Server exportieren.
HeidiSQL bietet neben den genannten noch eine Fülle weiterer nützlicher Funktionen. Manche erschließen sich von selbst, andere erschließen sich erst im Laufe der Zeit. Im "Werkzeug"-Menü finden Sie beispielsweise die Benutzerverwaltung, die Wartungsfunktion und die Programmeinstellungen. Mit dem sogenannten Massen-Tabellen-Editor bearbeiten Sie verschiedene Tabelle auf einen Schlag und verschieben diese beispielsweise in eine andere Datenbank.
Fazit
Mit HeidiSQL ist Ansgar Becker ein beachtliches Werkzeug gelungen, das Administratoren den Umgang mit unterschiedlichen Datenbanken vereinfacht. Hinsichtlich klassischer datenbankspezifischer Aufgaben bietet das Programm alle relevanten Funktionen.
Mancher Administrator wird Tools wie den Designer und die Datenbankrelationen vermissen, wie phpMyAdmin & Co. sie bieten. HeidiSQL ist sicherlich kein Werkzeug für SQL-Neulinge, sondern richtet sich an IT-Profis, die wissen, was sie tun.
(jp)
Link-Codes
[2] Klone des Clients: https://github.com/HeidiSQL/