Einführung

MySQL ist ein Open-Source-basiertes Datenbank-Managementsystem, das üblicherweise als Teil des beliebten LAMP-Stacks (Linux, Apache, MySQL, PHP/Python/Perl) installiert wird. Es implementiert das relationale Modell und verwendet zur Verwaltung der Daten Structured Query Language (besser bekannt als SQL).

In diesem Schnellstart-Tutorial wird beschrieben, wie Sie MySQL-Version 8 auf einem Ubuntu 20.04-Server installieren.

Voraussetzungen

Um dieser Anleitung zu folgen, benötigen Sie:

Schritt 1 – Installieren von MySQL

Um MySQL zu installieren, aktualisieren Sie zuerst den Paketindex Ihres Servers, wenn Sie dies in letzter Zeit nicht getan haben:

  • sudo apt update

Installieren Sie anschließend das Paket mysql-server:

  • sudo apt install mysql-server

Schritt 2 — Konfigurieren von MySQL

Führen Sie mit sudo das in MySQL enthaltene Sicherheitsskript aus:

  • sudo mysql_secure_installation

Dieses Skript führt Sie durch eine Reihe von Aufforderungen, in denen Sie verschiedene Änderungen an den Sicherheitseinstellungen Ihrer MySQL-Einrichtung vornehmen können. In der ersten Eingabeaufforderung werden Sie gefragt, ob Sie das Plugin Validate Password einrichten möchten, mit dem Sie die Stärke Ihres MySQL-Passworts testen können.

Wenn Sie sich für die Einrichtung das Plugin Validate Password entscheiden, werden Sie von dem Skript gefragt, ob Sie eine Password-Validierungsstufe auswählen möchten, wobei 0 die schwächste und 2 die stärkste ist:

Output
Securing the MySQL server deployment. Connecting to MySQL using a blank password. VALIDATE PASSWORD COMPONENT can be used to test passwords and improve security. It checks the strength of password and allows the users to set only those passwords which are secure enough. Would you like to setup VALIDATE PASSWORD component? Press y|Y for Yes, any other key for No: Y There are three levels of password validation policy: LOW Length >= 8 MEDIUM Length >= 8, numeric, mixed case, and special characters STRONG Length >= 8, numeric, mixed case, special characters and dictionary file Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 2

In der nächsten Eingabeaufforderung geben Sie ein Passwort für den MySQL-root user ein und bestätigen es:

Output
Please set the password for root here. New password: Re-enter new password:

Dann fragt das Skript, ob Sie mit dem von Ihnen gerade eingegebenen Passwort fortfahren oder ein neues Passwort eingeben möchten. Wenn Sie mit Ihrem Passwort zufrieden sind, geben Sie Y ein, um mit dem Skript fortzufahren:

Output
Estimated strength of the password: 100 Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : Y

Von dort aus können Sie Y und dann ENTER drücken, um die Standardeinstellungen für alle nachfolgenden Fragen zu akzeptieren.

Schritt 3 — (Optional) Anpassen der Benutzerauthentifizierung und -berechtigungen

Um als root ein Passwort für die Verbindung mit MySQL zu verwenden, müssen Sie die Authentifizierungsmethode vom standardmäßigen Plugin auth_socket in ein anderes Plugin ändern, wie zum Beispiel caching_sha2_password oder mysql_native_password. Öffnen Sie dazu die MySQL -Eingabeaufforderung auf Ihrem Terminal:

  • sudo mysql

Führen Sie von dort eine ALTER USER-Anweisung aus, um das verwendete Authentifizierungs-Plugin zu ändern, und legen Sie ein neues Passwort fest. Vergessen Sie nicht, password in ein starkes Passwort Ihrer Wahl zu ändern, und beachten Sie, dass dieser Befehl das root-Passwort, das Sie in Schritt 2 festgelegt haben, ändern wird:

  • ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'password';

Anmerkung: caching_sha2_password ist das bevorzugte Authentifizierungs-Plugin von MySQL, da es eine sicherere Passwortverschlüsselung bietet als das ältere, aber immer noch verbreitete mysql_native_password.

Allerdings funktionieren viele PHP-Anwendungen (beispielsweise phpMyAdmin) mit caching_sha2_password nicht zuverlässig. Wenn Sie diese Datenbank mit einer PHP-Anwendung verwenden möchten, wollen Sie root ggf. so festlegen, dass stattdessen mit mysql_native_password authentifiziert wird:

  • ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

Führen Sie dann FLUSH PRIVILEGES aus, was den Server anweist, die Berechtigungstabellen neu zu laden und die Änderungen zu übernehmen:

  • FLUSH PRIVILEGES;

Prüfen Sie die von Ihren Benutzern verwendeten Authentifizierungsmethoden erneut, um zu bestätigen, dass root nicht mehr über das auth_socket-Plugin authentifiziert wird:

  • SELECT user,authentication_string,plugin,host FROM mysql.user;
Output
+------------------+------------------------------------------------------------------------+-----------------------+-----------+ | user | authentication_string | plugin | host | +------------------+------------------------------------------------------------------------+-----------------------+-----------+ | debian-sys-maint | $A$005$lS|M#3K #XslZ.xXUq.crEqTjMvhgOIX7B/zki5DeLA3JB9nh0KwENtwQ4 | caching_sha2_password | localhost | | mysql.infoschema | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost | | mysql.session | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost | | mysql.sys | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost | | root | *3636DACC8616D997782ADD0839F92C1571D6D78F | caching_sha2_password | localhost | +------------------+------------------------------------------------------------------------+-----------------------+-----------+ 5 rows in set (0.00 sec)

Nach der Bestätigung auf Ihrem eigenen Server können Sie die MySQL-Shell beenden:

  • exit

Alternativ können Sie mit einem dedizierten Benutzer anstelle von root eine Verbindung zu MySQL herstellen. Um einen solchen Benutzer zu erstellen, öffnen Sie erneut die MySQL-Shell:

  • sudo mysql

Anmerkung: Wenn Sie für root die Passwortauthentifizierung aktiviert haben (wie in den vorherigen Absätzen beschrieben), müssen Sie stattdessen Folgendes ausführen:

  • mysql -u root -p

Erstellen Sie von dort einen neuen Benutzer und geben Sie ihm ein starkes Passwort:

  • CREATE USER 'sammy'@'localhost' IDENTIFIED BY 'password';

Erteilen Sie dann Ihrem neuen Benutzer die entsprechenden Berechtigungen. Mit diesem Befehl können Sie dem Benutzer zum Beispiel Berechtigungen für alle Tabellen in der Datenbank sowie Berechtigungen zum Hinzufügen, Ändern und Entfernen von Benutzerberechtigungen erteilen:

  • GRANT ALL PRIVILEGES ON *.* TO 'sammy'@'localhost' WITH GRANT OPTION;

Danach können Sie die MySQL-Shell verlassen:

  • exit

Zusammenfassung

Sie haben nun eine grundlegende MySQL-Einrichtung auf Ihrem Server installiert. Hier sehen Sie einige Beispiele für nächste Schritte:

0 Comments

Creative Commons License