Zum Inhalt

MariaDB einrichten

Nach der Paketinstallation richtet man MariaDB und das Datenbankkonto für Nextcloud ein. Dialoge, Abfragen und Beispielausgaben bleiben zur Nachvollziehbarkeit erhalten. Für diese Testumgebung die Benutzernamen und Kennwörter aus der Vorlage verwenden, damit die Übungsschritte einheitlich nachvollziehbar bleiben.

MariaDB vorbereiten

Interaktive Einrichtung

root@nc:~# mariadb-secure-installation

Enter current password for root (enter for none):
Switch to unix_socket authentication [Y/n] Y
Change the root password? [Y/n] n
Remove anonymous users? [Y/n] y
Disallow root login remotely? [Y/n] y
Remove test database and access to it? [Y/n] y
Reload privilege tables now? [Y/n] y

Manuelle Einrichtung mit SQL-Befehlen

root@nc~#: mariadb

-- 1. Root-Authentifizierung auf das moderne Plugin umstellen (und optional ein Passwort setzen, falls gewünscht)
ALTER USER 'root'@'localhost' IDENTIFIED VIA mysql_native_password;

-- 2. Anonyme Benutzerkonten löschen
DELETE FROM mysql.user WHERE User = '';

-- 3. Fernzugriff für den Root-Benutzer verbieten
DELETE FROM mysql.user WHERE User = 'root' AND Host NOT IN ('localhost', '127.0.0.1', '::1');

-- 4. Die unsichere Test-Datenbank entfernen
DROP DATABASE IF EXISTS test;
DELETE FROM mysql.db WHERE Db = 'test' OR Db = 'test_%';

-- 5. Berechtigungen sofort neu einlesen lassen
FLUSH PRIVILEGES;

Einstellungen prüfen

mariadb

-- 1. Aktive Benutzer und erlaubte Hosts anzeigen
SELECT User, Host, plugin FROM mysql.user;

-- 2. Prüfen, ob die Testdatenbank noch existiert:

SHOW DATABASES LIKE 'test';
exit;

-- 3. MariaDB-Konfigurationsdateien auf dem Server ansehen
cat /etc/mysql/mariadb.conf.d/50-server.cnf

Nextcloud-Datenbank anlegen

root@nc:~# mariadb

MariaDB [(none)]> CREATE DATABASE nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Query OK, 1 row affected (0.001 sec)

MariaDB [(none)]> CREATE USER 'nc_user'@'localhost' IDENTIFIED BY 'nc_pass';
Query OK, 0 rows affected (0.001 sec)

MariaDB [(none)]> GRANT ALL PRIVILEGES ON nextcloud.* TO 'nc_user'@'localhost';
Query OK, 0 rows affected (0.001 sec)

MariaDB [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.001 sec)

MariaDB [(none)]> exit;
Bye
root@nc:~# :

Datenbankzugriff prüfen

root@nc:~# mariadb -u nc_user -p
Enter password:

MariaDB [(none)]> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| nextcloud          |
+--------------------+
2 rows in set (0.001 sec)

MariaDB [(none)]> exit;

Fehlersuche und Zurücksetzen der Übungsdatenbank

Der folgende Ablauf löscht die bestehende Nextcloud-Datenbank und legt sie neu an. Er ist ausschließlich zum Neustart einer entbehrlichen Übungsinstallation gedacht, nicht zur Reparatur einer bereits genutzten Instanz.

mariadb -u root
-- 1. Vorhandene Datenbanken auflisten
SHOW DATABASES;

-- 2. Vorhandene Benutzer auflisten:
SELECT User, Host FROM mysql.user;

-- 3. Vorherigen Versuch komplett löschen
DROP DATABASE IF EXISTS nextcloud;
DROP USER IF EXISTS 'nc_user'@'localhost';

-- 4. Alles frisch und sauber neu anlegen
CREATE DATABASE nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'nc_user'@'localhost' IDENTIFIED BY 'nc_pass';
GRANT ALL PRIVILEGES ON nextcloud.* TO 'nc_user'@'localhost';
FLUSH PRIVILEGES;