Inhaltsverzeichnis
phpMyAdmin
phpMyAdmin ist eine webbasierte Benutzeroberfläche zur Verwaltung von MySQL- und MariaDB-Datenbanken.
In meiner lokalen Entwicklungsumgebung wird phpMyAdmin zusammen mit XAMPP verwendet.
Es eignet sich insbesondere zum Anzeigen und Kontrollieren von Datenbanken, Tabellen, Datensätzen, Benutzerrechten und SQL-Abfragen.
Aufruf unter XAMPP
Nach dem Start von Apache und MariaDB kann phpMyAdmin normalerweise im Browser aufgerufen werden:
http://localhost/phpmyadmin/
phpMyAdmin selbst ist keine Datenbank.
Es stellt lediglich eine grafische Oberfläche für den Zugriff auf MySQL bzw. MariaDB bereit.
Grundaufbau
Die Oberfläche besteht im Wesentlichen aus:
- Serverübersicht
- Datenbankliste
- Tabellenübersicht
- Strukturansicht
- Datenansicht
- SQL-Eingabe
- Import und Export
- Benutzerkonten und Berechtigungen
Nach Auswahl einer Datenbank werden deren Tabellen und weitere Eigenschaften angezeigt.
Datenbanken anzeigen
In der linken Navigation werden die verfügbaren Datenbanken angezeigt.
Nach Auswahl einer Datenbank können unter anderem betrachtet werden:
- Tabellen
- Spalten
- Indizes
- Fremdschlüssel
- Datensätze
- Zeichensatz und Kollation
Bei RoWaBase ist insbesondere die Datenbank:
rowabase
relevant.
Tabellenstruktur kontrollieren
Über den Bereich Struktur kann geprüft werden, welche Spalten eine Tabelle besitzt.
Angezeigt werden beispielsweise:
- Spaltenname
- Datentyp
- NULL-Eigenschaft
- Standardwert
- Index
- Auto Increment
Das ist hilfreich, um nach einer Laravel-Migration zu kontrollieren, ob die erwartete Tabellenstruktur tatsächlich vorhanden ist.
Datensätze anzeigen
Über Anzeigen können die gespeicherten Datensätze einer Tabelle betrachtet werden.
Dies eignet sich beispielsweise zur Kontrolle von Testdaten, die über Laravel Tinker erzeugt wurden.
Beispiel:
php artisan tinker
Ein dort gespeicherter Datensatz kann anschließend in phpMyAdmin kontrolliert werden.
SQL-Abfragen
phpMyAdmin besitzt einen eigenen Bereich SQL.
Dort können SQL-Anweisungen direkt ausgeführt werden.
Beispiel:
SELECT * FROM geschaeftspartner;
Oder:
SELECT * FROM objekte ORDER BY id;
Direkte SQL-Abfragen sind besonders für Kontrollen und gezielte Auswertungen hilfreich.
Vorsicht bei direkten Änderungen
phpMyAdmin erlaubt auch direkte Änderungen an Tabellen und Datenbankstrukturen.
Dazu gehören beispielsweise:
- Spalten hinzufügen
- Spalten löschen
- Tabellen löschen
- Indizes verändern
- Datentypen ändern
Bei Projekten wie RoWaBase sollten Änderungen an der Datenbankstruktur jedoch grundsätzlich nicht direkt über phpMyAdmin durchgeführt werden.
Stattdessen werden Laravel-Migrationen verwendet.
Beispiel:
php artisan make:migration update_geschaeftspartner_grunddaten --table=geschaeftspartner
Anschließend:
php artisan migrate --database=mysql_migration --pretend
und nach der Kontrolle:
php artisan migrate --database=mysql_migration
Dadurch bleiben Strukturänderungen nachvollziehbar und Bestandteil des Projektstands.
phpMyAdmin als Kontrollwerkzeug
Für RoWaBase gilt deshalb grundsätzlich:
Laravel verändert die Datenbankstruktur.
phpMyAdmin dient hauptsächlich zum Ansehen, Prüfen und Analysieren der Datenbank.
Damit vermeiden wir, dass die tatsächliche Datenbankstruktur von den Laravel-Migrationen abweicht.
Datenbankbenutzer
MariaDB kann unterschiedliche Benutzer mit unterschiedlichen Berechtigungen verwenden.
Bei RoWaBase werden die Aufgaben bewusst getrennt.
Beispielsweise:
rowabase_app
für den normalen Anwendungszugriff und eine separate Datenbankverbindung für Migrationen.
Die Anwendung benötigt dadurch nicht automatisch Berechtigungen zum Erstellen, Löschen oder Verändern von Tabellen.
phpMyAdmin kann zur Kontrolle der vorhandenen Benutzer und Berechtigungen verwendet werden.
Benutzerrechte
Je nach Benutzer können unterschiedliche Rechte vergeben werden.
Beispiele:
SELECT INSERT UPDATE DELETE CREATE ALTER DROP INDEX
Ein normaler Anwendungsbenutzer benötigt typischerweise nur die Rechte, die für den laufenden Betrieb tatsächlich erforderlich sind.
Strukturänderungen können über einen gesonderten Benutzer durchgeführt werden.
Import
phpMyAdmin kann SQL-Dateien importieren.
Typische Anwendungsfälle:
- Wiederherstellung einer Datenbank
- Übernahme einer vorhandenen Datenbank
- Einspielen eines SQL-Dumps
Vor einem Import sollte geprüft werden, welche Datenbank ausgewählt ist und welche Tabellen oder Daten durch den Import verändert werden.
Export
Datenbanken und Tabellen können über phpMyAdmin exportiert werden.
Ein häufig verwendetes Format ist:
SQL
Ein SQL-Export kann sowohl Tabellenstrukturen als auch Daten enthalten.
Exporte können beispielsweise für Sicherungen oder zur Analyse einer Datenbank verwendet werden.
Zeichensatz und Kollation
Bei Datenbanken und Tabellen spielen Zeichensatz und Kollation eine wichtige Rolle.
RoWaBase verwendet:
utf8mb4
mit:
utf8mb4_unicode_ci
Dies war beispielsweise auch in der Ausgabe der Laravel-Migrationen sichtbar:
default character set utf8mb4 collate 'utf8mb4_unicode_ci'
phpMyAdmin ermöglicht eine einfache Kontrolle dieser Einstellungen.
AUTO_INCREMENT
Primärschlüssel werden in Laravel häufig folgendermaßen definiert:
$table->id();
MariaDB erzeugt daraus typischerweise einen automatisch hochgezählten Primärschlüssel.
In phpMyAdmin ist dies als:
AUTO_INCREMENT
erkennbar.
NULL und NOT NULL
phpMyAdmin zeigt ebenfalls an, ob eine Spalte leer beziehungsweise NULL sein darf.
Laravel:
$table->string('vorname')->nullable();
führt beispielsweise zu einer Spalte, die NULL enthalten darf.
Das ist bei RoWaBase insbesondere für das kontaktorientierte Geschäftspartner-Modell wichtig, da dort bewusst nur wenige Angaben zwingend erforderlich sein sollen.
Praxis: RoWaBase
Bei der Entwicklung von RoWaBase kann phpMyAdmin nach einer Migration zur Kontrolle verwendet werden.
Typischer Ablauf:
Migration erstellen
↓
Migration bearbeiten
↓
php -l ...
↓
php artisan migrate --database=mysql_migration --pretend
↓
SQL-Ausgabe kontrollieren
↓
php artisan migrate --database=mysql_migration
↓
Tabellenstruktur in phpMyAdmin kontrollieren
phpMyAdmin ersetzt dabei weder Laravel-Migrationen noch Git.
Es bietet eine zusätzliche Sicht auf den tatsächlichen Zustand der MariaDB-Datenbank.
phpMyAdmin und MariaDB
phpMyAdmin stellt die grafische Verwaltungsoberfläche bereit.
Das eigentliche Datenbanksystem ist bei RoWaBase:
phpMyAdmin und Laravel
Laravel greift über seine Datenbankverbindungen direkt auf MariaDB zu.
Migrationen, Models und Eloquent werden dokumentiert unter:
phpMyAdmin und XAMPP
Die lokale phpMyAdmin-Installation ist Bestandteil der XAMPP-Entwicklungsumgebung.
Weitere Informationen:
Merksatz
phpMyAdmin ist bei RoWaBase vor allem das Fenster zur Datenbank.
Strukturänderungen werden über Laravel-Migrationen durchgeführt. phpMyAdmin dient dazu, den tatsächlichen Datenbankzustand anzusehen, zu kontrollieren und bei Bedarf gezielt zu analysieren.
