Installation des MySQL 8-Datenbankservers unter CentOS 8
MySQL ist ein freies, quelloffenes und eines der populärsten Datenbanksysteme weltweit. Es ist eine relationale Datenbank-Verwaltungsplattform, die von Oracle Cloud betrieben wird. Sie verwendet die Structured Query Language zum Hinzufügen, Zugreifen und Verwalten von Inhalten in einer Datenbank. Sie ist bekannt für ihre bewährte Zuverlässigkeit, schnelle Verarbeitung, Einfachheit und Flexibilität in der Anwendung. Es gibt mehrere neue Funktionen, die in MySQL 8 hinzugefügt wurden, einschließlich JSON-Unterstützung, Transactional Data Dictionary, persistente Laufzeitkonfiguration, Dokumentenspeicher, Optimierungshinweise, SQL-Rollen, CTEs und Fensterfunktionen, unsichtbare Indizes und vieles mehr.
Hinweis: Bevor Sie MySQL 8 installieren, lesen Sie die offizielle Dokumentation, da MySQL 8 einige neue Funktionen und Änderungen hat, die einige Anwendungen mit dieser Version inkompatibel gemacht haben.
In diesem Tutorial zeigen wir Ihnen, wie Sie die Datenbank MySQL 8 auf dem CentOS 8-Server installieren.
Voraussetzungen
- Ein Server, auf dem CentOS 8 läuft.
- Ein Root-Passwort wird auf Ihrem Server eingerichtet.
Installieren Sie MySQL 8.0 aus dem MySQL-Repository
Standardmäßig ist MySQL 8.0 nicht im Standard-Repository von CentOS 8 verfügbar. Daher müssen Sie das MySQL 8.0-Community-Repository auf Ihrem System installieren. Sie können es mit dem folgenden Befehl installieren:
rpm -ivh https://dev.mysql.com/get/mysql80-community-release-el8-1.noarch.rpm
Sie sollten die folgende Ausgabe sehen:
Retrieving https://dev.mysql.com/get/mysql80-community-release-el8-1.noarch.rpm warning: /var/tmp/rpm-tmp.hF0m5V: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY Verifying... ################################# [100%] Preparing... ################################# [100%] Updating / installing... 1:mysql80-community-release-el8-1 ################################# [100%]
Prüfen Sie als nächstes, ob das MySQL 8.0-Repository mit dem folgenden Befehl aktiviert wurde oder nicht:
dnf repolist all | grep mysql | grep enabled
Sie sollten die folgende Ausgabe sehen:
CentOS-8 - AppStream 3.1 MB/s | 6.5 MB 00:02 CentOS-8 - Base 3.0 MB/s | 5.0 MB 00:01 CentOS-8 - Extras 5.3 kB/s | 2.1 kB 00:00 MySQL 8.0 Community Server 24 MB/s | 543 kB 00:00 MySQL Connectors Community 1.9 MB/s | 19 kB 00:00 MySQL Tools Community 677 kB/s | 62 kB 00:00 mysql-connectors-community MySQL Connectors Community enabled: 42 mysql-tools-community MySQL Tools Community enabled: 19 mysql80-community MySQL 8.0 Community Server enabled: 31
Deaktivieren Sie als nächstes das AppStream-Repository vorübergehend und installieren Sie die neueste Version von MySQL 8.0 aus dem MySQL-Community-Repository mit dem folgenden Befehl:
dnf --disablerepo=AppStream install mysql-community-server -y
Wenn die Installation erfolgreich abgeschlossen ist, können Sie die installierte Version von MySQL mit dem folgenden Befehl überprüfen:
mysql -Version
Sie sollten die folgende Ausgabe sehen: Sie sollten die folgende Ausgabe sehen:
mysql Ver 8.0.19 for Linux on x86_64 (MySQL Community Server - GPL)
Als nächstes starten Sie den MySQL-Dienst und aktivieren ihn nach dem Systemneustart mit dem folgenden Befehl:
systemctl start mysqld systemctl enable mysqld
Sie können auch den Status des MySQL-Dienstes mit dem folgenden Befehl überprüfen:
systemctl status mysqld
Sie sollten die folgende Ausgabe sehen:
? mysqld.service - MySQL Server Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled) Active: active (running) since Thu 2020-03-05 09:37:46 EST; 12s ago Docs: man:mysqld(8) http://dev.mysql.com/doc/refman/en/using-systemd.html Process: 3244 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS) Main PID: 3329 (mysqld) Status: "Server is operational" Tasks: 39 (limit: 12537) Memory: 587.7M CGroup: /system.slice/mysqld.service ??3329 /usr/sbin/mysqld Mar 05 09:37:01 centos8 systemd[1]: Starting MySQL Server... Mar 05 09:37:46 centos8 systemd[1]: Started MySQL Server.
Als nächstes ist es immer eine gute Idee, das Skript mysql_secure_installation laufen zu lassen, um einige zusätzliche Sicherheitsfunktionen zu aktivieren, darunter das Setzen eines neuen MySQL-Root-Passwortes, das Entfernen des anonymen Benutzers und das Deaktivieren der entfernten Anmeldung.
Suchen Sie zunächst das MySQL-Standard-Root-Passwort mit dem folgenden Befehl:
cat /var/log/mysqld.log | grep -i 'temporary password'
Ausgabe:
2020-03-05T14:37:40.273796Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: GN2uNx-vPqwS
Bitte notieren Sie sich das obige Passwort und ändern Sie es mit Hilfe des mysql_secure_installations-Skripts.
mysql_secure_installation
Beantworten Sie alle Fragen wie unten gezeigt:
Securing the MySQL server deployment. Enter password for user root: Provide your temporary MySQL root password The existing password for the user account root has expired. Please set a new password. New password: Provide new root password Re-enter new password: Re-enter new root password The 'validate_password' component is installed on the server. The subsequent steps will run with the existing configuration of the component. Using existing password for root. Estimated strength of the password: 100 Change the password for root ? ((Press y|Y for Yes, any other key for No) : N Type N and Enter to continue ... skipping. By default, a MySQL installation has an anonymous user, allowing anyone to log into MySQL without having to have a user account created for them. This is intended only for testing, and to make the installation go a bit smoother. You should remove them before moving into a production environment. Remove anonymous users? (Press y|Y for Yes, any other key for No) : Y Success. Normally, root should only be allowed to connect from 'localhost'. This ensures that someone cannot guess at the root password from the network. Disallow root login remotely? (Press y|Y for Yes, any other key for No) : Y Success. By default, MySQL comes with a database named 'test' that anyone can access. This is also intended only for testing, and should be removed before moving into a production environment. Remove test database and access to it? (Press y|Y for Yes, any other key for No) : Y - Dropping test database... Success. - Removing privileges on test database... Success. Reloading the privilege tables will ensure that all changes made so far will take effect immediately. Reload privilege tables now? (Press y|Y for Yes, any other key for No) : Y Success. All done!
Installieren Sie MySQL 8.0 aus dem AppStream-Repository
Sie können MySQL 8.0 auch aus dem Standard-AppStream-Repository auf dem CentOS 8 installieren. Sie können es mit dem folgenden Befehl installieren:
dnf install @mysql -y
Wenn die Installation abgeschlossen ist, überprüfen Sie die Version von MySQL mit dem folgenden Befehl:
mysql -Version
Sie sollten die folgende Ausgabe sehen:
mysql Ver 8.0.17 for Linux on x86_64 (Source distribution)
Als nächstes starten Sie den MySQL-Dienst und aktivieren ihn nach dem Systemneustart mit folgendem Befehl:
systemctl start mysqld systemctl enable mysqld
Standardmäßig ist das MySQL-Root-Passwort im CentoS 8 nicht gesetzt. Daher müssen Sie es mit dem Skript mysql_secure_installation setzen.
mysql_secure_installation
Beantworten Sie alle Fragen wie unten gezeigt:
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: 0 Please set the password for root here. New password: Re-enter new password: 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 By default, a MySQL installation has an anonymous user, allowing anyone to log into MySQL without having to have a user account created for them. This is intended only for testing, and to make the installation go a bit smoother. You should remove them before moving into a production environment. Remove anonymous users? (Press y|Y for Yes, any other key for No) : Y Success. Normally, root should only be allowed to connect from 'localhost'. This ensures that someone cannot guess at the root password from the network. Disallow root login remotely? (Press y|Y for Yes, any other key for No) : Y Success. By default, MySQL comes with a database named 'test' that anyone can access. This is also intended only for testing, and should be removed before moving into a production environment. Remove test database and access to it? (Press y|Y for Yes, any other key for No) : Y - Dropping test database... Success. - Removing privileges on test database... Success. Reloading the privilege tables will ensure that all changes made so far will take effect immediately. Reload privilege tables now? (Press y|Y for Yes, any other key for No) : Y Success. All done!
Schlussfolgerung
Im obigen Leitfaden haben Sie erfahren, wie Sie MySQL 8 aus dem MySQL-Community-Repository und aus dem AppStream-Repository unter CentOS 8 installieren. Sie können jetzt damit beginnen, eine neue Datenbank und neue Datenbankbenutzer anzulegen.