Konfiguration und Betrieb: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| Zeile 1: | Zeile 1: | ||
| + | = Konfiguration und Betrieb von MariaDB = | ||
== Einführung == | == Einführung == | ||
| Zeile 7: | Zeile 8: | ||
== Installation von MariaDB == | == Installation von MariaDB == | ||
=== Debian/Ubuntu === | === Debian/Ubuntu === | ||
| − | * | + | * MariaDB-Server- und Client-Pakete installieren: |
| − | + | * sudo apt update | |
| − | sudo apt update | + | * sudo apt install mariadb-server mariadb-client |
| − | sudo apt install mariadb-server mariadb-client | ||
| − | |||
* Dienst starten und aktivieren: | * Dienst starten und aktivieren: | ||
| − | + | * sudo systemctl start mariadb | |
| − | sudo systemctl start mariadb | + | * sudo systemctl enable mariadb |
| − | sudo systemctl enable mariadb | + | * Initiale Sicherheitskonfiguration ausführen: |
| − | + | * sudo mysql_secure_installation | |
| − | * Initiale Sicherheitskonfiguration: | ||
| − | |||
| − | sudo mysql_secure_installation | ||
| − | |||
=== RHEL/CentOS === | === RHEL/CentOS === | ||
* Repository hinzufügen und MariaDB installieren: | * Repository hinzufügen und MariaDB installieren: | ||
| − | + | * sudo yum install mariadb-server mariadb | |
| − | sudo yum install mariadb-server mariadb | ||
| − | |||
* Dienst starten und aktivieren: | * Dienst starten und aktivieren: | ||
| − | + | * sudo systemctl start mariadb | |
| − | sudo systemctl start mariadb | + | * sudo systemctl enable mariadb |
| − | sudo systemctl enable mariadb | ||
| − | |||
== Grundkonfiguration von MariaDB == | == Grundkonfiguration von MariaDB == | ||
| Zeile 46: | Zeile 37: | ||
== Benutzerverwaltung == | == Benutzerverwaltung == | ||
| − | * | + | * Neuen Benutzer mit allen Rechten für eine Datenbank erstellen: |
| − | + | * CREATE USER 'admin'@'localhost' IDENTIFIED BY 'sicheresPasswort'; | |
| − | CREATE USER 'admin'@'localhost' IDENTIFIED BY 'sicheresPasswort'; | + | * GRANT ALL PRIVILEGES ON testdb.* TO 'admin'@'localhost'; |
| − | GRANT ALL PRIVILEGES ON testdb.* TO 'admin'@'localhost'; | + | * FLUSH PRIVILEGES; |
| − | FLUSH PRIVILEGES; | ||
| − | |||
* Benutzer und Rechte anzeigen: | * Benutzer und Rechte anzeigen: | ||
| − | + | * SELECT User, Host FROM mysql.user; | |
| − | SELECT User, Host FROM mysql.user; | + | * SHOW GRANTS FOR 'admin'@'localhost'; |
| − | SHOW GRANTS FOR 'admin'@'localhost'; | ||
| − | |||
== Datenbankverwaltung == | == Datenbankverwaltung == | ||
| − | * | + | * Neue Datenbank erstellen: |
| − | + | * CREATE DATABASE beispieldb; | |
| − | CREATE DATABASE beispieldb; | ||
| − | |||
* Datenbank anzeigen: | * Datenbank anzeigen: | ||
| − | + | * SHOW DATABASES; | |
| − | SHOW DATABASES; | ||
| − | |||
* Eine Tabelle erstellen: | * Eine Tabelle erstellen: | ||
| − | + | * USE beispieldb; | |
| − | USE beispieldb; | + | * CREATE TABLE kunden (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100), email VARCHAR(100)); |
| − | CREATE TABLE kunden ( | ||
| − | |||
| − | |||
| − | |||
| − | ); | ||
| − | |||
== Backup und Wiederherstellung == | == Backup und Wiederherstellung == | ||
| − | * Vollständiges Backup einer Datenbank: | + | * Vollständiges Backup einer Datenbank erstellen: |
| − | + | * mysqldump -u root -p beispieldb > beispieldb.sql | |
| − | mysqldump -u root -p beispieldb > beispieldb.sql | ||
| − | |||
* Wiederherstellung einer Datenbank: | * Wiederherstellung einer Datenbank: | ||
| − | + | * mysql -u root -p beispieldb < beispieldb.sql | |
| − | mysql -u root -p beispieldb < beispieldb.sql | ||
| − | |||
== Replikation einrichten == | == Replikation einrichten == | ||
| Zeile 103: | Zeile 76: | ||
</pre> | </pre> | ||
* Slave mit dem Master verbinden: | * Slave mit dem Master verbinden: | ||
| − | + | * CHANGE MASTER TO MASTER_HOST='192.168.1.100', MASTER_USER='replication', MASTER_PASSWORD='passwort', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=154; | |
| − | CHANGE MASTER TO MASTER_HOST='192.168.1.100', MASTER_USER='replication', MASTER_PASSWORD='passwort', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=154; | + | * START SLAVE; |
| − | START SLAVE; | + | * SHOW SLAVE STATUS; |
| − | SHOW SLAVE STATUS; | ||
| − | |||
== Performance-Optimierung == | == Performance-Optimierung == | ||
| − | * | + | * Speicherverwaltung optimieren: |
<pre> | <pre> | ||
innodb_buffer_pool_size = 2G | innodb_buffer_pool_size = 2G | ||
| Zeile 116: | Zeile 87: | ||
</pre> | </pre> | ||
* Abfragecache aktivieren: | * Abfragecache aktivieren: | ||
| − | + | * query_cache_type = 1 | |
| − | query_cache_type = 1 | + | * query_cache_size = 128M |
| − | query_cache_size = 128M | ||
| − | |||
* Maximale Verbindungen erhöhen: | * Maximale Verbindungen erhöhen: | ||
| − | + | * max_connections = 500 | |
| − | max_connections = 500 | ||
| − | |||
== Monitoring und Logging == | == Monitoring und Logging == | ||
* Status der Datenbank prüfen: | * Status der Datenbank prüfen: | ||
| − | + | * SHOW STATUS; | |
| − | SHOW STATUS; | + | * SHOW VARIABLES; |
| − | SHOW VARIABLES; | ||
| − | |||
* Fehlerprotokolle anzeigen: | * Fehlerprotokolle anzeigen: | ||
| − | + | * tail -f /var/log/mysql/error.log | |
| − | tail -f /var/log/mysql/error.log | ||
| − | |||
* Aktive Prozesse überwachen: | * Aktive Prozesse überwachen: | ||
| − | + | * SHOW PROCESSLIST; | |
| − | SHOW PROCESSLIST; | ||
| − | |||
== Sicherheit == | == Sicherheit == | ||
* Root-Zugriff auf localhost beschränken: | * Root-Zugriff auf localhost beschränken: | ||
| − | + | * UPDATE mysql.user SET Host='localhost' WHERE User='root'; | |
| − | UPDATE mysql.user SET Host='localhost' WHERE User='root'; | + | * FLUSH PRIVILEGES; |
| − | FLUSH PRIVILEGES; | ||
| − | |||
* SSL-Verschlüsselung aktivieren: | * SSL-Verschlüsselung aktivieren: | ||
<pre> | <pre> | ||
Version vom 15. März 2025, 10:10 Uhr
Konfiguration und Betrieb von MariaDB
Einführung
- MariaDB ist ein relationales Datenbankmanagementsystem (RDBMS), das als Fork von MySQL entwickelt wurde.
- Es bietet erweiterte Funktionen, höhere Performance und vollständige Open-Source-Lizenzierung (GPLv2).
- MariaDB kann sowohl für kleine Anwendungen als auch für große, verteilte Systeme eingesetzt werden.
Installation von MariaDB
Debian/Ubuntu
- MariaDB-Server- und Client-Pakete installieren:
- sudo apt update
- sudo apt install mariadb-server mariadb-client
- Dienst starten und aktivieren:
- sudo systemctl start mariadb
- sudo systemctl enable mariadb
- Initiale Sicherheitskonfiguration ausführen:
- sudo mysql_secure_installation
RHEL/CentOS
- Repository hinzufügen und MariaDB installieren:
- sudo yum install mariadb-server mariadb
- Dienst starten und aktivieren:
- sudo systemctl start mariadb
- sudo systemctl enable mariadb
Grundkonfiguration von MariaDB
- Die zentrale Konfigurationsdatei ist /etc/mysql/mariadb.conf.d/50-server.cnf (Debian) oder /etc/my.cnf.d/mariadb-server.cnf (RHEL).
- Wichtige Parameter zur Konfiguration:
[mysqld] bind-address = 127.0.0.1 max_connections = 200 default_storage_engine = InnoDB innodb_buffer_pool_size = 1G query_cache_size = 64M
Benutzerverwaltung
- Neuen Benutzer mit allen Rechten für eine Datenbank erstellen:
- CREATE USER 'admin'@'localhost' IDENTIFIED BY 'sicheresPasswort';
- GRANT ALL PRIVILEGES ON testdb.* TO 'admin'@'localhost';
- FLUSH PRIVILEGES;
- Benutzer und Rechte anzeigen:
- SELECT User, Host FROM mysql.user;
- SHOW GRANTS FOR 'admin'@'localhost';
Datenbankverwaltung
- Neue Datenbank erstellen:
- CREATE DATABASE beispieldb;
- Datenbank anzeigen:
- SHOW DATABASES;
- Eine Tabelle erstellen:
- USE beispieldb;
- CREATE TABLE kunden (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100), email VARCHAR(100));
Backup und Wiederherstellung
- Vollständiges Backup einer Datenbank erstellen:
- mysqldump -u root -p beispieldb > beispieldb.sql
- Wiederherstellung einer Datenbank:
- mysql -u root -p beispieldb < beispieldb.sql
Replikation einrichten
- MariaDB unterstützt Master-Slave- und Multi-Master-Replikation.
- Beispielhafte Konfiguration für den Master:
[mysqld] server-id = 1 log-bin = /var/log/mysql/mysql-bin.log binlog-do-db = beispieldb
- Konfiguration für den Slave:
[mysqld] server-id = 2 relay-log = /var/log/mysql/mysql-relay-bin.log
- Slave mit dem Master verbinden:
- CHANGE MASTER TO MASTER_HOST='192.168.1.100', MASTER_USER='replication', MASTER_PASSWORD='passwort', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=154;
- START SLAVE;
- SHOW SLAVE STATUS;
Performance-Optimierung
- Speicherverwaltung optimieren:
innodb_buffer_pool_size = 2G innodb_log_file_size = 512M
- Abfragecache aktivieren:
- query_cache_type = 1
- query_cache_size = 128M
- Maximale Verbindungen erhöhen:
- max_connections = 500
Monitoring und Logging
- Status der Datenbank prüfen:
- SHOW STATUS;
- SHOW VARIABLES;
- Fehlerprotokolle anzeigen:
- tail -f /var/log/mysql/error.log
- Aktive Prozesse überwachen:
- SHOW PROCESSLIST;
Sicherheit
- Root-Zugriff auf localhost beschränken:
- UPDATE mysql.user SET Host='localhost' WHERE User='root';
- FLUSH PRIVILEGES;
- SSL-Verschlüsselung aktivieren:
[mysqld] ssl-cert = /etc/mysql/ssl/server-cert.pem ssl-key = /etc/mysql/ssl/server-key.pem
Aufgaben
- Erstelle eine Datenbank mit Benutzer und entsprechenden Rechten.
- Konfiguriere die Replikation zwischen zwei MariaDB-Servern.
- Optimiere die Performance-Einstellungen für große Abfragen.
- Setze ein Backup- und Wiederherstellungskonzept um.
Fazit
- MariaDB ist eine leistungsfähige Alternative zu MySQL mit vielen zusätzlichen Funktionen.
- Die richtige Konfiguration kann Performance und Sicherheit erheblich verbessern.
- Regelmäßige Wartung und Überwachung sind essenziell für den stabilen Betrieb.