Dieser Beitrag bietet eine Schritt-für-Schritt Anleitung für Installation und Einrichtung von MySQL und PhpMyAdmin sowie als Anwendungsbeispiel die Einrichtung von WordPress.
Eine SQL (Sequential Query Language) Datenbank ist Voraussetzung, um auf einem Server WordPress oder ein anderes Content Management System (CMS) einrichten zu können. WordPress verwendet die Datenbank zur Verwaltung und Organisation seiner Dateien, der erstellten Webseiten oder auch für die Benutzerverwaltung. Als Datenbank Management System werden meist MySQL oder MariaDB eingesetzt.
Wir setzen voraus, dass Sie bereis PHP, das Plugin php-mysql und Apache2 auf Ihrem Rechner installiert haben. Vgl:
Die für die Datenbank verwendeten Verzeichnisse finden Sie – wenn alles eingerichtet ist – unter /var/lib/mysql
.
MySQL ist ein Tool, mit dem Sie all diese Ordner und Dateien verwalten können, einfacher und mit mehr Optionen als über die Werkzeuge des Dateisystems selbst.
Die „Bedienung“ der Datenbank kann entweder über ein Terminal oder über eine grafische Benutzeroberfläche z.B. PhpMyAdmin erfolgen. WordPress erledigt aber die meisten Aufgaben selbständig im Hintergrund.
MySQL installieren und testen
Öffnen Sie ein Terminal und geben Sie den nachstehenden Befehl ein:sudo apt install mysql-server
MySQL sollte automatisch starten, den Status testen Sie mit
sudo service mysql status
Informationen liefert, auch falls der Server nicht korrekt läuft:
sudo journalctl -u mysql
MySQL absichern
Die Standard-Einstellungen von MySQL sind nicht sicher, insbesondere wenn Sie den Datenbankserver in der Produktivumgebung einsetzen möchten.
Die MySQL-Installation bietet ein Sicherheitsskript, das die weniger sicheren Standardoptionen berücksichtigt. Um die Sicherheit zu erhöhen, führen Sie den folgenden Befehl aus:
sudo mysql_secure_installation
Das Skript fragt interaktiv verschiedene Konfigurationsmöglichkeiten ab. Für eine Lern- und Testumgebung ausschließlich auf dem eigenen Rechner benötigen Sie das nicht unbedingt. Dennoch ist es hilfreich, alle Optionen einmal gesehen zu haben.
Konfiguration
Änderungen müssen Sie normalerweise nicht vornehmen. Alle *.conf
– Dateien sind bereits für den normalen Einsatz vorkonfiguriert.
Die Dateien für die Konfiguration finden Sie nach der Installation unter /etc/mysql
.. Sie sind in Abschnitte gegliedert, der Bereich [mysql]
betrifft die Grundeinstellungen. In der Datei /etc/mysql/mysql.conf.d/mysqld.cnf
werden unter anderem die Netzwerkeinstellungen vorgenommen. Sie ist hier für den localhost
gesetzt:
bind-address = 127.0.0.1
Änderungen der Netzwerkkonfiguration erfordern einen Neustart:
sudo systemctl restart mysql
Änderungen der übrigen Konfiguration erfordern ein Neu-Einlesen der Konfiguration:
sudo systemctl reload mysql
Über das Terminal anmelden
Sie können sich nun über ein Terminal bei der Datenbank anmelden. Der MySQL-Benutzer root
existiert bereits und benötigt für das Login kein Passwort. Sie müssen sich jedoch mit den root-Rechten ihres Linux-Rechners bei MySQL anmelden:
sudo mysql
Wäre für den MySQL-Benutzer root
ein Passwort vergeben, würden Sie an dieser Stelle eine zweite Passwortabfrage erhalten.
Streng genommen ist mysql
ein Kommando, mit dem Sie den mysql-Client starten. Das ist vergleichbar mit einer interaktiven Shell, wie man sie auch von anderen Programmiersprachen kennt (z.B. php). Nach der Eingabe von sudo mysql
ändert sich der Prompt und alle dann eingegebenen Befehle werden von MySQL verarbeitet, bis Sie MySQL mit exit
wieder verlassen.
Exkurs Login: Standardmäßig verwendet MySQL auth_socket
für die Authentifizierung. Dabei handelt es sich um eine passwortlose Authentifizierung, die das auth_socket-Plugin verwendet, mit dem sich Benutzer mit ihren Anmeldedaten (des Computers, auf dem MySQL läuft) für das Benutzerkonto bei MySQL anmelden und authentifizieren können. Sie können diese Einstellung ändern und ein Passwort vergeben. Ab MySQL 8.0, ist das Standard-Plugin caching_sha2_password
für die Verwendung eines Passworts und nicht mehr mysql_native_password
verantwortlich.
Neuen Benutzer anlegen
Für die „normale“ Arbeit mit MySQL sollten Sie aus Sicherheitsgründen nicht den MySQL-Benutzer root
verwenden. Legen Sie statt dessen einen neuen Benutzer, z.B. admin
an, der sich mit einem Passwort anmeldet. Sie müssen dazu als root
eingeloggt sein.
CREATE USER 'admin'@'localhost' IDENTIFIED BY 'geheim';
Und weisen Sie dem neuen admin die erforderlichen Rechte zu. Allgemein mit dem Befehl:
GRANT [privilege] ON [database].[table] TO 'username'@'host';
Für unser konkretes Beispiel, den neuen Benutzer admin
:
GRANT ALL PRIVILEGES ON *.* TO admin@localhost WITH GRANT OPTION;FLUSH PRIVILEGES;
Hinweis: WITH GRANT OPTION („grant“ = gewähren, erteilen), der neuen Benutzer darf Rechte an andere vergeben.
Den neuen Benutzer benötigen wir später für die Anmeldung bei PhpMyAdmin über die Weboberfläche.
Die vorhandenen Benutzer anzeigen lassen:
SELECT user FROM mysql.user;
Melden Sie sich nun von MySQL ab mit
exit
und melden Sie sich als admin neu an:
mysql -u admin -p
Eine Test-Datenbank erstellen
Mit reinen Text-Anweisungen lassen sich alle Operationen, die eine Datenbank erfordert, vom Terminal aus erledigen. Für einen ersten Test erstellen Sie eine Datenbank mit dem Namen books
:
CREATE DATABASE books;
Anschließend die Datenbank auswählen, um darin eine Tabelle zu erstellen:
USE DATABASE books;
CREATE TABLE book_title (
PRIMARY KEY (ID),
bookTitle varchar(256),
bookDescript varchar(256),
);
Werte in die Tabelle einfügen:
INSERT INTO table_name (bookTitle, bookDescript)
VALUES (value1, value2, value3, ...);
Konkret für unser Beispiel:
INSERT INTO book_title
VALUES ('The C Programming Language', 'A computer programming book written by Brian Kernighan and Dennis Ritchie' );
Alle Datenbanken anzeigen lassen:
SHOW DATABASES;
Eine Datenbank löschen:
DROP DATABASE books;
Bequemer erledigen Sie die Aufgaben mit der grafischen Benutzeroberfläche PhpMyAdmin.
PhpMyAdmin
phpMyAdmin ist ein Programm zur Verwaltung des Datenbanksystems. Es bietet ein Webinterface (eine grafische Benutzeroberfläche) für MySQL, einschließlich eines Root-Benutzers mit vollen administrativen Rechten.
Installation
sudo apt install phpmyadmin -y
Der Installer startet eine grafische Oberfläche, wo zunächst der Server ausgewählt wird. Die Auswahl bestätigt man mit „Enter“, die Schaltfläche „OK“ erreicht man mit der Tab-Taste, nicht mit der Maus.
Je nach Betriebssystem kann aber auch nur eine Abfrage in Textform im Terminal erfolgen, in der Sie eine entsprechende Zahl eingeben und mit der return
-Taste bestätigen.
In den nächsten Schritten bestätigen Sie die automatische Einrichtung der phpMyAdmin-Datenbank, wählen den Server aus und legen einen Benutzer nebst ein Passwort fest. Lässt man das Feld leer, generiert das System ein zufälliges Passwort.
Setup neu starten
Sie können das Setup später erneut starten, um Änderungen vorzunehmen:
sudo dpkg-reconfigure phpmyadmin
PhpMyAdmin im Browser öffnen
Nach der Installation öffnen Sie PhpMyAdmin in einem Browser über die Adresszeile:
http://localhost/phpmyadmin
Sie erhalten ein Anmeldefenster und können den oben erstellten Benutzer admin
zur Anmeldung benutzen. Die Anmeldung verlangt zwingend ein Passwort, daher ist auch die Anmeldung mit root
in der Standard-Einstellung nicht möglich, weil root
kein Passwort hat.
Falls PhpMyAdmin nicht startet
Passen Sie die Konfigurationsdatei apache2.conf
des Apache2-Servers an, indem Sie die entsprechende Konfigurationsdatei von phpmyadmin
einfügen. Öffnen Sie dazu die Datei vom Terminal aus mit dem Editor Nano:
sudo nano /etc/apache2/apache2.conf
und fügen Sie die Zeile ein:
Include /etc/phpmyadmin/apache.conf
Die Anweisung „Include“ liest die angegebene Datei an der Stelle, an der sie vorgefunden wird.
Die Änderungen Speichern mit den Tasten strg + O
, mit Enter
bestätigen und den Editor mit strg + X
verlassen.
Danach den Server neu starten:
sudo systemctl restart apache2
Verzeichnisse
Die in der Seitenleiste bereits vorhandenen Verzeichnisse enthalten Datenbanken für Metadaten, die MySQL und PhpMyAdmin (für die Sie bei der Installation Benutzer und Passwort eingerichtet haben) selbst verwenden. Sie sollten daher nicht gelöscht werden.
Ansicht und Theme
Wie in allen Browser-Fenstern vergrößert und verkleinert man die Ansicht bei gedrückter Strg-Taste mit dem Mausrad oder den Plus- und Minus – Tasten .
Auch ein dunkles Thema kann eingerichtet werden. Auf der Seite https://www.phpmyadmin.net/themes/ stehen mehrere Themen zur Auswahl. Für die aktuelle phpMyAdmin- Version 5.2 haben wir das Thema „BooDark-Orange“ gewählt.
https://files.phpmyadmin.net/themes/boodark-orange/1.1.0/boodark-orange-1.1.0.zip
Laden Sie die Datei herunter und entpacken Sie sie per Doppelklick.
Anschließend kopieren Sie den Ordner boodark-orange
, der sich im Verzeichnis boodark-orang-1.1.0
befindet, in das Theme-Verzeichnis von PhpMyAdmin: /use/share/phpmyadmin/themes
. Dazu sind root-Rechte erforderlich.
Öffnen Sie ein Terminal und wechseln Sie in das entpackte Verzeichnis:cd Downloads/boodark-orange-1.1.0
Nun kopieren Sie den Ordner boodark-orange
in das Themen-Verzeichnis von PhpMyAdmin mit dem Befehl
sudo cp -R boodark-orange /use/share/phpmyadmin/themes
Damit das neue Theme geladen wird, müssen Sie sich bei PhpMyAdmin neu anmelden.
Im Menüpunkt „Anzeige Einstellungen, Theme“ können Sie das Thema aus einer Drop-Down-Liste wählen.
WordPress
Wir zeigen hier die Einrichtung von WordPress, stellvertretend für viele andere Content Management Systeme wie z.B. Joomla, Drupal, Typo3 oder z.B. Anwendungen wie NextCloud.
Laden Sie die aktuelle Version von WordPress von der Herstellerseite https://de.wordpress.org/download/ und entpacken Sie den Ordner per Doppelklick. Kopieren Sie dann den Ordner WordPress
in das Verzeichnis des Apache2-Servers /var/www/html
.
cd Downloads
sudo cp -R wordpress /var/www/html/
Hinweis: Das ist als „normaler“ Benutzer nur möglich, wenn Sie den aktuellen Benutzer (sich selbst) der Gruppe www-data
(wie in der Anleitung zur Einrichtung von PHP beschrieben) hinzugefügt haben. Hier noch mal die Zusammenfassung:
sudo chown -R www-data:www-data /var/www/html
sudo adduser henriette www-data
sudo chmod -R 777 /var/www/html/
Rechte für WordPress
Der Webserver muss die Dateien im WordPress-Verzeichnis lesen und verändern dürfen, damit für WordPress bei der Installation eine Konfigurationsdatei angelegt werden kann, Updates durchgeführt und hochgeladene Dateien gespeichert werden können. Ändern Sie daher auch die Rechte für das neue Verzeichnis.
chown -R www-data:www-data wordpress
-R | rekursiv |
www-data:www-data | user : group |
wordpress | Verzeichnis |
Wer möchte, kann alles im Terminal erledigen:
WordPress-Datenbank in PhpMyAdmin
Starten Sie nun über die Adresszeile in einem Browser phpMyAdmin und melden Sie sich als admin
an:
http://localhost/phpmyadmin
Legen Sie für WordPress eine neue Datenbank an:
- neue Datenbank mit dem Namen:
wordpress
- Kollation:
utf8mb4_unicode_ci
Wählen Sie dann die neue Datenbank in der Seitenleist aus, legen Sie für diese Datenbank einen neuen Benutzer an, vergeben Sie ein Passwort und legen Sie die Rechte fest. Die Namen von Datenbank und Benutzer sind frei wählbar.
- Benutzerkonto:
wordpress
oderwpuser
- Passwort:
geheim
- Globale Rechte:
Alle auswählen
In der oberen Leiste des Hauptbereichs wird immer angezeigt, welche Datenbank Sie gerade bearbeiten.
Im unteren Bereich des Bildschirms finden Sie die Optionen für die Rechte, ganz unten rechts die Schaltfläche OK um ihre Einstellungen zu speichern.
Wenn Sie jetzt die Datenbank wordpress
aus der Seitenleiste auswählen sehen Sie: – noch nichts. Die Datenbank ist noch leer und wird bei der Installation von WordPress selbständig befüllt.
WordPress installieren
In einem weiteren Browser-Tab starten Sie die legendäre WordPress-Installation, geben Sie in die Adresszeile ein:localhost/wordpress
Und Sie erhalten das WordPress Startfenster, los geht’s.
Erstellen Sie zum Test einen neuen Beitrag. In unserem Beispiel hat er die Überschrift „PHP lernen lohnt sich“. Nach dem Veröffentlichen finden Sie den neuen Beitrag über PhpMyAdmin in der Datenbank wordpress
und der Tabelle wp_posts
. Auch alle anderen von WordPress angelegten Tabellen sind jetzt hier zu sehen.
Häufige Fehler
WordPress Installation: Fehlende Schreibrechte
Passen Sie die Rechte für den Apache2-Server auf das wordpress
– Verzeichnis an und starten Sie die Installation neu.
sudo chown www-data:www-data /var/www/html/wordpress
Alternativ können Sie die Datei wp-config.php
mit dem in der Meldung angezeigten Inhalt selbst erstellen. Öffnen Sie den Editor Nano über ein Terminal:
sudo nano wp-config.php
und kopieren Sie den Inhalt aus dem Installationsfenster hinein:
Sie speichern mit Strg + O und verlassen den Editor mit Strg + X.
WordPress Login:
Sie sind sich absolut sicher das richtige Passwort bei der ersten Anmeldung nach der Installation eingegeben zu haben und dennoch klappt es nicht. Dann ändern Sie das Benutzer-Passwort über PhpMyAdmin. Öffnen Sie die Tabelle wordpress > wp_user
und bearbeiten Sie den Eintrag des Benutzers, in unserem Beispiel von oben henriette
. In der Zeile, die mit user_pass
beginnt, wählen Sie aus dem Pull-down-Menü den Eintrag MD5
und setzen Sie im Textfeld daneben ein neues Passwort. Scrollen Sie ganz zum Seitenende und bestätigen die Änderung mit OK. In der anschließenden Übersicht sehen Sie das Passwort dann nur noch als MD5 Hashwert. Mit dem neuen Passwort sollte das Einloggen bei WordPress jetzt möglich sein.
Kollation:
Sollten Sie sich bei der Auswahl der Kollation vertan haben, merken Sie dies oftmals bereits bei Erstellen eines Beitrages, weil fast alle Wörter als Schreibfehler mit einem roten Unterstrich markiert sind. Die Kollation lässt sich nachträglich ändern über Optionen > Kollation
. Richtiger Wert ist: utf8mb4_unicode_ci
.
Ausblick
Alle Komponenten für die Webentwicklung mit PHP unter Linux, Apache, MySQL PHP werden auch als LAMP-Stack bezeichnet, Natürlich können Sie alle diese Komponenten auch zusammen mit Hilfe der Software XAMPP installieren. Das geht wesentlich schneller und funktioniert auch recht gut. Ziel ist es jedoch, das Zusammenspiel der Komponenten kennen zu lernen und mit deren Einrichtung vertraut zu werden.
Quellen:
MySQL Dokumentation
phoenixnap.com
Wiki Ubuntuusers – MySQL
Michael Kofler: „Linux“, Rheinwerk Verlag, Bonn 2023