MariaDB ist ein robuster, skalierbarer und zuverlässiger SQL-Server, der seit vielen Jahren aktiv entwickelt wird. Er ist ein erweiterter, sofort einsetzbarer Ersatz für das relationale Datenbankmanagementsystem MySQL – allerdings mit mehr Funktionen, neuen Speicher-Engines, weniger Fehlern und besserer Leistung.
Die ursprünglichen Entwickler von MySQL gründeten MariaDB im Jahr 2009 als Abspaltung des inzwischen eingestellten Projekts, nachdem sie Bedenken wegen der Übernahme von MySQL durch Oracle hatten.
2010 gliederte Sun Microsystems (das zuvor von der Oracle Corp. übernommen worden war) sein Open-Source-Geschäft in eine neue Tochtergesellschaft namens „Oracle America“ aus, die von Thomas Kurian, dem ehemaligen Leiter der Solaris-Abteilung von Sun, geleitet werden sollte.
„MariaDB“ ist nach der Tochter des Mitbegründers Michael Widenius, Maria, benannt.
MariaDB ist größtenteils in C/C++ geschrieben, mit Low-Level-Teilen, die aus Optimierungsgründen in Assembler geschrieben sind, und einigen wichtigen Teilen des Servers wie dem Abfrageparser, der nach wie vor in MySQLs „de facto“-Standarddialekt von SQL geschrieben ist, was die Verwendung von prozeduralen Sprachen wie Perl und Python für den Zugriff auf de-normalisierte Datenbanken ermöglicht.
Im Allgemeinen ist MariaDB schneller und effizienter als MySQL, aber es ist ratsam, einen Testlauf für deine Website durchzuführen, bevor du von MySQL umsteigst.
In einem Test von W3Tech wurde festgestellt, dass MariaDB sowohl bei kleinen als auch bei großen Datensätzen 30 % schneller ist als MySQL. In einem anderen Test zeigte MariaDB eine 20%ige Geschwindigkeitsverbesserung im Vergleich zu MySQL, wenn es mit 1 GB Daten arbeitete. Als die Datenmenge auf 10 GB erhöht wurde, erwies sich MariaDB im Vergleich zu MySQL als satte 80% schneller.
Voraussetzung
Um MariaDB unter Debian 11 zu installieren, brauchst du Folgendes
- Einen Server, auf dem Debian 11 läuft.
- Root-Zugriff auf den Server.
- Hardware-Anforderungen: 1 CPU-Kern ist mehr als genug für einen Datenbankserver. 512 MB RAM und 1 GB Festplatte reichen für minimale Daten aus.
Das System aktualisieren
Systemaktualisierungen sind wichtig für deinen Computer. Oft führt ein Linux-Update neue Funktionen und Verbesserungen ein oder behebt einen Fehler, der von einem Benutzer gemeldet wurde. Es ist eine gute Idee, ein Systemupdate zu installieren, sobald es verfügbar ist, damit du von neuen Sicherheitspatches und anderen Verbesserungen der Software profitieren kannst.
Führe den folgenden Befehl aus, um dein System zu aktualisieren.
sudo apt-get update && sudo apt-get upgrade -y
Installation von MariaDB unter Debian 11
Wie üblich können wir MariaDB direkt aus dem Repository installieren. Wir werden den Standard-Paketmanager für Debian 11 verwenden, um MariaDB zu installieren, da dies die empfehlenswerteste Methode ist. Es kann jedoch sein, dass du keinen Zugriff auf die neueste Version von MariaDB hast, wenn sie nicht Teil der offiziellen Repositories ist.
Führe den folgenden Befehl aus, um MariaDB unter Debian 11 zu installieren.
sudo apt-get install mariadb-server -y
Führe den Befehl mariadb –version
aus, um zu überprüfen, ob MariaDB korrekt installiert ist. Wenn du den Befehl mariadb –version
ausführst, sollte die Ausgabe wie unten gezeigt aussehen. Beachte, dass die Versionsnummern unterschiedlich sein können.
root@Fliegerhost:~# mariadb --version mariadb Ver 15.1 Distrib 10.5.19-MariaDB, for debian-linux-gnu (x86_64) using EditLine wrapper root@Fliegerhost:~#
Um den MariaDB-Datenbankserver zu starten, zu stoppen oder neu zu starten, verwendest du die folgenden Befehle.
sudo systemctl start mariadb
sudo systemctl stop mariadb
sudo systemctl restart mariadb
Um MariaDB beim Hochfahren deines Systems automatisch starten zu lassen, führe folgenden Befehl aus.
sudo systemctl enable mariadb
MariaDB sollte jetzt gestartet sein und laufen. Du kannst überprüfen, ob sie läuft, indem du den folgenden Befehl ausführst.
root@Fliegerhost:~# systemctl status mariadb ● mariadb.service - MariaDB 10.5.19 database server Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2023-07-19 17:50:23 CEST; 5 days ago Docs: man:mariadbd(8) https://mariadb.com/kb/en/library/systemd/ Process: 870 ExecStartPre=/usr/bin/install -m 755 -o mysql -g root -d /var/run/mysqld (code=exited, status=0/SUCCESS) Process: 899 ExecStartPre=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS) Process: 911 ExecStartPre=/bin/sh -c [ ! -e /usr/bin/galera_recovery ] && VAR= || VAR=`cd /usr/bin/..; /usr/bin/galera_recovery`; [ $? -eq 0 ] && systemctl set-environment _WSREP_START_PO> Process: 1315 ExecStartPost=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS) Process: 1327 ExecStartPost=/etc/mysql/debian-start (code=exited, status=0/SUCCESS) Main PID: 1043 (mariadbd) Status: "Taking your SQL requests now..." Tasks: 18 (limit: 9262) Memory: 264.4M CPU: 7min 42.430s CGroup: /system.slice/mariadb.service └─1043 /usr/sbin/mariadbd Jul 19 17:50:23 Fliegerhost /etc/mysql/debian-start[1337]: /usr/bin/mysql_upgrade: the '--basedir' option is always ignored Jul 19 17:50:23 Fliegerhost /etc/mysql/debian-start[1337]: Looking for 'mariadb' as: /usr/bin/mariadb Jul 19 17:50:23 Fliegerhost /etc/mysql/debian-start[1337]: Looking for 'mariadb-check' as: /usr/bin/mariadb-check Jul 19 17:50:23 Fliegerhost /etc/mysql/debian-start[1337]: This installation of MariaDB is already upgraded to 10.5.12-MariaDB. Jul 19 17:50:23 Fliegerhost /etc/mysql/debian-start[1337]: There is no need to run mysql_upgrade again for 10.5.19-MariaDB. Jul 19 17:50:23 Fliegerhost /etc/mysql/debian-start[1337]: You can use --force if you still want to run mysql_upgrade Jul 19 17:50:23 Fliegerhost /etc/mysql/debian-start[1416]: Checking for insecure root accounts. Jul 19 17:50:23 Fliegerhost /etc/mysql/debian-start[1429]: Triggering myisam-recover for all MyISAM tables and aria-recover for all Aria tables Jul 21 15:59:07 Fliegerhost mariadbd[1043]: 2023-07-21 15:59:07 4275 [Warning] Access denied for user 'scotty'@'localhost' (using password: YES) Jul 24 18:05:23 Fliegerhost mariadbd[1043]: 2023-07-24 18:05:23 7094 [Warning] Access denied for user 'scotty'@'localhost' (using password: NO) root@Fliegerhost:~#
MariaDB – Kein Root Login mit PHPMyAdmin möglich
Der MariaDB Root User unter einer Debian Installation wurde gelöscht. Daraufhin war kein Root-Zugriff mehr auf die MariaDB Instanz mehr möglich. Das ist zum Beispiel notwendig wenn man das beliebte Tool phpMyAdmin
verwenden möchte.
Hier noch einmal die Schritte um einen neuen MariaDB Root User mit allen Rechten zu erstellen:
Starten des MariaDB Servers im Wartungsmodus ohne Rechteüberprüfung:
systemctl stop mariadb systemctl set-environment MYSQLD_OPTS="--skip-grant-tables --skip-networking" systemctl start mariadb
Starten der MariaDB Shell:
mysql -u root
Erstellen des neuen MariaDB Root Benutzers auf der MariaDB Shell mit SQL:
FLUSH PRIVILEGES; CREATE USER 'root'@'localhost' IDENTIFIED BY 'StrongPassword!!!'; GRANT ALL PRIVILEGES ON . TO 'root'@'localhost' WITH GRANT OPTION;
Starten des MariaDB Servers im normalen Modus mit Rechteüberprüfung:
systemctl stop mariadb systemctl unset-environment MYSQLD_OPTS systemctl start mariadb
Danach hat man mit dem neuen Root User wieder vollen Zugriff auf die MariaDB Installation.
Wenn der MariaDB Root User noch existiert und nur das Root Passwort zurückgesetzt werden soll, kann man das natürlich auch mit folgendem SQL Code tun:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password'; FLUSH PRIVILEGES;