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.
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.
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.
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:
OutputSecuring 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:
OutputPlease 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:
OutputEstimated 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.
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:
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.
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.
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!