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 [email protected]: 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.

Das könnte Dich auch interessieren …