Eine Remote-Verbindung zur MySQL-Datenbank einrichten
Manchmal möchten Sie die Datenbank auf einem separaten Server hosten, anstatt den Datenbankserver und den Webserver auf demselben Computer auszuführen.
Adobe bietet eine Möglichkeit, eine Verbindung zu einem MySQL-Server auf einem anderen Computer herzustellen. Ab Adobe Commerce 2.4.3 können Sie die Anwendung auch so konfigurieren, dass eine Amazon Web Services (AWS) Aurora-Datenbank ohne Codeänderungen verwendet wird.
Aurora ist ein leistungsstarker, vollständig kompatibler MySQL-Server, der auf AWS gehostet wird.
Herstellen einer Verbindung zu einer AWS Aurora-Datenbank
Die Verwendung von Aurora als Datenbank ist so einfach wie die Angabe der Datenbank in der regulären Adobe Commerce-Setup-Konfiguration mithilfe des standardmäßigen Datenbank-Connectors.
Verwenden Sie beim Ausführen von bin/magento setup:install
die Aurora-Informationen in den db-
-Feldern:
bin/magento setup:install ... --db-host='database-aurora.us-east-1.rds.amazonaws.com' --db-name='magento2' --db-user='username' --db-password='password' ...
Der Wert db-host
ist die Aurora-URL, wobei die https://
und die nachfolgende :portnumber
entfernt sind.
Remote-Datenbankverbindung einrichten
root
Zugriff auf das Dateisystem und müssen sich als root
bei MySQL anmelden können.Voraussetzungen
Bevor Sie beginnen, müssen Sie:
- Installieren Sie den MySQL-Server auf dem Datenbankserver.
- Erstellen Sie eine Datenbankinstanz auf dem Datenbankserver.
- Installieren Sie den MySQL-Client auf Ihrem Adobe Commerce-Webknoten. Weitere Informationen finden Sie in der MySQL-Dokumentation .
Hohe Verfügbarkeit
Verwenden Sie die folgenden Richtlinien, um Remote-Datenbankverbindungen zu konfigurieren, wenn Ihr Webserver oder Datenbankserver in Clustern zusammengefasst ist:
-
Sie müssen für jeden Webserverknoten eine Verbindung konfigurieren.
-
In der Regel konfigurieren Sie eine Datenbankverbindung zum Datenbank-Lastenausgleich. Das Datenbank-Clustering kann jedoch komplex sein und von Ihnen konfiguriert werden. Adobe gibt keine spezifischen Empfehlungen für das Datenbank-Clustering aus.
Weitere Informationen finden Sie in der MySQL-Dokumentation.
Beheben von Verbindungsproblemen
Wenn Sie Probleme beim Herstellen einer Verbindung zu einem der Hosts haben, pingen Sie zunächst den anderen Host, um sicherzustellen, dass er erreichbar ist. Möglicherweise müssen Sie Verbindungen von einem Host zum anderen zulassen, indem Sie Firewall- und SELinux-Regeln ändern (wenn Sie SELinux verwenden).
Remote-Verbindung erstellen
So erstellen Sie eine Remote-Verbindung:
-
Öffnen Sie auf Ihrem Datenbankserver als Benutzer mit
root
-Berechtigungen Ihre MySQL-Konfigurationsdatei.Geben Sie den folgenden Befehl ein, um ihn zu finden:
code language-bash mysql --help
Der Speicherort wird in etwa wie folgt angezeigt:
code language-none Default options are read from the following files in the given order: /etc/my.cnf /etc/mysql/my.cnf /usr/etc/my.cnf ~/.my.cnf
note note NOTE Auf Ubuntu 16 ist der Pfad normalerweise /etc/mysql/mysql.conf.d/mysqld.cnf
. -
Suchen Sie in der Konfigurationsdatei nach "
bind-address
".Falls vorhanden, ändern Sie den Wert wie folgt.
Wenn es nicht vorhanden ist, fügen Sie es zum Abschnitt
[mysqld]
hinzu.code language-conf bind-address = <ip address of your web node>
Weitere Informationen finden Sie in der MySQL-Dokumentation, insbesondere wenn Sie über einen Webserver mit Clustern verfügen.
-
Speichern Sie Ihre Änderungen in der Konfigurationsdatei und beenden Sie den Texteditor.
-
Starten Sie den MySQL-Dienst neu:
-
CentOS:
service mysqld restart
-
Ubuntu:
service mysql restart
note note NOTE Wenn MySQL nicht gestartet werden kann, suchen Sie in syslog nach der Quelle des Problems. Beheben Sie das Problem mit der MySQL-Dokumentation oder einer anderen autorisierten Quelle. -
Zugriff auf einen Datenbankbenutzer gewähren
Damit Ihr Webknoten eine Verbindung zum Datenbankserver herstellen kann, müssen Sie einem Webknotendatenbankbenutzer Zugriff auf die Datenbank auf dem Remote-Server gewähren.
Mit diesem Beispiel wird dem Datenbankbenutzer root
uneingeschränkter Zugriff auf die Datenbank auf dem Remote-Host gewährt.
So gewähren Sie Zugriff auf einen Datenbankbenutzer:
-
Melden Sie sich beim Datenbankserver an.
-
Stellen Sie eine Verbindung zur MySQL-Datenbank als
root
Benutzer her. -
Geben Sie den folgenden Befehl ein:
code language-shell GRANT ALL ON <local database name>.* TO <remote web node username>@<remote web node server ip address> IDENTIFIED BY '<database user password>';
Beispiel:
code language-shell GRANT ALL ON magento_remote.* TO dbuser@192.0.2.50 IDENTIFIED BY 'dbuserpassword';
note note NOTE Wenn Ihr Webserver geclustert ist, geben Sie auf jedem Webserver denselben Befehl ein. Sie müssen für jeden Webserver denselben Benutzernamen verwenden.
Überprüfen des Datenbankzugriffs
Geben Sie auf Ihrem Webknotenhost den folgenden Befehl ein, um zu überprüfen, ob die Verbindung funktioniert:
mysql -u <local database username> -h <database server ip address> -p
Wenn der MySQL-Monitor wie folgt angezeigt wird, ist die Datenbank für Adobe Commerce bereit:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 213 Server version: 5.6.26 MySQL Community Server (GPL)
Copyright (c) 2000, 2015, 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.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
Wenn Ihr Webserver in einem Cluster gespeichert ist, geben Sie den Befehl auf jedem Webserver-Host ein.
Installieren des Adobe Commerce
Bei der Installation von Adobe Commerce müssen Sie Folgendes angeben:
- Die Basis-URL (auch als Speicheradresse bezeichnet) gibt den Hostnamen oder die IP-Adresse des Webknotens an
- Der Datenbankhost ist die IP-Adresse des Remote-Datenbankservers (oder des Lastenausgleichs, wenn der Datenbankserver geclustert ist).
- Der Datenbankbenutzername ist der Datenbankbenutzer, auf den Sie Zugriff gewährt haben.**
- Das Datenbankkennwort ist das Kennwort des lokalen Webknotenbenutzers
- Datenbankname ist der Name der Datenbank auf dem Remote-Server.