Site icon bintorosoft.com

MySQL/MariaDB Setup: Datenbank für Webserver richtig konfigurieren

Programmer Bunny with laptop. Easter day concept. Generative Ai.

MySQL und MariaDB sind die am weitesten verbreiteten relationalen Datenbanksysteme für Webanwendungen. Sie bilden das Rückgrat vieler Webprojekte und CMS wie WordPress, Joomla oder Drupal. In diesem Leitfaden erfahren Einsteiger, IT-Studierende und Junior Network Engineers, wie MySQL/MariaDB installiert, konfiguriert und sicher betrieben wird, um eine stabile und performante Datenbankumgebung für Webserver zu gewährleisten.

Systemvorbereitung

Bevor die Datenbank installiert wird, sollte das System auf dem neuesten Stand sein und notwendige Pakete installiert werden.

System aktualisieren

sudo apt update
sudo apt upgrade -y

Für CentOS/RHEL:

sudo yum update -y

Hilfspakete installieren

sudo apt install wget curl git unzip -y

Installation von MySQL/MariaDB

Beide Systeme sind kompatibel, MariaDB ist ein Fork von MySQL und bietet zusätzliche Features.

Installation unter Ubuntu/Debian

sudo apt install mariadb-server mariadb-client -y
sudo systemctl start mariadb
sudo systemctl enable mariadb
sudo systemctl status mariadb

Installation unter CentOS/RHEL

sudo yum install mariadb-server mariadb -y
sudo systemctl start mariadb
sudo systemctl enable mariadb
sudo systemctl status mariadb

Grundlegende Konfiguration

Nach der Installation sollte die Datenbank abgesichert und konfiguriert werden, um unbefugten Zugriff zu verhindern.

Initiale Sicherheitseinstellungen

sudo mysql_secure_installation

MySQL/MariaDB Benutzer und Datenbanken anlegen

Beispiel für eine neue Webanwendungsdatenbank:

sudo mysql -u root -p
CREATE DATABASE meinewebsite;
CREATE USER 'webuser'@'localhost' IDENTIFIED BY 'starkesPasswort';
GRANT ALL PRIVILEGES ON meinewebsite.* TO 'webuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;

Konfiguration für Performance

Die Performance kann durch Anpassung der Konfigurationsdatei /etc/mysql/mariadb.conf.d/50-server.cnf optimiert werden.

Wichtige Parameter

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
[mysqld]
innodb_buffer_pool_size = 1G
max_connections = 200
query_cache_size = 64M
tmp_table_size = 64M
slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow.log
sudo systemctl restart mariadb

Backup und Wiederherstellung

Regelmäßige Backups sichern Daten gegen Verlust oder Beschädigung.

Datenbank sichern

mysqldump -u root -p meinewebsite > backup_meinewebsite.sql

Datenbank wiederherstellen

mysql -u root -p meinewebsite < backup_meinewebsite.sql

Sicherheit und Zugriffskontrolle

Eine sichere Konfiguration schützt vor Angriffen wie SQL-Injection oder unbefugtem Zugriff.

Remote-Zugriff einschränken

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
[mysqld]
bind-address = 127.0.0.1
sudo systemctl restart mariadb

Firewall für MySQL-Port konfigurieren

sudo ufw allow 3306/tcp
sudo ufw enable
sudo ufw status

Integration mit Webserver

Die Datenbank wird in der Regel von PHP über MySQLi oder PDO angesprochen.

PHP-Beispielverbindung

<?php
$servername = "localhost";
$username = "webuser";
$password = "starkesPasswort";
$dbname = "meinewebsite";

$conn = new mysqli($servername, $username, $password, $dbname);

if ($conn->connect_error) {
die("Verbindung fehlgeschlagen: " . $conn->connect_error);
}
echo "Verbindung erfolgreich!";
?>

Monitoring und Logs

Überwachung hilft, Engpässe zu erkennen und die Datenbank performant zu halten.

Logs prüfen

tail -f /var/log/mysql/error.log
tail -f /var/log/mysql/slow.log

Status und Prozesse anzeigen

mysqladmin -u root -p status
mysqladmin -u root -p processlist

Netzwerkgrundlagen für MySQL/MariaDB

Die Datenbank benötigt ein korrekt konfiguriertes Netzwerk, insbesondere bei Remote-Zugriff.

Subnetzberechnung

Beispiel: IP 192.168.20.30/24

<math>
Subnetzadresse = 192.168.20.30 & 255.255.255.0 = 192.168.20.0
Broadcastadresse = 192.168.20.0 | ~255.255.255.0 = 192.168.20.255
</math>

Netzwerkinterface konfigurieren

sudo nano /etc/netplan/01-netcfg.yaml
network:
  version: 2
  renderer: networkd
  ethernets:
    enp0s3:
      dhcp4: no
      addresses:
        - 192.168.20.30/24
      gateway4: 192.168.20.1
      nameservers:
        addresses: [8.8.8.8, 8.8.4.4]
sudo netplan apply

Zusätzliche Best Practices

Konfiguriere Cisco Router & Switches und liefere ein Packet-Tracer-Lab/GNS3

Ich biete professionelle Unterstützung im Bereich Netzwerkkonfiguration und Network Automation für private Anforderungen, Studienprojekte, Lernlabore, kleine Unternehmen sowie technische Projekte. Ich unterstütze Sie bei der Konfiguration von Routern und Switches, der Erstellung praxisnaher Topologien in Cisco Packet Tracer, dem Aufbau und Troubleshooting von GNS3- und EVE-NG-Labs sowie bei der Automatisierung von Netzwerkaufgaben mit Netmiko, Paramiko, NAPALM und Ansible. Kontaktieren Sie mich jetzt – klicken Sie hier.

Meine Leistungen umfassen:

Benötigen Sie Unterstützung bei Ihrem Netzwerkprojekt, Ihrer Simulation oder Ihrer Network-Automation-Lösung? Kontaktieren Sie mich jetzt – klicken Sie hier.

Exit mobile version