Thema: Ubuntu – MariaDB – WordPress – Apache – CleanBlogg Theme.
Die hier kurz vorgestellte Installation von MariaDB erfolgt für die spätere Nutzung der Blog-Software WordPress. Im Einsatz ist ein dedizierter Server mit root-Zugriff.
MariaDB statt MySQL unter Ubuntu 14.04.5 installieren
Versionen
- MariaDB jedenfalls 5.5.52 und/bis 10.1.34
- Ubuntu jedenfalls 14.04.5 und/bis 18.04.1
MySQL ist nicht mehr open-source, MariaDB ist ein Fork, der die Ursprungsidee aufgreift. Dabei werden alte MySQL-Bindings weiterbenutzt ohne umbenannt zu werden, so finden sich viele Anweisungen, die mit mysql
anfangen in der PHP-Konfiguration und anders wo.
Die Installierung erfolgt auf einem System, das zuvor kein MySQL installiert hatte. mysql_secure_installation
ist ein Script, welches Sicherheitseinstellungen zusammenfasst.
root@server # service mysql stop
root@server # apt-get install mariadb-server
root@server # mysql_install_db
root@server # systemctl start mysqld.service
root@server # service mysql start
root@server # mysql_secure_installation
In meinem Fall fehlte für das Arbeiten mit php “mysqlnd”:
root@server # apt-get install php-mysqlnd
Eventuell müssen Limits in der PHP-Konfiguration geändert werden, das geht hier:
root@server / # vim /etc/php/[version]/apache2/php.ini
Neue Datenbank mit myPhpAdmin unter MariaDB anlegen
Ich verwende zur besseren Übersicht der Datenbank “myPhpAdmin”. Die Datenbank wird für WordPress installiert und vorerst nur für WordPress genutzt. Mit “myPhpAdmin” kann man sich schnell einen (optischen) Überblick über angelegte Tabellen und Inhalte verschaffen.
Die Dateien von “myPhpAdmin” müssen irgendwo im Webbereich liegen. Sofern die Datenbank sauber installiert ist und läuft, kann “myPhpAdmin” nach dem eingeben von User und Passwort darauf zurückgreifen. Aber es ist natürlich vorsichtig damit umzugehen: die Verbindung erfolgt direkt und nicht verschlüsselt.
Nach dem Einspielen der “myPhpAdmin”-Dateien:
WordPress-Datenbank Anlegen
- Als
root
einloggen. - In der linken Spalte auf “Neu” gehen.
- “Kollation” unverändert lassen und “Anlegen” wählen. Die Datenbank existiert nun, ist aber leer. Es folgt der Vorschlag eine Tabelle hinzuzufügen, das machen wir aber nicht (erledigt später das WordPress-Setup).
DB-User für die WordPress-Datenbank anlegen
- Datenbank mysql auswählen
- Im Menü oben auf “Rechte”.
- Ganz unten “Benutzerkonto hinzufügen”. Man könnte auch existierende Nutzer oder kopieren.
- “Benutzername”: Name wählen. Das ist nicht der Login zum Editieren des Blogs, es handelt sich nur um den Datenbankuser mit dem man später nicht mehr viel zu tun hat.
- “Hostname”: “Lokal” bzw.
localhost
wählen. Der User darf und soll sich nur vom Server aus bei der Datenbank anmelden können (konkret der Webserver bei der DB). - Neues Passwort zwei Mal eingeben.
- “Authentifizierungs Plugin” und “Passwort generieren” unverändert lassen.
- Darunter keine allgemeinen Rechte zuweisen oder Datenbank aus dem User generieren, sie existiert ja schon.
- Alle aus “Daten” und Alle aus “Struktur” anwählen , die restlichen unverändert lassen (Braucht noch Optimierung).
- Mit “OK” bestätigen. Nun besteht eine leere Datenbank mit einem bekannten User.
Siehe auch Passwörter fur WordPress via phpMyAdmin anpassen.
MariaDB nur in der Console
Einloggen. Nach dem neuen Installieren der Datenbank ist das Root-Passwort leer.
$> mysql -u root -p
Ggf. setzt man nun das Root-Passort:
m> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyRootPswd);
Wechsel in die Verwaltungdatenbank mysql
und dort anlegen einer neuen Datenbank MyDbForWp
:
m> USE mysql; m> CREATE DATABASE MyDbForWp;
Wechsel in die neu Datenbank und Zuweisung eines Users MyUserForWp
samt Passwort, die beide im selben Zug geschaffen werden:
m> USE MyDbForWp; m> GRANT ALL PRIVILEGES ON MyDbForWp TO 'MyUserForWp'@'localhost' IDENTIFIED BY 'MyUserForPswd';
Wechsel zurück in die Verwaltungdatenbank mysql
, den User MyUserForWp
unabhängig vom Betriebssystem machen und volle Rechte auf die Datenbank MyDbForWp
geben:
m> USE mysql; m> UPDATE user SET plugin='mysql_native_password' WHERE USER='MyUserForWp'; m> GRANT ALL ON MyDbForWp.* TO 'MyUserForWp'@'localhost';
Nun besteht eine leere Datenbank mit einem bekannten User.
Folgende Befehle können noch hilfreich sein:
m> SHOW DATABASES; m> SHOW TABLES; m> SELECT User FROM mysql.user; m> SHOW GRANTS FOR 'MyUserForWp'@'localhost'; m> DROP DATABASE MyDbForWp; m> SET PASSWORD FOR 'MyUserForWp'@'localhost' = PASSWORD('MyUserForPswd'); m> SELECT * FROM SomeTable INTO OUTFILE '/tmp/outfile.csv' FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n'; m> QUIT ?> mysqldump db_name > db_name.sql
Achtung beim Ändern von Passwörtern im weiteren Verlauf. Man wechselt in die Datenbank mysql um dort das Passwort neu zusetzen. Aber der letzte Befehl ist wesentlich, ohne diesem sind die Änderungen erst nach dem sauberen ausloggen effektiv. Zudem sollte man den Server neu starten, da Anderungen in wp-config.php nur dann neu eingelesen werden.
m> USE mysql; m> UPDATE user SET password=PASSWORD("MY-PSWD") WHERE user='MYUSER'; m> FLUSH PRIVILEGES; ?> /etc/init.d/apache2 restart
No Comments