Tutorial

Installieren von MySQL unter CentOS 8

MySQLDatabasesCentOS 8

Einführung

MySQL ist ein Open-Source-Datenbankmanagementsystem, das üblicherweise als Teil des beliebten LEMP-Stacks (Linux, Nginx, MySQL/MariaDB, PHP/Python/Perl) installiert wird. Es implementiert das relationale Modell und die Structured Query Language (SQL) zur Verwaltung und Abfrage von Daten.

Dieses Tutorial erklärt, wie MySQL Version 8 auf einem CentOS 8-Server installiert wird.

Voraussetzungen

Um diesem Tutorial zu folgen. benötigen Sie einen Server, auf dem CentOS 8 ausgeführt wird. Dieser Server sollte einen non-root user mit Administratorberechtigungen und eine mit firewalld konfigurierte Firewall haben. Folgen Sie zur Einrichtung unserem Leitfaden zur Ersteinrichtung des Servers für CentOS 8.

Schritt 1 – Installieren von MySQL

Unter CentOS 8 ist MySQL Version 8 aus den Standard-Repositorys verfügbar.

Führen Sie den folgenden Befehl aus, um das Paket mysql-server und eine Reihe seiner Abhängigkeiten zu installieren:

  • sudo dnf install mysql-server

Wenn Sie aufgefordert werden, drücken Sie y und dann die Eingabetaste, um zu bestätigen, dass Sie fortfahren möchten:

Output
. . . Install 49 Packages Total download size: 46 M Installed size: 252 M Is this ok [y/N]: y

Damit ist MySQL auf Ihrem Server installiert, aber noch nicht betriebsbereit. Das gerade von Ihnen installierte Paket konfiguriert MySQL so, dass es als Dienst systemd mit dem Namen mysqld.service ausgeführt wird. Damit Sie MySQL verwenden können, müssen Sie es mit dem Befehl systemctl starten:

  • sudo systemctl start mysqld.service

Führen Sie den nachfolgenden Befehl aus, um die korrekte Ausführung des Dienstes zu überprüfen. Beachten Sie, dass Sie für viele systemctl-Befehle – einschließlich start und, wie hier gezeigt, status – nach dem Dienstnamen .service nicht einbinden müssen:

  • sudo systemctl status mysqld

Wurde MySQL erfolgreich gestartet, zeigt die Ausgabe, dass der Dienst MySQL aktiv ist:

Output
● mysqld.service - MySQL 8.0 database server Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled) Active: active (running) since Thu 2020-03-12 14:07:41 UTC; 1min 7s ago Main PID: 15723 (mysqld) Status: "Server is operational" Tasks: 38 (limit: 5056) Memory: 474.2M CGroup: /system.slice/mysqld.service └─15723 /usr/libexec/mysqld --basedir=/usr Mar 12 14:07:32 cent-mysql-3 systemd[1]: Starting MySQL 8.0 database server... Mar 12 14:07:32 cent-mysql-3 mysql-prepare-db-dir[15639]: Initializing MySQL database Mar 12 14:07:41 cent-mysql-3 systemd[1]: Started MySQL 8.0 database server.

Damit MySQL bei jedem Hochfahren des Servers startet, stellen Sie MySQL anschließend mit folgendem Befehl ein:

  • sudo systemctl enable mysqld

Anmerkung: Wenn Sie dieses Verhalten zu einem beliebigen Zeitpunkt ändern und den Start von MySQL beim Hochfahren deaktivieren möchten, können Sie dies tun, indem Sie folgendes ausführen:

  • sudo systemctl disable mysqld

MySQL ist nun installiert, wird ausgeführt und ist auf Ihrem Server aktiviert. Als Nächstes gehen wir durch, wie Sie die Sicherheit Ihrer Datenbank mit einem Shell-Skript, das mit Ihrer MySQL-Instanz vorinstalliert wurde, erhöhen können.

Schritt 2 – Sichern von MySQL

MySQL enthält ein Sicherheitsskript, mit dem Sie einige Optionen der Standardkonfiguration ändern können, um die Sicherheit von MySQL zu verbessern.

Zur Verwendung des Sicherheitsskripts führen Sie den folgenden Befehl aus:

  • sudo mysql_secure_installation

Dies führt Sie durch eine Reihe von Aufforderungen, in denen Sie gefragt werden, ob Sie bestimmte Änderungen an den Sicherheitsoptionen Ihrer MySQL-Installation vornehmen möchten. 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 des Validate Password-Plugins entscheiden, werden Sie von dem Skript gefragt, ob Sie eine Passwort-Validierungsstufe auswählen möchten. Die stärkste Stufe – die Sie durch Eingabe von 2 auswählen – erfordert, dass Ihr Passwort mindestens acht Zeichen lang ist und eine Mischung aus Groß- und Kleinbuchstaben, Zahlen und Sonderzeichen enthält:

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

Unabhängig davon, ob Sie sich für die Einrichtung des Validate Password-Plugins entscheiden, werden Sie als Nächstes dazu aufgefordert, ein Passwort für den MySQL-Benutzer root festzulegen. Geben Sie ein sicheres Passwort Ihrer Wahl ein und bestätigen Sie es dann:

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

Wenn Sie das Validate Password-Plugin verwendet haben, erhalten Sie eine Rückmeldung über die Stärke Ihres neuen Passworts. Dann fragt das Skript, ob Sie mit dem von Ihnen gerade eingegebenen Passwort fortfahren oder ein neues Passwort eingeben möchten. Wenn Sie mit der Stärke des von Ihnen gerade eingegebenen Passworts zufrieden sind, geben Sie Y ein, um das Skript fortzusetzen:

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

Danach können Sie Y und dann die Eingabetaste drücken, um die Standardeinstellungen für alle nachfolgenden Fragen zu akzeptieren. Damit werden einige anonyme Benutzer und die Testdatenbank entfernt, ferngesteuerte Root-Logins deaktiviert und diese neuen Regeln geladen, damit MySQL die Änderungen, die Sie gerade vorgenommen haben, unverzüglich anwendet.

Damit haben Sie MySQL auf Ihrem CentOS 8-Server installiert und gesichert. In einem letzten Schritt testen wir, ob die Datenbank zugänglich ist und wie erwartet funktioniert.

Schritt 3 – Testen von MySQL

Sie können Ihre Installation überprüfen und Informationen darüber erhalten, indem Sie sich mit dem Tool mysqladmin, einem Client, mit dem Sie administrative Befehle ausführen können, verbinden. Verwenden Sie den folgenden Befehl, um sich als root (-u root) mit MySQL zu verbinden, zur Eingabe eines Passworts (-p) aufgefordert zu werden und die Version der Installation ausgegeben zu bekommen:

  • mysqladmin -u root -p version

Sie werden eine ähnliche Ausgabe wie diese sehen:

Output
mysqladmin  Ver 8.0.17 for Linux on x86_64 (Source distribution)
Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Server version      8.0.17
Protocol version    10
Connection      Localhost via UNIX socket
UNIX socket     /var/lib/mysql/mysql.sock
Uptime:         2 hours 52 min 37 sec

Threads: 2  Questions: 20  Slow queries: 0  Opens: 131  Flush tables: 3  Open tables: 48  Queries per second avg: 0.001

Diese zeigt an, dass Ihre Installation erfolgreich war.

Wenn Sie sich mit MySQL verbinden und mit dem Hinzufügen von Daten beginnen möchten, führen Sie Folgendes aus:

  • mysql -u root -p

Wie der vorherige Befehl mysqladmin enthält dieser Befehl die Option -u, mit der Sie den Benutzer angeben können, als der Sie sich verbinden möchten (in diesem Fall root), sowie die Option -p, die den Befehl anweist, Sie nach dem im vorherigen Schritt festgelegten Benutzerpasswort zu fragen.

Nachdem Sie das Passwort Ihres MySQL-Benutzers root eingegeben haben, sehen Sie die MySQL-Eingabeaufforderung:

Von dort aus können Sie mit der Verwendung Ihrer MySQL-Installation beginnen, um Datenbanken zu erstellen und zu laden, sowie Abfragen auszuführen.

Zusammenfassung

Wenn Sie diesem Tutorial gefolgt sind, haben Sie MySQL auf einem CentOS 8-Server installiert und gesichert. Von hier aus können Sie Nginx und PHP installieren, um einen voll funktionsfähigen LEMP-Stack auf Ihrem Server zu haben.

Um mehr über die Verwendung von MySQL zu erfahren, empfehlen wir Ihnen, die offizielle Dokumentation zu lesen.

Creative Commons License